i18n_routing 0.4.5 → 0.4.6

Sign up to get free protection for your applications and to get access to all the features.
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 !