simple-navigation 3.3.4 → 3.4.0

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG CHANGED
@@ -1,3 +1,8 @@
1
+ *3.4.0
2
+
3
+ * Added Gemfile for easier development with Bundler. Thanks to Josep Jaume.
4
+ * modified :highlights_on option to accept a :subpath option (as well as Proc and Regexp forms). This can be used to automatically highlight an item even for items within a subpath. Thanks to Josep Jaume.
5
+
1
6
  *3.3.4
2
7
 
3
8
  * modified :highlights_on option to accept a Proc (as well as the existing Regexp form). This can be used to provide specific highlighting conditions inline. Thanks to superlou for sparking the idea for the concept.
data/Gemfile ADDED
@@ -0,0 +1,5 @@
1
+ source :rubygems
2
+ gem 'actionpack'
3
+ gem 'rspec'
4
+ gem 'rake'
5
+ gem 'rdoc'
data/Rakefile CHANGED
@@ -40,7 +40,7 @@ begin
40
40
  gemspec.add_dependency('activesupport', '>= 2.3.2')
41
41
  gemspec.authors = ["Andi Schacke", "Mark J. Titorenko"]
42
42
  gemspec.rdoc_options = ["--inline-source", "--charset=UTF-8"]
43
- gemspec.files = FileList["[A-Z]*", "{lib,spec,rails,generators}/**/*"] - FileList["**/*.log"]
43
+ gemspec.files = FileList["[A-Z]*", "{lib,spec,rails,generators}/**/*"] - FileList["**/*.log", "Gemfile.lock"]
44
44
  gemspec.rubyforge_project = 'andi'
45
45
  end
46
46
  Jeweler::GemcutterTasks.new
data/VERSION CHANGED
@@ -1 +1 @@
1
- 3.3.4
1
+ 3.4.0
@@ -83,8 +83,10 @@ module SimpleNavigation
83
83
  SimpleNavigation.request_uri =~ highlights_on
84
84
  when Proc
85
85
  highlights_on.call
86
+ when :subpath
87
+ !!(SimpleNavigation.request_uri =~ /^#{Regexp.escape url_without_anchor}/)
86
88
  else
87
- raise ArgumentError, ':highlights_on must be a Regexp or Proc'
89
+ raise ArgumentError, ':highlights_on must be a Regexp, Proc or :subpath'
88
90
  end
89
91
  elsif auto_highlight?
90
92
  !!(root_path_match? || SimpleNavigation.current_page?(url_without_anchor))
@@ -114,7 +116,7 @@ module SimpleNavigation
114
116
  end
115
117
 
116
118
  def url_without_anchor
117
- url.split('#').first
119
+ url.split('#').first
118
120
  end
119
121
 
120
122
  end
@@ -67,7 +67,7 @@ describe SimpleNavigation::Item do
67
67
  end
68
68
  end
69
69
  end
70
-
70
+
71
71
  context 'setting class and id on the container' do
72
72
  before(:each) do
73
73
  @options = {:container_class => 'container_class', :container_id => 'container_id'}
@@ -100,27 +100,27 @@ describe SimpleNavigation::Item do
100
100
  end
101
101
  end
102
102
  end
103
-
103
+
104
104
  context 'url' do
105
105
  context 'url is a string' do
106
106
  before(:each) do
107
- @item = SimpleNavigation::Item.new(@item_container, :my_key, 'name', 'url', {})
107
+ @item = SimpleNavigation::Item.new(@item_container, :my_key, 'name', 'url', {})
108
108
  end
109
109
  it {@item.url.should == 'url'}
110
110
  end
111
111
  context 'url is a proc' do
112
112
  before(:each) do
113
- @item = SimpleNavigation::Item.new(@item_container, :my_key, 'name', Proc.new {"my_" + "url"}, {})
113
+ @item = SimpleNavigation::Item.new(@item_container, :my_key, 'name', Proc.new {"my_" + "url"}, {})
114
114
  end
115
115
  it {@item.url.should == 'my_url'}
116
116
  end
117
117
  end
118
-
118
+
119
119
  end
120
120
 
121
121
  describe 'name' do
122
122
  before(:each) do
123
- SimpleNavigation.config.stub!(:name_generator => Proc.new {|name| "<span>#{name}</span>"})
123
+ SimpleNavigation.config.stub!(:name_generator => Proc.new {|name| "<span>#{name}</span>"})
124
124
  end
125
125
  context 'default (generator is applied)' do
126
126
  it {@item.name.should == "<span>name</span>"}
@@ -335,6 +335,24 @@ describe SimpleNavigation::Item do
335
335
  it {@item.send(:selected_by_condition?).should be_false}
336
336
  end
337
337
  end
338
+ context ':highlights_on is :subpath' do
339
+ before(:each) do
340
+ @item.stub!(:url => '/resources')
341
+ @item.stub!(:highlights_on => :subpath)
342
+ end
343
+ context 'we are in a route beginning with this item path' do
344
+ before(:each) do
345
+ SimpleNavigation.stub!(:request_uri => '/resources/id')
346
+ end
347
+ it {@item.send(:selected_by_condition?).should be_true}
348
+ end
349
+ context 'we are in a route not beginning with this item path' do
350
+ before(:each) do
351
+ SimpleNavigation.stub!(:request_uri => '/another_resource/id')
352
+ end
353
+ it {@item.send(:selected_by_condition?).should be_false}
354
+ end
355
+ end
338
356
  context ':highlights_on is not a regexp or a proc' do
339
357
  before(:each) do
340
358
  @item.stub!(:highlights_on => "not a regexp")
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple-navigation
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.3.4
4
+ version: 3.4.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,12 +10,55 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2011-07-11 00:00:00.000000000 +01:00
14
- default_executable:
13
+ date: 2011-08-05 00:00:00.000000000Z
15
14
  dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: actionpack
17
+ requirement: &70351130084240 !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: '0'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: *70351130084240
26
+ - !ruby/object:Gem::Dependency
27
+ name: rspec
28
+ requirement: &70351130083760 !ruby/object:Gem::Requirement
29
+ none: false
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: *70351130083760
37
+ - !ruby/object:Gem::Dependency
38
+ name: rake
39
+ requirement: &70351130083280 !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ! '>='
43
+ - !ruby/object:Gem::Version
44
+ version: '0'
45
+ type: :runtime
46
+ prerelease: false
47
+ version_requirements: *70351130083280
48
+ - !ruby/object:Gem::Dependency
49
+ name: rdoc
50
+ requirement: &70351130082800 !ruby/object:Gem::Requirement
51
+ none: false
52
+ requirements:
53
+ - - ! '>='
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
+ type: :runtime
57
+ prerelease: false
58
+ version_requirements: *70351130082800
16
59
  - !ruby/object:Gem::Dependency
17
60
  name: rspec
18
- requirement: &2152960620 !ruby/object:Gem::Requirement
61
+ requirement: &70351130082320 !ruby/object:Gem::Requirement
19
62
  none: false
20
63
  requirements:
21
64
  - - ! '>='
@@ -23,10 +66,10 @@ dependencies:
23
66
  version: 2.0.1
24
67
  type: :development
25
68
  prerelease: false
26
- version_requirements: *2152960620
69
+ version_requirements: *70351130082320
27
70
  - !ruby/object:Gem::Dependency
28
71
  name: activesupport
29
- requirement: &2152959780 !ruby/object:Gem::Requirement
72
+ requirement: &70351130081840 !ruby/object:Gem::Requirement
30
73
  none: false
31
74
  requirements:
32
75
  - - ! '>='
@@ -34,7 +77,7 @@ dependencies:
34
77
  version: 2.3.2
35
78
  type: :runtime
36
79
  prerelease: false
37
- version_requirements: *2152959780
80
+ version_requirements: *70351130081840
38
81
  description: With the simple-navigation gem installed you can easily create multilevel
39
82
  navigations for your Rails, Sinatra or Padrino applications. The navigation is defined
40
83
  in a single configuration file. It supports automatic as well as explicit highlighting
@@ -46,6 +89,7 @@ extra_rdoc_files:
46
89
  - README
47
90
  files:
48
91
  - CHANGELOG
92
+ - Gemfile
49
93
  - README
50
94
  - Rakefile
51
95
  - VERSION
@@ -92,7 +136,6 @@ files:
92
136
  - spec/lib/simple_navigation/rendering/renderer/text_spec.rb
93
137
  - spec/lib/simple_navigation_spec.rb
94
138
  - spec/spec_helper.rb
95
- has_rdoc: true
96
139
  homepage: http://github.com/andi/simple-navigation
97
140
  licenses: []
98
141
  post_install_message:
@@ -115,7 +158,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
115
158
  version: '0'
116
159
  requirements: []
117
160
  rubyforge_project: andi
118
- rubygems_version: 1.6.2
161
+ rubygems_version: 1.8.6
119
162
  signing_key:
120
163
  specification_version: 3
121
164
  summary: simple-navigation is a ruby library for creating navigations (with multiple