rails-localization 0.2.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
 - data/.ruby-gemset +1 -0
 - data/.ruby-version +1 -0
 - data/.travis.yml +3 -3
 - data/Gemfile +20 -13
 - data/Gemfile.lock +113 -122
 - data/README.rdoc +62 -7
 - data/VERSION +1 -1
 - data/lib/rails-localization.rb +26 -2
 - data/lib/rails-localization/controller.rb +22 -0
 - data/lib/rails-localization/engine.rb +6 -0
 - data/lib/rails-localization/i18n.rb +9 -0
 - data/lib/rails-localization/route_set.rb +12 -0
 - data/lib/rails-localization/router.rb +15 -0
 - data/lib/rails-localization/url_options.rb +34 -0
 - data/rails-localization.gemspec +25 -44
 - data/test/i18n_integration_test.rb +28 -0
 - data/test/mapper_integration_test.rb +45 -0
 - data/test/rails-localization_test.rb +47 -47
 - data/test/support/capybara_helper.rb +9 -5
 - data/test/test_app/Gemfile +4 -0
 - data/test/test_app/Gemfile.lock +93 -0
 - data/test/test_app/Rakefile +7 -0
 - data/test/test_app/app/controllers/users_controller.rb +1 -1
 - data/test/test_app/config/application.rb +1 -4
 - data/test/test_app/config/environments/development.rb +3 -3
 - data/test/test_app/config/environments/production.rb +2 -0
 - data/test/test_app/config/environments/test.rb +2 -3
 - data/test/test_app/config/routes.rb +10 -7
 - data/test/test_helper.rb +3 -8
 - data/test/urls_overwriting_test.rb +9 -17
 - metadata +34 -130
 - data/.rvmrc +0 -1
 - data/lib/rails-localization/middleware.rb +0 -8
 - data/lib/rails-localization/routes_set_ext.rb +0 -61
 
| 
         @@ -0,0 +1,22 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module RailsLocalization
         
     | 
| 
      
 2 
     | 
    
         
            +
              module Controller
         
     | 
| 
      
 3 
     | 
    
         
            +
                def self.included(base)
         
     | 
| 
      
 4 
     | 
    
         
            +
                  base.class_eval do
         
     | 
| 
      
 5 
     | 
    
         
            +
                    around_filter :process_with_locale
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
                    protected
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
                    def process_with_locale
         
     | 
| 
      
 10 
     | 
    
         
            +
                      begin
         
     | 
| 
      
 11 
     | 
    
         
            +
                        if params.has_key?(:locale)
         
     | 
| 
      
 12 
     | 
    
         
            +
                          ::I18n.locale = params[:locale].blank? ? ::I18n.default_locale : params[:locale].to_s
         
     | 
| 
      
 13 
     | 
    
         
            +
                        end
         
     | 
| 
      
 14 
     | 
    
         
            +
                        yield
         
     | 
| 
      
 15 
     | 
    
         
            +
                      ensure 
         
     | 
| 
      
 16 
     | 
    
         
            +
                        ::I18n.locale = ::I18n.default_locale
         
     | 
| 
      
 17 
     | 
    
         
            +
                      end 
         
     | 
| 
      
 18 
     | 
    
         
            +
                    end    
         
     | 
| 
      
 19 
     | 
    
         
            +
                  end
         
     | 
| 
      
 20 
     | 
    
         
            +
                end
         
     | 
| 
      
 21 
     | 
    
         
            +
              end
         
     | 
| 
      
 22 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,12 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module RailsLocalization
         
     | 
| 
      
 2 
     | 
    
         
            +
              module RouteSet
         
     | 
| 
      
 3 
     | 
    
         
            +
                def self.included(base)
         
     | 
| 
      
 4 
     | 
    
         
            +
                  base.class_eval do
         
     | 
| 
      
 5 
     | 
    
         
            +
                    def url_for_with_locale(options = {})
         
     | 
| 
      
 6 
     | 
    
         
            +
                      url_for_without_locale RailsLocalization::UrlOptions.formatter(options)
         
     | 
| 
      
 7 
     | 
    
         
            +
                    end
         
     | 
| 
      
 8 
     | 
    
         
            +
                    alias_method_chain :url_for, :locale
         
     | 
| 
      
 9 
     | 
    
         
            +
                  end
         
     | 
| 
      
 10 
     | 
    
         
            +
                end
         
     | 
| 
      
 11 
     | 
    
         
            +
              end
         
     | 
| 
      
 12 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,15 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module ActionDispatch::Routing::Mapper::Localization
         
     | 
| 
      
 2 
     | 
    
         
            +
              def self.included(base)
         
     | 
| 
      
 3 
     | 
    
         
            +
                base.class_eval do
         
     | 
| 
      
 4 
     | 
    
         
            +
                  def localized(locales)
         
     | 
| 
      
 5 
     | 
    
         
            +
                    if @set == Rails.application.routes
         
     | 
| 
      
 6 
     | 
    
         
            +
                      I18n.locales[:main_app] = locales
         
     | 
| 
      
 7 
     | 
    
         
            +
                    else
         
     | 
| 
      
 8 
     | 
    
         
            +
                      sub_app_name = @scope[:module] || :main_app
         
     | 
| 
      
 9 
     | 
    
         
            +
                      I18n.locales[sub_app_name] = locales
         
     | 
| 
      
 10 
     | 
    
         
            +
                    end
         
     | 
| 
      
 11 
     | 
    
         
            +
                    scope("(:locale)", constraints: {locale: /#{locales.keys.join('|')}/}, defaults: {locale: ""}) { yield }
         
     | 
| 
      
 12 
     | 
    
         
            +
                  end
         
     | 
| 
      
 13 
     | 
    
         
            +
                end
         
     | 
| 
      
 14 
     | 
    
         
            +
              end
         
     | 
| 
      
 15 
     | 
    
         
            +
            end 
         
     | 
| 
         @@ -0,0 +1,34 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module RailsLocalization
         
     | 
| 
      
 2 
     | 
    
         
            +
              module UrlOptions
         
     | 
| 
      
 3 
     | 
    
         
            +
                def self.formatter opts
         
     | 
| 
      
 4 
     | 
    
         
            +
                  if opts[:_recall] && opts[:_recall].has_key?(:locale)
         
     | 
| 
      
 5 
     | 
    
         
            +
                    opts[:locale] = ::I18n.locale.to_s if opts[:locale].blank?
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
                    if !opts[:script_name].blank?
         
     | 
| 
      
 8 
     | 
    
         
            +
                      locale = opts.delete(:locale).to_s
         
     | 
| 
      
 9 
     | 
    
         
            +
                      affect_script_name(opts, locale) unless opts[:locale].to_s == ::I18n.default_locale.to_s
         
     | 
| 
      
 10 
     | 
    
         
            +
                    else 
         
     | 
| 
      
 11 
     | 
    
         
            +
                      opts[:locale] = nil if opts[:locale].to_s == ::I18n.default_locale.to_s
         
     | 
| 
      
 12 
     | 
    
         
            +
                    end
         
     | 
| 
      
 13 
     | 
    
         
            +
                  end
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                  if opts.has_key?(:_positional_keys) && opts[:_positional_keys].first == :locale
         
     | 
| 
      
 16 
     | 
    
         
            +
                    i = opts[:_positional_keys].index(:locale)
         
     | 
| 
      
 17 
     | 
    
         
            +
                    opts[:_positional_args].insert i, (opts.delete(:locale) || ::I18n.locale.to_s)
         
     | 
| 
      
 18 
     | 
    
         
            +
                  end
         
     | 
| 
      
 19 
     | 
    
         
            +
                  
         
     | 
| 
      
 20 
     | 
    
         
            +
                  opts
         
     | 
| 
      
 21 
     | 
    
         
            +
                end
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
                protected
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
                def self.affect_script_name opts, locale
         
     | 
| 
      
 26 
     | 
    
         
            +
                  app_locales = ::I18n.locales[:main_app]
         
     | 
| 
      
 27 
     | 
    
         
            +
                  if opts[:script_name] =~ /^\/(#{::I18n.locales[:main_app].keys.join('|')})/
         
     | 
| 
      
 28 
     | 
    
         
            +
                    opts[:script_name].gsub!($1, locale)
         
     | 
| 
      
 29 
     | 
    
         
            +
                  else
         
     | 
| 
      
 30 
     | 
    
         
            +
                    opts[:script_name] = "/#{locale}#{opts[:script_name]}"
         
     | 
| 
      
 31 
     | 
    
         
            +
                  end
         
     | 
| 
      
 32 
     | 
    
         
            +
                end
         
     | 
| 
      
 33 
     | 
    
         
            +
              end
         
     | 
| 
      
 34 
     | 
    
         
            +
            end
         
     | 
    
        data/rails-localization.gemspec
    CHANGED
    
    | 
         @@ -2,14 +2,16 @@ 
     | 
|
| 
       2 
2 
     | 
    
         
             
            # DO NOT EDIT THIS FILE DIRECTLY
         
     | 
| 
       3 
3 
     | 
    
         
             
            # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
         
     | 
| 
       4 
4 
     | 
    
         
             
            # -*- encoding: utf-8 -*-
         
     | 
| 
      
 5 
     | 
    
         
            +
            # stub: rails-localization 1.2.0 ruby lib
         
     | 
| 
       5 
6 
     | 
    
         | 
| 
       6 
7 
     | 
    
         
             
            Gem::Specification.new do |s|
         
     | 
| 
       7 
8 
     | 
    
         
             
              s.name = "rails-localization"
         
     | 
| 
       8 
     | 
    
         
            -
              s.version = " 
     | 
| 
      
 9 
     | 
    
         
            +
              s.version = "1.2.0"
         
     | 
| 
       9 
10 
     | 
    
         | 
| 
       10 
11 
     | 
    
         
             
              s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
         
     | 
| 
      
 12 
     | 
    
         
            +
              s.require_paths = ["lib"]
         
     | 
| 
       11 
13 
     | 
    
         
             
              s.authors = ["E-Max"]
         
     | 
| 
       12 
     | 
    
         
            -
              s.date = " 
     | 
| 
      
 14 
     | 
    
         
            +
              s.date = "2014-01-31"
         
     | 
| 
       13 
15 
     | 
    
         
             
              s.description = "This gem allows you to localize your rails application with ease"
         
     | 
| 
       14 
16 
     | 
    
         
             
              s.email = "max@studentify.nl"
         
     | 
| 
       15 
17 
     | 
    
         
             
              s.extra_rdoc_files = [
         
     | 
| 
         @@ -18,7 +20,8 @@ Gem::Specification.new do |s| 
     | 
|
| 
       18 
20 
     | 
    
         
             
              ]
         
     | 
| 
       19 
21 
     | 
    
         
             
              s.files = [
         
     | 
| 
       20 
22 
     | 
    
         
             
                ".document",
         
     | 
| 
       21 
     | 
    
         
            -
                ". 
     | 
| 
      
 23 
     | 
    
         
            +
                ".ruby-gemset",
         
     | 
| 
      
 24 
     | 
    
         
            +
                ".ruby-version",
         
     | 
| 
       22 
25 
     | 
    
         
             
                ".travis.yml",
         
     | 
| 
       23 
26 
     | 
    
         
             
                "Gemfile",
         
     | 
| 
       24 
27 
     | 
    
         
             
                "Gemfile.lock",
         
     | 
| 
         @@ -27,13 +30,22 @@ Gem::Specification.new do |s| 
     | 
|
| 
       27 
30 
     | 
    
         
             
                "Rakefile",
         
     | 
| 
       28 
31 
     | 
    
         
             
                "VERSION",
         
     | 
| 
       29 
32 
     | 
    
         
             
                "lib/rails-localization.rb",
         
     | 
| 
       30 
     | 
    
         
            -
                "lib/rails-localization/ 
     | 
| 
       31 
     | 
    
         
            -
                "lib/rails-localization/ 
     | 
| 
      
 33 
     | 
    
         
            +
                "lib/rails-localization/controller.rb",
         
     | 
| 
      
 34 
     | 
    
         
            +
                "lib/rails-localization/engine.rb",
         
     | 
| 
      
 35 
     | 
    
         
            +
                "lib/rails-localization/i18n.rb",
         
     | 
| 
      
 36 
     | 
    
         
            +
                "lib/rails-localization/route_set.rb",
         
     | 
| 
      
 37 
     | 
    
         
            +
                "lib/rails-localization/router.rb",
         
     | 
| 
      
 38 
     | 
    
         
            +
                "lib/rails-localization/url_options.rb",
         
     | 
| 
       32 
39 
     | 
    
         
             
                "lib/rails_localization.rb",
         
     | 
| 
       33 
40 
     | 
    
         
             
                "rails-localization.gemspec",
         
     | 
| 
      
 41 
     | 
    
         
            +
                "test/i18n_integration_test.rb",
         
     | 
| 
      
 42 
     | 
    
         
            +
                "test/mapper_integration_test.rb",
         
     | 
| 
       34 
43 
     | 
    
         
             
                "test/rails-localization_test.rb",
         
     | 
| 
       35 
44 
     | 
    
         
             
                "test/support/capybara_helper.rb",
         
     | 
| 
       36 
45 
     | 
    
         
             
                "test/test_app/.gitignore",
         
     | 
| 
      
 46 
     | 
    
         
            +
                "test/test_app/Gemfile",
         
     | 
| 
      
 47 
     | 
    
         
            +
                "test/test_app/Gemfile.lock",
         
     | 
| 
      
 48 
     | 
    
         
            +
                "test/test_app/Rakefile",
         
     | 
| 
       37 
49 
     | 
    
         
             
                "test/test_app/app/assets/images/rails.png",
         
     | 
| 
       38 
50 
     | 
    
         
             
                "test/test_app/app/assets/javascripts/application.js",
         
     | 
| 
       39 
51 
     | 
    
         
             
                "test/test_app/app/assets/stylesheets/application.css",
         
     | 
| 
         @@ -73,56 +85,25 @@ Gem::Specification.new do |s| 
     | 
|
| 
       73 
85 
     | 
    
         
             
              ]
         
     | 
| 
       74 
86 
     | 
    
         
             
              s.homepage = "http://github.com/kot-begemot/rails-localization"
         
     | 
| 
       75 
87 
     | 
    
         
             
              s.licenses = ["MIT"]
         
     | 
| 
       76 
     | 
    
         
            -
              s. 
     | 
| 
       77 
     | 
    
         
            -
              s.rubygems_version = "1.8.10"
         
     | 
| 
      
 88 
     | 
    
         
            +
              s.rubygems_version = "2.2.1"
         
     | 
| 
       78 
89 
     | 
    
         
             
              s.summary = "Rails localization Gem"
         
     | 
| 
       79 
90 
     | 
    
         | 
| 
       80 
91 
     | 
    
         
             
              if s.respond_to? :specification_version then
         
     | 
| 
       81 
     | 
    
         
            -
                s.specification_version =  
     | 
| 
      
 92 
     | 
    
         
            +
                s.specification_version = 4
         
     | 
| 
       82 
93 
     | 
    
         | 
| 
       83 
94 
     | 
    
         
             
                if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
         
     | 
| 
       84 
     | 
    
         
            -
                  s.add_runtime_dependency(%q<rails>, [">= 0"])
         
     | 
| 
       85 
     | 
    
         
            -
                  s.add_runtime_dependency(%q<localization-middleware>, [">= 0"])
         
     | 
| 
      
 95 
     | 
    
         
            +
                  s.add_runtime_dependency(%q<rails>, [">= 4.0.0"])
         
     | 
| 
       86 
96 
     | 
    
         
             
                  s.add_runtime_dependency(%q<i18n>, [">= 0"])
         
     | 
| 
       87 
     | 
    
         
            -
                  s.add_development_dependency(%q< 
     | 
| 
       88 
     | 
    
         
            -
                  s.add_development_dependency(%q<test-spec>, [">= 0"])
         
     | 
| 
       89 
     | 
    
         
            -
                  s.add_development_dependency(%q<shoulda>, [">= 0"])
         
     | 
| 
       90 
     | 
    
         
            -
                  s.add_development_dependency(%q<yard>, ["~> 0.6.0"])
         
     | 
| 
       91 
     | 
    
         
            -
                  s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
         
     | 
| 
       92 
     | 
    
         
            -
                  s.add_development_dependency(%q<simplecov>, ["~> 0.6.4"])
         
     | 
| 
       93 
     | 
    
         
            -
                  s.add_development_dependency(%q<rcov>, ["~> 1.0.0"])
         
     | 
| 
       94 
     | 
    
         
            -
                  s.add_development_dependency(%q<debugger>, ["~> 1.1.3"])
         
     | 
| 
       95 
     | 
    
         
            -
                  s.add_development_dependency(%q<ruby-debug>, [">= 0"])
         
     | 
| 
       96 
     | 
    
         
            -
                  s.add_development_dependency(%q<capybara>, [">= 0"])
         
     | 
| 
      
 97 
     | 
    
         
            +
                  s.add_development_dependency(%q<jeweler>, ["~> 1.8.0"])
         
     | 
| 
       97 
98 
     | 
    
         
             
                else
         
     | 
| 
       98 
     | 
    
         
            -
                  s.add_dependency(%q<rails>, [">= 0"])
         
     | 
| 
       99 
     | 
    
         
            -
                  s.add_dependency(%q<localization-middleware>, [">= 0"])
         
     | 
| 
      
 99 
     | 
    
         
            +
                  s.add_dependency(%q<rails>, [">= 4.0.0"])
         
     | 
| 
       100 
100 
     | 
    
         
             
                  s.add_dependency(%q<i18n>, [">= 0"])
         
     | 
| 
       101 
     | 
    
         
            -
                  s.add_dependency(%q< 
     | 
| 
       102 
     | 
    
         
            -
                  s.add_dependency(%q<test-spec>, [">= 0"])
         
     | 
| 
       103 
     | 
    
         
            -
                  s.add_dependency(%q<shoulda>, [">= 0"])
         
     | 
| 
       104 
     | 
    
         
            -
                  s.add_dependency(%q<yard>, ["~> 0.6.0"])
         
     | 
| 
       105 
     | 
    
         
            -
                  s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
         
     | 
| 
       106 
     | 
    
         
            -
                  s.add_dependency(%q<simplecov>, ["~> 0.6.4"])
         
     | 
| 
       107 
     | 
    
         
            -
                  s.add_dependency(%q<rcov>, ["~> 1.0.0"])
         
     | 
| 
       108 
     | 
    
         
            -
                  s.add_dependency(%q<debugger>, ["~> 1.1.3"])
         
     | 
| 
       109 
     | 
    
         
            -
                  s.add_dependency(%q<ruby-debug>, [">= 0"])
         
     | 
| 
       110 
     | 
    
         
            -
                  s.add_dependency(%q<capybara>, [">= 0"])
         
     | 
| 
      
 101 
     | 
    
         
            +
                  s.add_dependency(%q<jeweler>, ["~> 1.8.0"])
         
     | 
| 
       111 
102 
     | 
    
         
             
                end
         
     | 
| 
       112 
103 
     | 
    
         
             
              else
         
     | 
| 
       113 
     | 
    
         
            -
                s.add_dependency(%q<rails>, [">= 0"])
         
     | 
| 
       114 
     | 
    
         
            -
                s.add_dependency(%q<localization-middleware>, [">= 0"])
         
     | 
| 
      
 104 
     | 
    
         
            +
                s.add_dependency(%q<rails>, [">= 4.0.0"])
         
     | 
| 
       115 
105 
     | 
    
         
             
                s.add_dependency(%q<i18n>, [">= 0"])
         
     | 
| 
       116 
     | 
    
         
            -
                s.add_dependency(%q< 
     | 
| 
       117 
     | 
    
         
            -
                s.add_dependency(%q<test-spec>, [">= 0"])
         
     | 
| 
       118 
     | 
    
         
            -
                s.add_dependency(%q<shoulda>, [">= 0"])
         
     | 
| 
       119 
     | 
    
         
            -
                s.add_dependency(%q<yard>, ["~> 0.6.0"])
         
     | 
| 
       120 
     | 
    
         
            -
                s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
         
     | 
| 
       121 
     | 
    
         
            -
                s.add_dependency(%q<simplecov>, ["~> 0.6.4"])
         
     | 
| 
       122 
     | 
    
         
            -
                s.add_dependency(%q<rcov>, ["~> 1.0.0"])
         
     | 
| 
       123 
     | 
    
         
            -
                s.add_dependency(%q<debugger>, ["~> 1.1.3"])
         
     | 
| 
       124 
     | 
    
         
            -
                s.add_dependency(%q<ruby-debug>, [">= 0"])
         
     | 
| 
       125 
     | 
    
         
            -
                s.add_dependency(%q<capybara>, [">= 0"])
         
     | 
| 
      
 106 
     | 
    
         
            +
                s.add_dependency(%q<jeweler>, ["~> 1.8.0"])
         
     | 
| 
       126 
107 
     | 
    
         
             
              end
         
     | 
| 
       127 
108 
     | 
    
         
             
            end
         
     | 
| 
       128 
109 
     | 
    
         | 
| 
         @@ -0,0 +1,28 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # encoding: utf-8
         
     | 
| 
      
 2 
     | 
    
         
            +
            require File.expand_path("test_helper", File.dirname(__FILE__))
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            I18n.extend RailsLocalization::I18n
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            class I18nIntegrationTest < Test::Unit::TestCase
         
     | 
| 
      
 7 
     | 
    
         
            +
              setup do
         
     | 
| 
      
 8 
     | 
    
         
            +
                @i18n_locales = I18n.instance_variable_get(:@locales)
         
     | 
| 
      
 9 
     | 
    
         
            +
                I18n.instance_variable_set(:@locales, nil)
         
     | 
| 
      
 10 
     | 
    
         
            +
              end
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
              teardown do
         
     | 
| 
      
 13 
     | 
    
         
            +
                I18n.instance_variable_set(:@locales, @i18n_locales)
         
     | 
| 
      
 14 
     | 
    
         
            +
              end
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
              test "should Respond to locales" do 
         
     | 
| 
      
 17 
     | 
    
         
            +
                assert_respond_to I18n, :locales
         
     | 
| 
      
 18 
     | 
    
         
            +
              end
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
              test "should Return locales" do
         
     | 
| 
      
 21 
     | 
    
         
            +
                I18n.instance_variable_set(:@locales, {"en" => "English"})
         
     | 
| 
      
 22 
     | 
    
         
            +
                assert_equal({"en" => "English"}, I18n.locales)
         
     | 
| 
      
 23 
     | 
    
         
            +
              end
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
              test "should Return empty hash if no locales" do
         
     | 
| 
      
 26 
     | 
    
         
            +
                assert_equal({}, I18n.locales)
         
     | 
| 
      
 27 
     | 
    
         
            +
              end
         
     | 
| 
      
 28 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,45 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # encoding: utf-8
         
     | 
| 
      
 2 
     | 
    
         
            +
            require File.expand_path("test_helper", File.dirname(__FILE__))
         
     | 
| 
      
 3 
     | 
    
         
            +
            require "action_dispatch"
         
     | 
| 
      
 4 
     | 
    
         
            +
            require 'active_support/core_ext'
         
     | 
| 
      
 5 
     | 
    
         
            +
            require 'rails-localization/router'
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            I18n.extend RailsLocalization::I18n
         
     | 
| 
      
 8 
     | 
    
         
            +
            ActionDispatch::Routing::Mapper.send :include, ActionDispatch::Routing::Mapper::Localization
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
            class MapperIntegrationTest < Test::Unit::TestCase
         
     | 
| 
      
 11 
     | 
    
         
            +
              setup do
         
     | 
| 
      
 12 
     | 
    
         
            +
                @route_set = ActionDispatch::Routing::RouteSet.new
         
     | 
| 
      
 13 
     | 
    
         
            +
                @i18n_locales = I18n.instance_variable_get(:@locales)
         
     | 
| 
      
 14 
     | 
    
         
            +
                I18n.instance_variable_set(:@locales, nil)
         
     | 
| 
      
 15 
     | 
    
         
            +
              end
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
              teardown do
         
     | 
| 
      
 18 
     | 
    
         
            +
                I18n.instance_variable_set(:@locales, @i18n_locales)
         
     | 
| 
      
 19 
     | 
    
         
            +
              end
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
              test "should Respond to localized" do
         
     | 
| 
      
 22 
     | 
    
         
            +
                mapper = ActionDispatch::Routing::Mapper.new @route_set
         
     | 
| 
      
 23 
     | 
    
         
            +
                assert_respond_to mapper, :localized
         
     | 
| 
      
 24 
     | 
    
         
            +
              end
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
              test "should Define locales for I18n" do
         
     | 
| 
      
 27 
     | 
    
         
            +
                @route_set.draw do
         
     | 
| 
      
 28 
     | 
    
         
            +
                  localized({"en" => "English"}) do; end
         
     | 
| 
      
 29 
     | 
    
         
            +
                end
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
                assert_kind_of(Hash, I18n.locales[:main_app])
         
     | 
| 
      
 32 
     | 
    
         
            +
              end
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
              # test "should recognize path" do
         
     | 
| 
      
 35 
     | 
    
         
            +
              #   @route_set.draw do
         
     | 
| 
      
 36 
     | 
    
         
            +
              #     localized({"en" => "English"}) do
         
     | 
| 
      
 37 
     | 
    
         
            +
              #       resources :posts
         
     | 
| 
      
 38 
     | 
    
         
            +
              #       root :to => "welcome#index"
         
     | 
| 
      
 39 
     | 
    
         
            +
              #     end
         
     | 
| 
      
 40 
     | 
    
         
            +
              #   end
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
      
 42 
     | 
    
         
            +
              #   assert_equal({"en" => "English"}, @route_set.recognize_path("/", {:method => :get}))
         
     | 
| 
      
 43 
     | 
    
         
            +
              # end
         
     | 
| 
      
 44 
     | 
    
         
            +
            end
         
     | 
| 
      
 45 
     | 
    
         
            +
              
         
     | 
| 
         @@ -1,22 +1,19 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # encoding: utf-8
         
     | 
| 
       2 
2 
     | 
    
         
             
            require File.expand_path("test_helper", File.dirname(__FILE__))
         
     | 
| 
      
 3 
     | 
    
         
            +
            require File.expand_path("support/capybara_helper", File.dirname(__FILE__))
         
     | 
| 
       3 
4 
     | 
    
         | 
| 
       4 
5 
     | 
    
         
             
            class RailsLocalizationTest < ActionDispatch::IntegrationTest
         
     | 
| 
       5 
6 
     | 
    
         
             
              include CapybaraHelper
         
     | 
| 
       6 
7 
     | 
    
         | 
| 
       7 
     | 
    
         
            -
               
     | 
| 
       8 
     | 
    
         
            -
                 
     | 
| 
       9 
     | 
    
         
            -
              end
         
     | 
| 
       10 
     | 
    
         
            -
              
         
     | 
| 
       11 
     | 
    
         
            -
              context "sub app" do
         
     | 
| 
       12 
     | 
    
         
            -
                should "access without locale" do
         
     | 
| 
      
 8 
     | 
    
         
            +
              #context "sub app" do
         
     | 
| 
      
 9 
     | 
    
         
            +
                test "should access without locale" do
         
     | 
| 
       13 
10 
     | 
    
         
             
                  visit "/sub"
         
     | 
| 
       14 
11 
     | 
    
         | 
| 
       15 
12 
     | 
    
         
             
                  assert_equal 200, page.status_code
         
     | 
| 
       16 
13 
     | 
    
         
             
                  assert page.has_content? "translation missing: en.sub_app.main.index"
         
     | 
| 
       17 
14 
     | 
    
         
             
                end
         
     | 
| 
       18 
15 
     | 
    
         | 
| 
       19 
     | 
    
         
            -
                should  
     | 
| 
      
 16 
     | 
    
         
            +
                test "should access with english locale" do
         
     | 
| 
       20 
17 
     | 
    
         
             
                  visit "/en/sub"
         
     | 
| 
       21 
18 
     | 
    
         
             
                  assert_equal 200, page.status_code
         
     | 
| 
       22 
19 
     | 
    
         
             
                  assert page.has_content? "translation missing: en.sub_app.main.index"
         
     | 
| 
         @@ -26,7 +23,7 @@ class RailsLocalizationTest < ActionDispatch::IntegrationTest 
     | 
|
| 
       26 
23 
     | 
    
         
             
                  assert page.has_content? "translation missing: en.sub_app.main.index"
         
     | 
| 
       27 
24 
     | 
    
         
             
                end
         
     | 
| 
       28 
25 
     | 
    
         | 
| 
       29 
     | 
    
         
            -
                should  
     | 
| 
      
 26 
     | 
    
         
            +
                test "should access with russian locale" do
         
     | 
| 
       30 
27 
     | 
    
         
             
                  visit "/ru/sub"
         
     | 
| 
       31 
28 
     | 
    
         
             
                  assert_equal 200, page.status_code
         
     | 
| 
       32 
29 
     | 
    
         
             
                  assert page.has_content? "translation missing: ru.sub_app.main.index"
         
     | 
| 
         @@ -36,29 +33,29 @@ class RailsLocalizationTest < ActionDispatch::IntegrationTest 
     | 
|
| 
       36 
33 
     | 
    
         
             
                  assert page.has_content? "translation missing: ru.sub_app.main.index"
         
     | 
| 
       37 
34 
     | 
    
         
             
                end
         
     | 
| 
       38 
35 
     | 
    
         | 
| 
       39 
     | 
    
         
            -
                context "url_for" do
         
     | 
| 
       40 
     | 
    
         
            -
                  should  
     | 
| 
      
 36 
     | 
    
         
            +
                #context "url_for" do
         
     | 
| 
      
 37 
     | 
    
         
            +
                  test "should correctly print path" do
         
     | 
| 
       41 
38 
     | 
    
         
             
                    visit "/sub/print_redirect"
         
     | 
| 
       42 
39 
     | 
    
         | 
| 
       43 
40 
     | 
    
         
             
                    assert_equal 200, page.status_code
         
     | 
| 
       44 
41 
     | 
    
         
             
                    assert page.has_content?("/sub/print_redirect"), "Failed: #{page.source}"
         
     | 
| 
       45 
42 
     | 
    
         
             
                  end
         
     | 
| 
       46 
43 
     | 
    
         | 
| 
       47 
     | 
    
         
            -
                  should  
     | 
| 
       48 
     | 
    
         
            -
                    visit "en/sub/print_redirect"
         
     | 
| 
      
 44 
     | 
    
         
            +
                  test "should correctly print path with english locale" do
         
     | 
| 
      
 45 
     | 
    
         
            +
                    visit "/en/sub/print_redirect"
         
     | 
| 
       49 
46 
     | 
    
         | 
| 
       50 
47 
     | 
    
         
             
                    assert_equal 200, page.status_code
         
     | 
| 
       51 
     | 
    
         
            -
                    assert page.has_content?("/sub/print_redirect"), "Failed: #{page.source}"
         
     | 
| 
      
 48 
     | 
    
         
            +
                    assert page.has_content?("/en/sub/print_redirect"), "Failed: #{page.source}"
         
     | 
| 
       52 
49 
     | 
    
         
             
                  end
         
     | 
| 
       53 
50 
     | 
    
         | 
| 
       54 
     | 
    
         
            -
                  should  
     | 
| 
      
 51 
     | 
    
         
            +
                  test "should correctly print path with russian locale" do
         
     | 
| 
       55 
52 
     | 
    
         
             
                    visit "/ru/sub/print_redirect"
         
     | 
| 
       56 
53 
     | 
    
         | 
| 
       57 
54 
     | 
    
         
             
                    assert_equal 200, page.status_code
         
     | 
| 
       58 
55 
     | 
    
         
             
                    assert page.has_content?("/ru/sub/print_redirect"), "Failed: #{page.source}"
         
     | 
| 
       59 
56 
     | 
    
         
             
                  end
         
     | 
| 
       60 
57 
     | 
    
         | 
| 
       61 
     | 
    
         
            -
                  should  
     | 
| 
      
 58 
     | 
    
         
            +
                  test "should return path with russian locale" do
         
     | 
| 
       62 
59 
     | 
    
         
             
                    visit "/sub/welcome"
         
     | 
| 
       63 
60 
     | 
    
         | 
| 
       64 
61 
     | 
    
         
             
                    assert_equal 200, page.status_code
         
     | 
| 
         @@ -74,18 +71,18 @@ class RailsLocalizationTest < ActionDispatch::IntegrationTest 
     | 
|
| 
       74 
71 
     | 
    
         
             
                    assert_equal 200, page.status_code
         
     | 
| 
       75 
72 
     | 
    
         
             
                    assert page.has_content?("/ru/sub/print_redirect"), "Failed: #{page.source}"
         
     | 
| 
       76 
73 
     | 
    
         
             
                  end
         
     | 
| 
       77 
     | 
    
         
            -
                end
         
     | 
| 
       78 
     | 
    
         
            -
              end
         
     | 
| 
      
 74 
     | 
    
         
            +
                #end
         
     | 
| 
      
 75 
     | 
    
         
            +
              #end
         
     | 
| 
       79 
76 
     | 
    
         | 
| 
       80 
     | 
    
         
            -
              context "root page" do
         
     | 
| 
       81 
     | 
    
         
            -
                should  
     | 
| 
      
 77 
     | 
    
         
            +
              #context "root page" do
         
     | 
| 
      
 78 
     | 
    
         
            +
                test "root page should access without locale" do
         
     | 
| 
       82 
79 
     | 
    
         
             
                  visit "/"
         
     | 
| 
       83 
80 
     | 
    
         | 
| 
       84 
81 
     | 
    
         
             
                  assert_equal 200, page.status_code
         
     | 
| 
       85 
82 
     | 
    
         
             
                  assert page.has_content? "translation missing: en.main.index"
         
     | 
| 
       86 
83 
     | 
    
         
             
                end
         
     | 
| 
       87 
84 
     | 
    
         | 
| 
       88 
     | 
    
         
            -
                should  
     | 
| 
      
 85 
     | 
    
         
            +
                test "root page should access with english locale" do
         
     | 
| 
       89 
86 
     | 
    
         
             
                  visit "/en"
         
     | 
| 
       90 
87 
     | 
    
         
             
                  assert_equal 200, page.status_code
         
     | 
| 
       91 
88 
     | 
    
         
             
                  assert page.has_content? "translation missing: en.main.index"
         
     | 
| 
         @@ -95,7 +92,7 @@ class RailsLocalizationTest < ActionDispatch::IntegrationTest 
     | 
|
| 
       95 
92 
     | 
    
         
             
                  assert page.has_content? "translation missing: en.main.index"
         
     | 
| 
       96 
93 
     | 
    
         
             
                end
         
     | 
| 
       97 
94 
     | 
    
         | 
| 
       98 
     | 
    
         
            -
                should  
     | 
| 
      
 95 
     | 
    
         
            +
                test "root page should access with russian locale" do
         
     | 
| 
       99 
96 
     | 
    
         
             
                  visit "/ru"
         
     | 
| 
       100 
97 
     | 
    
         
             
                  assert_equal 200, page.status_code
         
     | 
| 
       101 
98 
     | 
    
         
             
                  assert page.has_content? "translation missing: ru.main.index"
         
     | 
| 
         @@ -104,9 +101,9 @@ class RailsLocalizationTest < ActionDispatch::IntegrationTest 
     | 
|
| 
       104 
101 
     | 
    
         
             
                  assert_equal 200, page.status_code
         
     | 
| 
       105 
102 
     | 
    
         
             
                  assert page.has_content? "translation missing: ru.main.index"
         
     | 
| 
       106 
103 
     | 
    
         
             
                end
         
     | 
| 
       107 
     | 
    
         
            -
              end
         
     | 
| 
      
 104 
     | 
    
         
            +
              #end
         
     | 
| 
       108 
105 
     | 
    
         | 
| 
       109 
     | 
    
         
            -
              context "welcome page" do
         
     | 
| 
      
 106 
     | 
    
         
            +
              #context "welcome page" do
         
     | 
| 
       110 
107 
     | 
    
         
             
                def test_welcome_with_locale_1
         
     | 
| 
       111 
108 
     | 
    
         
             
                  visit "/en/welcome"
         
     | 
| 
       112 
109 
     | 
    
         
             
                  assert_equal 200, page.status_code
         
     | 
| 
         @@ -118,9 +115,9 @@ class RailsLocalizationTest < ActionDispatch::IntegrationTest 
     | 
|
| 
       118 
115 
     | 
    
         
             
                  assert_equal 200, page.status_code
         
     | 
| 
       119 
116 
     | 
    
         
             
                  assert page.has_content? "translation missing: ru.main.welcome"
         
     | 
| 
       120 
117 
     | 
    
         
             
                end
         
     | 
| 
       121 
     | 
    
         
            -
              end
         
     | 
| 
      
 118 
     | 
    
         
            +
              #end
         
     | 
| 
       122 
119 
     | 
    
         | 
| 
       123 
     | 
    
         
            -
              context "404" do
         
     | 
| 
      
 120 
     | 
    
         
            +
              #context "404" do
         
     | 
| 
       124 
121 
     | 
    
         
             
                def test_wrong_page_without_locale
         
     | 
| 
       125 
122 
     | 
    
         
             
                  assert_raise ActionController::RoutingError do
         
     | 
| 
       126 
123 
     | 
    
         
             
                    visit "/test"
         
     | 
| 
         @@ -132,9 +129,9 @@ class RailsLocalizationTest < ActionDispatch::IntegrationTest 
     | 
|
| 
       132 
129 
     | 
    
         
             
                    visit "en/test"
         
     | 
| 
       133 
130 
     | 
    
         
             
                  end
         
     | 
| 
       134 
131 
     | 
    
         
             
                end
         
     | 
| 
       135 
     | 
    
         
            -
              end
         
     | 
| 
      
 132 
     | 
    
         
            +
              #end
         
     | 
| 
       136 
133 
     | 
    
         | 
| 
       137 
     | 
    
         
            -
              context "users page" do
         
     | 
| 
      
 134 
     | 
    
         
            +
              #context "users page" do
         
     | 
| 
       138 
135 
     | 
    
         
             
                def test_user_controller_index
         
     | 
| 
       139 
136 
     | 
    
         
             
                  visit "/en/users"
         
     | 
| 
       140 
137 
     | 
    
         
             
                  assert page.has_content?("translation missing: en.users.index"), "Page body was: #{page.body}"
         
     | 
| 
         @@ -145,41 +142,44 @@ class RailsLocalizationTest < ActionDispatch::IntegrationTest 
     | 
|
| 
       145 
142 
     | 
    
         
             
                  visit "/ru/users"
         
     | 
| 
       146 
143 
     | 
    
         
             
                  assert page.has_content? "translation missing: ru.users.index"
         
     | 
| 
       147 
144 
     | 
    
         
             
                end
         
     | 
| 
       148 
     | 
    
         
            -
              end
         
     | 
| 
      
 145 
     | 
    
         
            +
              #end
         
     | 
| 
       149 
146 
     | 
    
         | 
| 
       150 
     | 
    
         
            -
              context "user path" do
         
     | 
| 
       151 
     | 
    
         
            -
                 
     | 
| 
      
 147 
     | 
    
         
            +
              #context "user path" do
         
     | 
| 
      
 148 
     | 
    
         
            +
                test "should include locale into users_path" do
         
     | 
| 
       152 
149 
     | 
    
         
             
                  visit "/users/with_locale"
         
     | 
| 
       153 
     | 
    
         
            -
                  assert_equal "/users", page.source, "Page body was: #{page.body}"
         
     | 
| 
      
 150 
     | 
    
         
            +
                  assert_equal "/users", page.source, "1. Page body was: #{page.body}"
         
     | 
| 
       154 
151 
     | 
    
         | 
| 
       155 
152 
     | 
    
         
             
                  visit "/en/users/with_locale"
         
     | 
| 
       156 
     | 
    
         
            -
                  assert_equal "/users", page.source, "Page body was: #{page.body}"
         
     | 
| 
      
 153 
     | 
    
         
            +
                  assert_equal "/users", page.source, "2. Page body was: #{page.body}"
         
     | 
| 
       157 
154 
     | 
    
         | 
| 
       158 
155 
     | 
    
         
             
                  visit "/ru/users/with_locale"
         
     | 
| 
       159 
     | 
    
         
            -
                  assert_equal "/ru/users", page.source, "Page body was: #{page.body}"
         
     | 
| 
      
 156 
     | 
    
         
            +
                  assert_equal "/ru/users", page.source, "3. Page body was: #{page.body}"
         
     | 
| 
       160 
157 
     | 
    
         
             
                end
         
     | 
| 
       161 
158 
     | 
    
         | 
| 
       162 
     | 
    
         
            -
                 
     | 
| 
      
 159 
     | 
    
         
            +
                test "should ignore locale in users_path" do
         
     | 
| 
       163 
160 
     | 
    
         
             
                  visit "/users/without_locale"
         
     | 
| 
       164 
     | 
    
         
            -
                  assert_equal "/users", page.source, "Page body was: #{page.body}"
         
     | 
| 
      
 161 
     | 
    
         
            +
                  assert_equal "/users", page.source, "1. Page body was: #{page.body}"
         
     | 
| 
       165 
162 
     | 
    
         | 
| 
       166 
     | 
    
         
            -
                   
     | 
| 
       167 
     | 
    
         
            -
             
     | 
| 
      
 163 
     | 
    
         
            +
                  assert_raise ActionController::RoutingError do
         
     | 
| 
      
 164 
     | 
    
         
            +
                    visit "/en/users/without_locale"
         
     | 
| 
      
 165 
     | 
    
         
            +
                  end
         
     | 
| 
       168 
166 
     | 
    
         | 
| 
       169 
     | 
    
         
            -
                   
     | 
| 
       170 
     | 
    
         
            -
             
     | 
| 
      
 167 
     | 
    
         
            +
                  assert_raise ActionController::RoutingError do
         
     | 
| 
      
 168 
     | 
    
         
            +
                    visit "/ru/users/without_locale"
         
     | 
| 
      
 169 
     | 
    
         
            +
                  end
         
     | 
| 
       171 
170 
     | 
    
         
             
                end
         
     | 
| 
       172 
171 
     | 
    
         | 
| 
       173 
     | 
    
         
            -
                 
     | 
| 
      
 172 
     | 
    
         
            +
                test "should forced locale in users_path" do
         
     | 
| 
       174 
173 
     | 
    
         
             
                  visit "/users/with_defined_locale"
         
     | 
| 
       175 
     | 
    
         
            -
                  assert_equal "/ru/users", page.source, "Page body was: #{page.body}"
         
     | 
| 
      
 174 
     | 
    
         
            +
                  assert_equal "/ru/users", page.source, "1. Page body was: #{page.body}"
         
     | 
| 
       176 
175 
     | 
    
         | 
| 
       177 
     | 
    
         
            -
                   
     | 
| 
       178 
     | 
    
         
            -
             
     | 
| 
      
 176 
     | 
    
         
            +
                  assert_raise ActionController::RoutingError do
         
     | 
| 
      
 177 
     | 
    
         
            +
                    visit "/en/users/with_defined_locale"
         
     | 
| 
      
 178 
     | 
    
         
            +
                  end
         
     | 
| 
       179 
179 
     | 
    
         | 
| 
       180 
     | 
    
         
            -
                   
     | 
| 
       181 
     | 
    
         
            -
             
     | 
| 
      
 180 
     | 
    
         
            +
                  assert_raise ActionController::RoutingError do
         
     | 
| 
      
 181 
     | 
    
         
            +
                    visit "/ru/users/with_defined_locale"
         
     | 
| 
      
 182 
     | 
    
         
            +
                  end
         
     | 
| 
       182 
183 
     | 
    
         
             
                end
         
     | 
| 
       183 
     | 
    
         
            -
             
     | 
| 
       184 
     | 
    
         
            -
              end
         
     | 
| 
      
 184 
     | 
    
         
            +
              #end
         
     | 
| 
       185 
185 
     | 
    
         
             
            end
         
     |