Hello community, here is the log from the commit of package rubygem-http_accept_language for openSUSE:Factory checked in at 2014-11-18 22:44:47 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/rubygem-http_accept_language (Old) and /work/SRC/openSUSE:Factory/.rubygem-http_accept_language.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-http_accept_language" Changes: -------- --- /work/SRC/openSUSE:Factory/rubygem-http_accept_language/rubygem-http_accept_language.changes 2014-10-13 16:12:32.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.rubygem-http_accept_language.new/rubygem-http_accept_language.changes 2014-11-18 22:45:01.000000000 +0100 @@ -1,0 +2,5 @@ +Wed Nov 12 05:55:22 UTC 2014 - co...@suse.com + +- updated to version 2.0.2, no changelog + +------------------------------------------------------------------- Old: ---- http_accept_language-2.0.1.gem New: ---- http_accept_language-2.0.2.gem ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ rubygem-http_accept_language.spec ++++++ --- /var/tmp/diff_new_pack.QoD9Yw/_old 2014-11-18 22:45:02.000000000 +0100 +++ /var/tmp/diff_new_pack.QoD9Yw/_new 2014-11-18 22:45:02.000000000 +0100 @@ -16,8 +16,15 @@ # +# +# This file was generated with a gem2rpm.yml and not just plain gem2rpm. +# All sections marked as MANUAL, license headers, summaries and descriptions +# can be maintained in that file. Please consult this file before editing any +# of those fields +# + Name: rubygem-http_accept_language -Version: 2.0.1 +Version: 2.0.2 Release: 0 %define mod_name http_accept_language %define mod_full_name %{mod_name}-%{version} ++++++ http_accept_language-2.0.1.gem -> http_accept_language-2.0.2.gem ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/http_accept_language/parser.rb new/lib/http_accept_language/parser.rb --- old/lib/http_accept_language/parser.rb 1970-01-01 01:00:00.000000000 +0100 +++ new/lib/http_accept_language/parser.rb 1970-01-01 01:00:00.000000000 +0100 @@ -1,7 +1,5 @@ module HttpAcceptLanguage - class Parser - attr_accessor :header def initialize(header) @@ -17,20 +15,26 @@ # # => [ 'nl-NL', 'nl-BE', 'nl', 'en-US', 'en' ] # def user_preferred_languages - @user_preferred_languages ||= header.gsub(/\s+/, '').split(/,/).collect do |l| - l += ';q=1.0' unless l =~ /;q=\d+\.\d+$/ - l.split(';q=') - end.sort do |x,y| - raise "Not correctly formatted" unless x.first =~ /^[a-z\-0-9]+$/i - y.last.to_f <=> x.last.to_f - end.collect do |l| - l.first.downcase.gsub(/-[a-z0-9]+$/i) { |x| x.upcase } + @user_preferred_languages ||= begin + header.to_s.gsub(/\s+/, '').split(',').map do |language| + locale, quality = language.split(';q=') + raise ArgumentError, 'Not correctly formatted' unless locale =~ /^[a-z\-0-9]+|\*$/i + + locale = locale.downcase.gsub(/-[a-z0-9]+$/i, &:upcase) # Uppercase territory + locale = nil if locale == '*' # Ignore wildcards + + quality = quality ? quality.to_f : 1.0 + + [locale, quality] + end.sort do |(_, left), (_, right)| + right <=> left + end.map(&:first).compact + rescue ArgumentError # Just rescue anything if the browser messed up badly. + [] end - rescue # Just rescue anything if the browser messed up badly. - [] end - # Sets the user languages preference, overiding the browser + # Sets the user languages preference, overriding the browser # def user_preferred_languages=(languages) @user_preferred_languages = languages @@ -44,7 +48,7 @@ # # => 'nl' # def preferred_language_from(array) - (user_preferred_languages & array.collect { |i| i.to_s }).first + (user_preferred_languages & array.map(&:to_s)).first end # Returns the first of the user_preferred_languages that is compatible @@ -55,10 +59,13 @@ # request.compatible_language_from I18n.available_locales # def compatible_language_from(available_languages) - user_preferred_languages.map do |x| #en-US - available_languages.find do |y| # en - y = y.to_s - x == y || x.split('-', 2).first == y.split('-', 2).first + user_preferred_languages.map do |preferred| #en-US + preferred = preferred.downcase + preferred_language = preferred.split('-', 2).first + + available_languages.find do |available| # en + available = available.to_s.downcase + preferred == available || preferred_language == available.split('-', 2).first end end.compact.first end @@ -70,12 +77,8 @@ # [ja_JP-x1, en-US-x4, en_UK-x5, fr-FR-x3] => [ja-JP, en-US, en-UK, fr-FR] # def sanitize_available_locales(available_languages) - available_languages.map do |avail| - split_locale = avail.split(/[_-]/) - - split_locale.map do |e| - e unless e.start_with?("x") - end.compact.join("-") + available_languages.map do |available| + available.to_s.split(/[_-]/).reject { |part| part.start_with?("x") }.join("-") end end @@ -90,15 +93,16 @@ # def language_region_compatible_from(available_languages) available_languages = sanitize_available_locales(available_languages) - user_preferred_languages.map do |x| #en-US - lang_group = available_languages.select do |y| # en - y = y.to_s - x.split('-', 2).first == y.split('-', 2).first + user_preferred_languages.map do |preferred| #en-US + preferred = preferred.downcase + preferred_language = preferred.split('-', 2).first + + lang_group = available_languages.select do |available| # en + preferred_language == available.downcase.split('-', 2).first end - lang_group.find{|l| l == x} || lang_group.first #en-US, en-UK + + lang_group.find { |lang| lang.downcase == preferred } || lang_group.first #en-US, en-UK end.compact.first end - end - end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/http_accept_language/railtie.rb new/lib/http_accept_language/railtie.rb --- old/lib/http_accept_language/railtie.rb 1970-01-01 01:00:00.000000000 +0100 +++ new/lib/http_accept_language/railtie.rb 1970-01-01 01:00:00.000000000 +0100 @@ -11,7 +11,7 @@ module EasyAccess def http_accept_language - @http_accept_language ||= request.env["http_accept_language.parser"] || Parser.new("") + @http_accept_language ||= request.env["http_accept_language.parser"] || Parser.new(request.env["HTTP_ACCEPT_LANGUAGE"]) end end end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/http_accept_language/version.rb new/lib/http_accept_language/version.rb --- old/lib/http_accept_language/version.rb 1970-01-01 01:00:00.000000000 +0100 +++ new/lib/http_accept_language/version.rb 1970-01-01 01:00:00.000000000 +0100 @@ -1,3 +1,3 @@ module HttpAcceptLanguage - VERSION = '2.0.1' + VERSION = '2.0.2' end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/metadata new/metadata --- old/metadata 1970-01-01 01:00:00.000000000 +0100 +++ new/metadata 1970-01-01 01:00:00.000000000 +0100 @@ -1,7 +1,7 @@ --- !ruby/object:Gem::Specification name: http_accept_language version: !ruby/object:Gem::Version - version: 2.0.1 + version: 2.0.2 prerelease: platform: ruby authors: @@ -9,11 +9,11 @@ autorequire: bindir: bin cert_chain: [] -date: 2014-01-23 00:00:00.000000000 Z +date: 2014-07-31 00:00:00.000000000 Z dependencies: - !ruby/object:Gem::Dependency name: rake - requirement: &70170956089980 !ruby/object:Gem::Requirement + requirement: &70189984251240 !ruby/object:Gem::Requirement none: false requirements: - - ! '>=' @@ -21,10 +21,10 @@ version: '0' type: :development prerelease: false - version_requirements: *70170956089980 + version_requirements: *70189984251240 - !ruby/object:Gem::Dependency name: rspec - requirement: &70170956089500 !ruby/object:Gem::Requirement + requirement: &70189984250560 !ruby/object:Gem::Requirement none: false requirements: - - ! '>=' @@ -32,10 +32,10 @@ version: '0' type: :development prerelease: false - version_requirements: *70170956089500 + version_requirements: *70189984250560 - !ruby/object:Gem::Dependency name: rack-test - requirement: &70170956089040 !ruby/object:Gem::Requirement + requirement: &70189984250020 !ruby/object:Gem::Requirement none: false requirements: - - ! '>=' @@ -43,10 +43,10 @@ version: '0' type: :development prerelease: false - version_requirements: *70170956089040 + version_requirements: *70189984250020 - !ruby/object:Gem::Dependency name: guard-rspec - requirement: &70170956088400 !ruby/object:Gem::Requirement + requirement: &70189984249400 !ruby/object:Gem::Requirement none: false requirements: - - ! '>=' @@ -54,10 +54,10 @@ version: '0' type: :development prerelease: false - version_requirements: *70170956088400 + version_requirements: *70189984249400 - !ruby/object:Gem::Dependency name: rails - requirement: &70170956087580 !ruby/object:Gem::Requirement + requirement: &70189984248760 !ruby/object:Gem::Requirement none: false requirements: - - ! '>=' @@ -65,10 +65,10 @@ version: 3.2.6 type: :development prerelease: false - version_requirements: *70170956087580 + version_requirements: *70189984248760 - !ruby/object:Gem::Dependency name: cucumber - requirement: &70170956086760 !ruby/object:Gem::Requirement + requirement: &70189984248160 !ruby/object:Gem::Requirement none: false requirements: - - ! '>=' @@ -76,10 +76,10 @@ version: '0' type: :development prerelease: false - version_requirements: *70170956086760 + version_requirements: *70189984248160 - !ruby/object:Gem::Dependency name: aruba - requirement: &70170956102360 !ruby/object:Gem::Requirement + requirement: &70189984247480 !ruby/object:Gem::Requirement none: false requirements: - - ! '>=' @@ -87,7 +87,7 @@ version: '0' type: :development prerelease: false - version_requirements: *70170956102360 + version_requirements: *70189984247480 description: Find out which locale the user preferes by reading the languages they specified in their browser email: @@ -129,7 +129,7 @@ version: '0' segments: - 0 - hash: -678950536422287391 + hash: 3432813774343238940 required_rubygems_version: !ruby/object:Gem::Requirement none: false requirements: @@ -138,7 +138,7 @@ version: '0' segments: - 0 - hash: -678950536422287391 + hash: 3432813774343238940 requirements: [] rubyforge_project: http_accept_language rubygems_version: 1.8.6 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec/parser_spec.rb new/spec/parser_spec.rb --- old/spec/parser_spec.rb 1970-01-01 01:00:00.000000000 +0100 +++ new/spec/parser_spec.rb 1970-01-01 01:00:00.000000000 +0100 @@ -44,10 +44,19 @@ parser.compatible_language_from([:"en-HK"]).should eq :"en-HK" end + it "should accept and ignore wildcards" do + parser.header = 'en-US,en,*' + parser.compatible_language_from([:"en-US"]).should eq :"en-US" + end + it "should sanitize available language names" do parser.sanitize_available_locales(%w{en_UK-x3 en-US-x1 ja_JP-x2 pt-BR-x5 es-419-x4}).should eq ["en-UK", "en-US", "ja-JP", "pt-BR", "es-419"] end + it "should accept available language names as symbols and return them as strings" do + parser.sanitize_available_locales([:en, :"en-US", :ca, :"ca-ES"]).should eq ["en", "en-US", "ca", "ca-ES"] + end + it "should find most compatible language from user preferred" do parser.header = 'ja,en-gb,en-us,fr-fr' parser.language_region_compatible_from(%w{en-UK en-US ja-JP}).should eq "ja-JP" -- To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org For additional commands, e-mail: opensuse-commit+h...@opensuse.org