i18n_routing 0.4.5 → 0.4.6

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.
data/CHANGELOG.rdoc CHANGED
@@ -1,3 +1,7 @@
1
+ 0.4.6 (February 14, 2011)
2
+
3
+ * Handle empty translation
4
+
1
5
  0.4.5 (November 04, 2010)
2
6
 
3
7
  * Fixing Rails 3 scope bug with missing / and no translations
data/Rakefile CHANGED
@@ -1,16 +1,16 @@
1
1
  require 'rubygems'
2
2
  require 'rake'
3
- require 'spec/rake/spectask'
4
-
5
- spec_files = Rake::FileList["spec/**/*_spec.rb"]
3
+ require 'rspec/core/rake_task'
6
4
 
5
+ # Now using RSpec 2
7
6
 
8
7
  desc "Run specs for current Rails version"
9
- Spec::Rake::SpecTask.new do |t|
10
- t.spec_files = spec_files
11
- t.spec_opts = lambda {
12
- @rails_spec_version ? ["-c --format specdoc -- rails_spec_version=#{@rails_spec_version}"] : ["-c --format specdoc"]
13
- }
8
+ RSpec::Core::RakeTask.new do |t|
9
+ t.pattern = "spec/**/*_spec.rb"
10
+ t.verbose = true
11
+ # t.ruby_opts = lambda {
12
+ # @rails_spec_version ? ["-c --format specdoc -- rails_spec_version=#{@rails_spec_version}"] : ["-c --format specdoc"]
13
+ # }
14
14
  end
15
15
 
16
16
  task :default => :spec
@@ -100,7 +100,7 @@ module ActionController
100
100
  I18n.locale = l
101
101
  nt = "#{I18nRouting.locale_escaped(l)}_#{name}"
102
102
  t = I18nRouting.translation_for(name, :named_routes) || I18nRouting.translation_for(path, :named_routes_path)
103
- if nt != name and t
103
+ if nt != name and !t.blank?
104
104
  gl_add_named_route(nt, t, options.merge(:glang => l))
105
105
  puts("[I18n] > localize %-10s: %40s (%s) => %s" % ['route', name, l, t]) if @i18n_verbose
106
106
  end
@@ -170,7 +170,7 @@ module ActionController
170
170
  locales.each do |l|
171
171
  I18n.locale = l
172
172
  nt = "#{I18nRouting.locale_escaped(l)}_#{name}"
173
- if nt != name and (t = I18nRouting.translation_for(name, namespace))
173
+ if nt != name and !(t = I18nRouting.translation_for(name, namespace)).blank?
174
174
  opts[:as] = t
175
175
  opts[:glang] = l
176
176
  opts[:controller] ||= name.to_s.pluralize
@@ -185,11 +185,11 @@ module I18nRouting
185
185
  def match(*args)
186
186
  # Localize simple match only if there is no resource scope.
187
187
  if args.size == 1 and @locales and !parent_resource and args.last.is_a?(Hash) and args.first[:as]
188
- options = Marshal.load(Marshal.dump(args.first))
188
+ options = Marshal.load(Marshal.dump(args.first)) # Dump is dirty but how to make deep cloning easily ? :/
189
189
  path, to = options.find { |name, value| name.is_a?(String) }
190
190
  options.merge!(:to => to).delete(path)
191
191
  @locales.each do |locale|
192
- mapping = LocalizedMapping.new(locale, @set, @scope, path, options) # Dump is dirty but how to make deep cloning easily ? :/
192
+ mapping = LocalizedMapping.new(locale, @set, @scope, path, options)
193
193
  if mapping.localizable?
194
194
  puts("[I18n] > localize %-10s: %40s (%s) => %s" % ['route', args.first[:as], locale, mapping.path]) if @i18n_verbose
195
195
  @set.add_route(*mapping.to_route)
@@ -301,7 +301,7 @@ module I18nRouting
301
301
  @localized_path = File.join((@scope[:path] || ''), tp).gsub(/\/$/, '')
302
302
 
303
303
  # If a translated path exists, set localized infos
304
- if @localized_path and @localized_path != @path
304
+ if !@localized_path.blank? and @localized_path != @path
305
305
  #@options[:controller] ||= @options[:as]
306
306
  @options[:as] = "#{I18nRouting.locale_escaped(locale)}_#{@options[:as]}"
307
307
  @path = @localized_path
@@ -17,6 +17,7 @@ describe :localized_routes do
17
17
  map.localized(I18n.available_locales, :verbose => false) do
18
18
  map.about 'about', :controller => 'about', :action => :show
19
19
  map.welcome 'welcome/to/our/page', :controller => :welcome, :action => :index
20
+ map.empty 'empty', :controller => 'empty', :action => :show
20
21
 
21
22
  map.resources :users, :member => {:level => :get, :one => :get, :two => :get}, :collection => {:groups => :get}
22
23
  map.resource :contact
@@ -25,6 +26,8 @@ describe :localized_routes do
25
26
  m.resources :books
26
27
  end
27
28
 
29
+ map.resources :empty_resources
30
+
28
31
  map.resource :foo do |m|
29
32
  m.resources :bars
30
33
  m.resource :foofoo do |mm|
@@ -62,13 +65,15 @@ describe :localized_routes do
62
65
  $r.draw do
63
66
  match 'not_about' => "not_about#show", :as => :not_about
64
67
  resources :not_users
68
+ resources :empty_resources
65
69
  resource :not_contact
66
70
 
67
- localized(I18n.available_locales, :verbose => false) do
71
+ localized(I18n.available_locales, :verbose => true) do
68
72
  match 'about' => "about#show", :as => :about
69
73
  match 'welcome/to/our/page' => "welcome#index", :as => :welcome
74
+ match 'empty' => 'empty#show', :as => :empty
70
75
 
71
- scope '/:locale', :constraints => { :locale => /[a-z]{2}/ } do
76
+ scope '/:locale' do #, :constraints => { :locale => /[a-z]{2}/ } do ### Commented => this constraint fail on rails 3.0.4 ??
72
77
  match '/' => "about#show", :as => :localized_root
73
78
  match 'about' => "about#show", :as => :about_with_locale
74
79
  match '/about' => "about#show", :as => :about_with_locale_with_sep
@@ -214,6 +219,13 @@ describe :localized_routes do
214
219
  it "named_route generates route from route path when route name not available" do
215
220
  routes.send(:welcome_path).should == "/#{I18n.t 'welcome/to/our/page', :scope => :named_routes_path}"
216
221
  end
222
+
223
+ it "doesn't translate empty route" do
224
+ routes.send(:empty_path).should_not == "/#{I18n.t 'empty', :scope => :named_routes_path}"
225
+ routes.send(:empty_path).should == "/empty"
226
+ routes.send(:empty_resources_path).should_not == "/#{I18n.t 'empty', :scope => :named_routes_path}"
227
+ routes.send(:empty_resources_path).should == "/empty_resources"
228
+ end
217
229
 
218
230
  it "named_route generates route using localized values and I18n.locale as a string" do
219
231
  o = I18n.locale
data/spec/locales/fr.yml CHANGED
@@ -21,6 +21,7 @@ fr:
21
21
  universes: 'univers'
22
22
  countries: 'pays'
23
23
  bars: bars_fr
24
+ empty_resources: ''
24
25
  resource:
25
26
  foo: foo_fr
26
27
  foofoo: froufrou
@@ -28,6 +29,7 @@ fr:
28
29
  named_routes_path:
29
30
  about: 'a-propos'
30
31
  'welcome/to/our/page': 'bienvenue/sur/notre/site' # no idea about french translation ;-) --R
32
+ empty: ''
31
33
  path_names:
32
34
  new: 'nouveau'
33
35
  edit: 'edition'
data/spec/spec_helper.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  require 'rubygems'
2
- require 'spec'
2
+ require 'rspec'
3
3
 
4
4
  $rails_version = ARGV.find { |e| e =~ /rails_spec_version=.*/ }.split('=').last.to_i rescue nil
5
5
 
metadata CHANGED
@@ -1,12 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: i18n_routing
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 4
8
- - 5
9
- version: 0.4.5
4
+ prerelease:
5
+ version: 0.4.6
10
6
  platform: ruby
11
7
  authors:
12
8
  - Guillaume Luccisano
@@ -14,7 +10,7 @@ autorequire:
14
10
  bindir: bin
15
11
  cert_chain: []
16
12
 
17
- date: 2010-11-04 00:00:00 -07:00
13
+ date: 2011-02-14 00:00:00 -08:00
18
14
  default_executable:
19
15
  dependencies:
20
16
  - !ruby/object:Gem::Dependency
@@ -25,10 +21,6 @@ dependencies:
25
21
  requirements:
26
22
  - - ">"
27
23
  - !ruby/object:Gem::Version
28
- segments:
29
- - 0
30
- - 3
31
- - 5
32
24
  version: 0.3.5
33
25
  type: :runtime
34
26
  version_requirements: *id001
@@ -69,23 +61,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
69
61
  requirements:
70
62
  - - ">="
71
63
  - !ruby/object:Gem::Version
72
- segments:
73
- - 0
74
64
  version: "0"
75
65
  required_rubygems_version: !ruby/object:Gem::Requirement
76
66
  none: false
77
67
  requirements:
78
68
  - - ">="
79
69
  - !ruby/object:Gem::Version
80
- segments:
81
- - 1
82
- - 3
83
- - 4
84
70
  version: 1.3.4
85
71
  requirements: []
86
72
 
87
73
  rubyforge_project: i18n_routing
88
- rubygems_version: 1.3.7
74
+ rubygems_version: 1.5.2
89
75
  signing_key:
90
76
  specification_version: 3
91
77
  summary: I18n routing module for Rails 2.3.x and Rails 3. Translate your routes with ease !