Hello community, here is the log from the commit of package rubygem-http_accept_language for openSUSE:Factory checked in at 2015-02-11 16:45:37 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 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-11-18 22:45:01.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.rubygem-http_accept_language.new/rubygem-http_accept_language.changes 2015-02-11 16:45:39.000000000 +0100 @@ -1,0 +2,5 @@ +Mon Feb 9 08:06:38 UTC 2015 - coolo@suse.com + +- updated to version 2.0.5 + +------------------------------------------------------------------- Old: ---- http_accept_language-2.0.2.gem New: ---- http_accept_language-2.0.5.gem ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ rubygem-http_accept_language.spec ++++++ --- /var/tmp/diff_new_pack.SvJM1f/_old 2015-02-11 16:45:40.000000000 +0100 +++ /var/tmp/diff_new_pack.SvJM1f/_new 2015-02-11 16:45:40.000000000 +0100 @@ -1,7 +1,7 @@ # # spec file for package rubygem-http_accept_language # -# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -24,7 +24,7 @@ # Name: rubygem-http_accept_language -Version: 2.0.2 +Version: 2.0.5 Release: 0 %define mod_name http_accept_language %define mod_full_name %{mod_name}-%{version} ++++++ http_accept_language-2.0.2.gem -> http_accept_language-2.0.5.gem ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/README.md new/README.md --- old/README.md 1970-01-01 01:00:00.000000000 +0100 +++ new/README.md 2015-01-25 19:47:23.000000000 +0100 @@ -2,8 +2,8 @@ A gem which helps you detect the users preferred language, as sent by the "Accept-Language" HTTP header. -The algorithm is based on [RFC 2616](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html), with one exception: -when a user requests "en-US" and "en" is an available language, "en" is deemed compatible with "en-US". +The algorithm is based on [RFC 2616](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html), with one exception: +when a user requests "en-US" and "en" is an available language, "en" is deemed compatible with "en-US". The RFC specifies that the requested language must either exactly match the available language or must exactly match a prefix of the available language. This means that when the user requests "en" and "en-US" is available, "en-US" would be compatible, but not the other way around. This is usually not what you're looking for. Since version 2.0, this gem is Rack middleware. @@ -43,6 +43,16 @@ end ``` +If you want to enable this behavior by default in your controllers, you can just include the provided concern: + +```ruby +class ApplicationController < ActionController::Base + include HttpAcceptLanguage::AutoLocale + +#... +end +``` + To use the middleware in any Rack application, simply add the middleware: ``` ruby Files old/checksums.yaml.gz and new/checksums.yaml.gz differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/http_accept_language/auto_locale.rb new/lib/http_accept_language/auto_locale.rb --- old/lib/http_accept_language/auto_locale.rb 1970-01-01 01:00:00.000000000 +0100 +++ new/lib/http_accept_language/auto_locale.rb 2015-01-25 19:47:23.000000000 +0100 @@ -0,0 +1,17 @@ +require 'active_support/concern' + +module HttpAcceptLanguage + module AutoLocale + extend ActiveSupport::Concern + + included do + before_filter :set_locale + end + + private + + def set_locale + I18n.locale = http_accept_language.compatible_language_from(I18n.available_locales) + end + end +end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/http_accept_language/middleware.rb new/lib/http_accept_language/middleware.rb --- old/lib/http_accept_language/middleware.rb 1970-01-01 01:00:00.000000000 +0100 +++ new/lib/http_accept_language/middleware.rb 2015-01-25 19:47:23.000000000 +0100 @@ -6,6 +6,7 @@ def call(env) env["http_accept_language.parser"] = Parser.new(env["HTTP_ACCEPT_LANGUAGE"]) + def env.http_accept_language self["http_accept_language.parser"] 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 2015-01-25 19:47:23.000000000 +0100 @@ -2,7 +2,7 @@ class Railtie < ::Rails::Railtie initializer "http_accept_language.add_middleware" do |app| app.middleware.use Middleware - + ActiveSupport.on_load :action_controller do include EasyAccess 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 2015-01-25 19:47:23.000000000 +0100 @@ -1,3 +1,3 @@ module HttpAcceptLanguage - VERSION = '2.0.2' + VERSION = '2.0.5' end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/http_accept_language.rb new/lib/http_accept_language.rb --- old/lib/http_accept_language.rb 1970-01-01 01:00:00.000000000 +0100 +++ new/lib/http_accept_language.rb 2015-01-25 19:47:23.000000000 +0100 @@ -1,3 +1,4 @@ +require 'http_accept_language/auto_locale' require 'http_accept_language/parser' require 'http_accept_language/middleware' require 'http_accept_language/railtie' if defined?(Rails::Railtie) 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 2015-01-25 19:47:23.000000000 +0100 @@ -1,93 +1,113 @@ --- !ruby/object:Gem::Specification name: http_accept_language version: !ruby/object:Gem::Version - version: 2.0.2 - prerelease: + version: 2.0.5 platform: ruby authors: - iain autorequire: bindir: bin cert_chain: [] -date: 2014-07-31 00:00:00.000000000 Z +date: 2015-01-25 00:00:00.000000000 Z dependencies: - !ruby/object:Gem::Dependency name: rake - requirement: &70189984251240 !ruby/object:Gem::Requirement - none: false + requirement: !ruby/object:Gem::Requirement requirements: - - - ! '>=' + - - ">=" - !ruby/object:Gem::Version version: '0' type: :development prerelease: false - version_requirements: *70189984251240 + version_requirements: !ruby/object:Gem::Requirement + requirements: + - - ">=" + - !ruby/object:Gem::Version + version: '0' - !ruby/object:Gem::Dependency name: rspec - requirement: &70189984250560 !ruby/object:Gem::Requirement - none: false + requirement: !ruby/object:Gem::Requirement requirements: - - - ! '>=' + - - ">=" - !ruby/object:Gem::Version version: '0' type: :development prerelease: false - version_requirements: *70189984250560 + version_requirements: !ruby/object:Gem::Requirement + requirements: + - - ">=" + - !ruby/object:Gem::Version + version: '0' - !ruby/object:Gem::Dependency name: rack-test - requirement: &70189984250020 !ruby/object:Gem::Requirement - none: false + requirement: !ruby/object:Gem::Requirement requirements: - - - ! '>=' + - - ">=" - !ruby/object:Gem::Version version: '0' type: :development prerelease: false - version_requirements: *70189984250020 + version_requirements: !ruby/object:Gem::Requirement + requirements: + - - ">=" + - !ruby/object:Gem::Version + version: '0' - !ruby/object:Gem::Dependency name: guard-rspec - requirement: &70189984249400 !ruby/object:Gem::Requirement - none: false + requirement: !ruby/object:Gem::Requirement requirements: - - - ! '>=' + - - ">=" - !ruby/object:Gem::Version version: '0' type: :development prerelease: false - version_requirements: *70189984249400 + version_requirements: !ruby/object:Gem::Requirement + requirements: + - - ">=" + - !ruby/object:Gem::Version + version: '0' - !ruby/object:Gem::Dependency name: rails - requirement: &70189984248760 !ruby/object:Gem::Requirement - none: false + requirement: !ruby/object:Gem::Requirement requirements: - - - ! '>=' + - - ">=" - !ruby/object:Gem::Version version: 3.2.6 type: :development prerelease: false - version_requirements: *70189984248760 + version_requirements: !ruby/object:Gem::Requirement + requirements: + - - ">=" + - !ruby/object:Gem::Version + version: 3.2.6 - !ruby/object:Gem::Dependency name: cucumber - requirement: &70189984248160 !ruby/object:Gem::Requirement - none: false + requirement: !ruby/object:Gem::Requirement requirements: - - - ! '>=' + - - ">=" - !ruby/object:Gem::Version version: '0' type: :development prerelease: false - version_requirements: *70189984248160 + version_requirements: !ruby/object:Gem::Requirement + requirements: + - - ">=" + - !ruby/object:Gem::Version + version: '0' - !ruby/object:Gem::Dependency name: aruba - requirement: &70189984247480 !ruby/object:Gem::Requirement - none: false + requirement: !ruby/object:Gem::Requirement requirements: - - - ! '>=' + - - ">=" - !ruby/object:Gem::Version version: '0' type: :development prerelease: false - version_requirements: *70189984247480 + version_requirements: !ruby/object:Gem::Requirement + requirements: + - - ">=" + - !ruby/object:Gem::Version + version: '0' description: Find out which locale the user preferes by reading the languages they specified in their browser email: @@ -96,8 +116,8 @@ extensions: [] extra_rdoc_files: [] files: -- .gitignore -- .rspec +- ".gitignore" +- ".rspec" - Gemfile - Guardfile - README.md @@ -108,47 +128,44 @@ - features/support/rails_driver.rb - http_accept_language.gemspec - lib/http_accept_language.rb +- lib/http_accept_language/auto_locale.rb - lib/http_accept_language/middleware.rb - lib/http_accept_language/parser.rb - lib/http_accept_language/railtie.rb - lib/http_accept_language/version.rb +- spec/auto_locale_spec.rb - spec/middleware_spec.rb - spec/parser_spec.rb homepage: https://github.com/iain/http_accept_language licenses: - MIT +metadata: {} post_install_message: rdoc_options: [] require_paths: - lib required_ruby_version: !ruby/object:Gem::Requirement - none: false requirements: - - - ! '>=' + - - ">=" - !ruby/object:Gem::Version version: '0' - segments: - - 0 - hash: 3432813774343238940 required_rubygems_version: !ruby/object:Gem::Requirement - none: false requirements: - - - ! '>=' + - - ">=" - !ruby/object:Gem::Version version: '0' - segments: - - 0 - hash: 3432813774343238940 requirements: [] rubyforge_project: http_accept_language -rubygems_version: 1.8.6 +rubygems_version: 2.2.2 signing_key: -specification_version: 3 +specification_version: 4 summary: Find out which locale the user preferes by reading the languages they specified in their browser test_files: - features/rails_integration.feature - features/steps/rails.rb - features/support/rails_driver.rb +- spec/auto_locale_spec.rb - spec/middleware_spec.rb - spec/parser_spec.rb +has_rdoc: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec/auto_locale_spec.rb new/spec/auto_locale_spec.rb --- old/spec/auto_locale_spec.rb 1970-01-01 01:00:00.000000000 +0100 +++ new/spec/auto_locale_spec.rb 2015-01-25 19:47:23.000000000 +0100 @@ -0,0 +1,34 @@ +require 'i18n' +require 'http_accept_language/auto_locale' +require 'http_accept_language/parser' +require 'http_accept_language/middleware' + +describe HttpAcceptLanguage::AutoLocale do + let(:controller_class) do + Class.new do + def self.before_filter(dummy) + # dummy method + end + + def http_accept_language + HttpAcceptLanguage::Parser.new("ja,en-us;q=0.7,en;q=0.3") + end + + include HttpAcceptLanguage::AutoLocale + end + end + + let(:controller) { controller_class.new } + + context "available languages includes accept_languages" do + before do + I18n.available_locales = [:en, :ja] + end + + it "take a suitable locale" do + controller.send(:set_locale) + + expect(I18n.locale).to eq(:ja) + end + end +end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec/middleware_spec.rb new/spec/middleware_spec.rb --- old/spec/middleware_spec.rb 1970-01-01 01:00:00.000000000 +0100 +++ new/spec/middleware_spec.rb 2015-01-25 19:47:23.000000000 +0100 @@ -33,20 +33,20 @@ app = lambda { |env| env } middleware = HttpAcceptLanguage::Middleware.new(app) middleware.call(env) - env.http_accept_language.user_preferred_languages.should eq %w{en} + expect(env.http_accept_language.user_preferred_languages).to eq %w{en} env["HTTP_ACCEPT_LANGUAGE"] = "de" middleware.call(env) - env.http_accept_language.user_preferred_languages.should eq %w{de} + expect(env.http_accept_language.user_preferred_languages).to eq %w{de} end it "decodes the HTTP_ACCEPT_LANGUAGE header" do request_with_header 'en-us,en-gb;q=0.8,en;q=0.6,es-419' - r['user_preferred_languages'].should eq %w{en-US es-419 en-GB en} + expect(r['user_preferred_languages']).to eq %w{en-US es-419 en-GB en} end it "finds the first available language" do request_with_header 'en-us,en-gb;q=0.8,en;q=0.6,es-419', :preferred => %w(en en-GB) - r['preferred_language_from'].should eq 'en-GB' + expect(r['preferred_language_from']).to eq 'en-GB' end def request_with_header(header, params = {}) 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 2015-01-25 19:47:23.000000000 +0100 @@ -8,58 +8,58 @@ it "should return empty array" do parser.header = nil - parser.user_preferred_languages.should eq [] + expect(parser.user_preferred_languages).to eq [] end it "should properly split" do - parser.user_preferred_languages.should eq %w{en-US es-419 en-GB en} + expect(parser.user_preferred_languages).to eq %w{en-US es-419 en-GB en} end it "should ignore jambled header" do parser.header = 'odkhjf89fioma098jq .,.,' - parser.user_preferred_languages.should eq [] + expect(parser.user_preferred_languages).to eq [] end it "should properly respect whitespace" do parser.header = 'en-us, en-gb; q=0.8,en;q = 0.6,es-419' - parser.user_preferred_languages.should eq %w{en-US es-419 en-GB en} + expect(parser.user_preferred_languages).to eq %w{en-US es-419 en-GB en} end it "should find first available language" do - parser.preferred_language_from(%w{en en-GB}).should eq "en-GB" + expect(parser.preferred_language_from(%w{en en-GB})).to eq "en-GB" end it "should find first compatible language" do - parser.compatible_language_from(%w{en-hk}).should eq "en-hk" - parser.compatible_language_from(%w{en}).should eq "en" + expect(parser.compatible_language_from(%w{en-hk})).to eq "en-hk" + expect(parser.compatible_language_from(%w{en})).to eq "en" end it "should find first compatible from user preferred" do parser.header = 'en-us,de-de' - parser.compatible_language_from(%w{de en}).should eq 'en' + expect(parser.compatible_language_from(%w{de en})).to eq 'en' end it "should accept symbols as available languages" do parser.header = 'en-us' - parser.compatible_language_from([:"en-HK"]).should eq :"en-HK" + expect(parser.compatible_language_from([:"en-HK"])).to 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" + expect(parser.compatible_language_from([:"en-US"])).to 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"] + expect(parser.sanitize_available_locales(%w{en_UK-x3 en-US-x1 ja_JP-x2 pt-BR-x5 es-419-x4})).to 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"] + expect(parser.sanitize_available_locales([:en, :"en-US", :ca, :"ca-ES"])).to 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" + expect(parser.language_region_compatible_from(%w{en-UK en-US ja-JP})).to eq "ja-JP" end end -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org