semantic_navigation 0.1.1 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. data/.editorconfig +14 -0
  2. data/.gitignore +2 -0
  3. data/.travis.yml +10 -2
  4. data/Appraisals +7 -0
  5. data/Gemfile +1 -1
  6. data/MIT-LICENSE +20 -0
  7. data/README.md +31 -20
  8. data/Rakefile +2 -1
  9. data/TODO +14 -0
  10. data/gemfiles/3.2.gemfile +7 -0
  11. data/gemfiles/3.2.gemfile.lock +112 -0
  12. data/gemfiles/4.0.gemfile +7 -0
  13. data/gemfiles/4.0.gemfile.lock +107 -0
  14. data/lib/generators/semantic_navigation/breadcrumb_renderer/templates/breadcrumb_renderer.rb +5 -5
  15. data/lib/generators/semantic_navigation/list_renderer/list_renderer_generator.rb +0 -1
  16. data/lib/generators/semantic_navigation/list_renderer/templates/list_renderer.rb +4 -4
  17. data/lib/semantic_navigation.rb +30 -0
  18. data/lib/semantic_navigation/configuration.rb +8 -9
  19. data/lib/semantic_navigation/core.rb +8 -6
  20. data/lib/semantic_navigation/core/leaf.rb +2 -2
  21. data/lib/semantic_navigation/core/mix_in/name_methods.rb +24 -0
  22. data/lib/semantic_navigation/core/mix_in/url_methods.rb +25 -0
  23. data/lib/semantic_navigation/core/navigation.rb +8 -2
  24. data/lib/semantic_navigation/core/node.rb +2 -2
  25. data/lib/semantic_navigation/deprecations/renderers/acts_as_breadcrumb.rb +14 -0
  26. data/lib/semantic_navigation/deprecations/renderers/acts_as_list.rb +12 -0
  27. data/lib/semantic_navigation/deprecations/renderers/render_helpers.rb +14 -0
  28. data/lib/semantic_navigation/helper_methods.rb +8 -4
  29. data/lib/semantic_navigation/railtie.rb +9 -19
  30. data/lib/semantic_navigation/renderers.rb +15 -8
  31. data/lib/semantic_navigation/renderers/bread_crumb.rb +6 -6
  32. data/lib/semantic_navigation/renderers/list.rb +6 -6
  33. data/lib/semantic_navigation/renderers/mix_in/acts_as_breadcrumb.rb +43 -0
  34. data/lib/semantic_navigation/renderers/mix_in/acts_as_list.rb +49 -0
  35. data/lib/semantic_navigation/renderers/mix_in/render_helpers.rb +110 -0
  36. data/lib/semantic_navigation/twitter_bootstrap/breadcrumb.rb +5 -5
  37. data/lib/semantic_navigation/twitter_bootstrap/list.rb +2 -2
  38. data/lib/semantic_navigation/twitter_bootstrap/tabs.rb +2 -2
  39. data/lib/semantic_navigation/version.rb +1 -1
  40. data/semantic_navigation.gemspec +3 -2
  41. data/spec/lib/semantic_navigation/configuration_spec.rb +29 -24
  42. data/spec/lib/semantic_navigation/core/leaf_spec.rb +121 -114
  43. data/spec/lib/semantic_navigation/core/navigation_spec.rb +81 -76
  44. data/spec/lib/semantic_navigation/core/node_spec.rb +52 -49
  45. data/spec/lib/semantic_navigation/helper_methods_spec.rb +47 -42
  46. data/spec/lib/semantic_navigation/renderers/bread_crumb_spec.rb +191 -187
  47. data/spec/lib/semantic_navigation/renderers/deprecations_spec.rb +67 -0
  48. data/spec/lib/semantic_navigation/renderers/list_spec.rb +260 -258
  49. data/spec/lib/semantic_navigation/twitter_bootstrap/breadcrumb_spec.rb +163 -159
  50. data/spec/lib/semantic_navigation/twitter_bootstrap/list_spec.rb +263 -262
  51. data/spec/lib/semantic_navigation/twitter_bootstrap/tabs_spec.rb +269 -266
  52. data/spec/spec_helper.rb +6 -0
  53. metadata +41 -13
  54. data/gemfiles/rails3 +0 -7
  55. data/lib/semantic_navigation/core/name_methods.rb +0 -24
  56. data/lib/semantic_navigation/core/url_methods.rb +0 -24
  57. data/lib/semantic_navigation/renderers/acts_as_breadcrumb.rb +0 -42
  58. data/lib/semantic_navigation/renderers/acts_as_list.rb +0 -48
  59. data/lib/semantic_navigation/renderers/render_helpers.rb +0 -109
@@ -1,202 +1,206 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe SemanticNavigation::TwitterBootstrap::Breadcrumb do
4
- before :each do
5
- class ViewObject
6
- attr_accessor :output_buffer
7
- include ActionView::Helpers::TagHelper
8
- include SemanticNavigation::HelperMethods
9
- include ActionView::Helpers::UrlHelper
10
- end
11
- @configuration = SemanticNavigation::Configuration
12
- @configuration.register_renderer :bootstrap_breadcrumb, SemanticNavigation::TwitterBootstrap::Breadcrumb
13
- @view_object = ViewObject.new
14
- end
15
4
 
16
- it 'should render empty ul tag for empty navigation' do
5
+ context :renders do
17
6
 
18
- @configuration.run do
19
- navigate :menu do
20
- end
7
+ before :each do
8
+ class ViewObject
9
+ attr_accessor :output_buffer
10
+ include ActionView::Helpers::TagHelper
11
+ include SemanticNavigation::HelperMethods
12
+ include ActionView::Helpers::UrlHelper
13
+ end
14
+ @configuration = SemanticNavigation::Configuration
15
+ @configuration.register_renderer :bootstrap_breadcrumb, SemanticNavigation::TwitterBootstrap::Breadcrumb
16
+ @view_object = ViewObject.new
21
17
  end
22
18
 
23
- result = @view_object.navigation_for :menu, :as => :bootstrap_breadcrumb
24
- result.should == "<ul class=\"breadcrumb\"></ul>"
25
- end
19
+ it 'empty ul tag for empty navigation' do
26
20
 
27
- it 'should render one level navigation breadcrumb' do
28
- @configuration.run do
29
- navigate :menu do
30
- item :url1, 'url1', :name => 'url1'
31
- item :url2, 'url2', :name => 'url2'
21
+ @configuration.run do
22
+ navigate :menu do
23
+ end
32
24
  end
33
- end
34
25
 
35
- @view_object.should_receive(:current_page?).and_return(false,true)
36
-
37
- result = @view_object.navigation_for :menu, :as => :bootstrap_breadcrumb
38
- result.should == ["<ul class=\"breadcrumb\">",
39
- "<li>",
40
- "url2",
41
- "</li>",
42
- "</ul>"].join
43
- end
26
+ result = @view_object.navigation_for :menu, :as => :bootstrap_breadcrumb
27
+ result.should == "<ul class=\"breadcrumb\"></ul>"
28
+ end
44
29
 
45
- it 'should render one multilevel navigation breadcrumb' do
46
- @configuration.run do
47
- navigate :menu do
48
- item :url1, 'url1', :name => 'url1' do
49
- item :suburl1, 'suburl1', :name => 'suburl1'
50
- end
51
- item :url2, 'url2', :name => 'url2' do
52
- item :suburl2, 'suburl2', :name => 'suburl2'
30
+ it 'one level navigation breadcrumb' do
31
+ @configuration.run do
32
+ navigate :menu do
33
+ item :url1, 'url1', :name => 'url1'
34
+ item :url2, 'url2', :name => 'url2'
53
35
  end
54
36
  end
55
- end
56
37
 
57
- @view_object.should_receive(:current_page?).and_return(true,false,false,false)
38
+ @view_object.should_receive(:current_page?).and_return(false,true)
58
39
 
59
- result = @view_object.navigation_for :menu, :as => :bootstrap_breadcrumb
60
- result.should == ["<ul class=\"breadcrumb\">",
61
- "<li>",
62
- "<a href=\"url1\">",
63
- "url1",
64
- "</a>",
65
- "<span class=\"divider\">/",
66
- "</span>",
67
- "</li>",
68
- "<li>",
69
- "suburl1",
70
- "</li>",
71
- "</ul>"].join
72
- end
40
+ result = @view_object.navigation_for :menu, :as => :bootstrap_breadcrumb
41
+ result.should == ["<ul class=\"breadcrumb\">",
42
+ "<li>",
43
+ "url2",
44
+ "</li>",
45
+ "</ul>"].join
46
+ end
73
47
 
74
- it 'should render last item as link if :last_as_link => true' do
75
- @configuration.run do
76
- navigate :menu do
77
- item :url1, 'url1', :name => 'url1' do
78
- item :suburl1, 'suburl1', :name => 'suburl1'
79
- end
80
- item :url2, 'url2', :name => 'url2' do
81
- item :suburl2, 'suburl2', :name => 'suburl2'
48
+ it 'one multilevel navigation breadcrumb' do
49
+ @configuration.run do
50
+ navigate :menu do
51
+ item :url1, 'url1', :name => 'url1' do
52
+ item :suburl1, 'suburl1', :name => 'suburl1'
53
+ end
54
+ item :url2, 'url2', :name => 'url2' do
55
+ item :suburl2, 'suburl2', :name => 'suburl2'
56
+ end
82
57
  end
83
58
  end
84
- end
85
-
86
- @view_object.should_receive(:current_page?).and_return(true,false,false,false)
87
59
 
88
- result = @view_object.navigation_for :menu, :as => :bootstrap_breadcrumb, :last_as_link => true
89
- result.should == ["<ul class=\"breadcrumb\">",
90
- "<li>",
91
- "<a href=\"url1\">",
92
- "url1",
93
- "</a>",
94
- "<span class=\"divider\">/",
95
- "</span>",
96
- "</li>",
97
- "<li>",
98
- "<a href=\"suburl1\">",
60
+ @view_object.should_receive(:current_page?).and_return(true,false,false,false)
61
+
62
+ result = @view_object.navigation_for :menu, :as => :bootstrap_breadcrumb
63
+ result.should == ["<ul class=\"breadcrumb\">",
64
+ "<li>",
65
+ "<a href=\"url1\">",
66
+ "url1",
67
+ "</a>",
68
+ "<span class=\"divider\">/",
69
+ "</span>",
70
+ "</li>",
71
+ "<li>",
99
72
  "suburl1",
100
- "</a>",
101
- "</li>",
102
- "</ul>"].join
103
- end
73
+ "</li>",
74
+ "</ul>"].join
75
+ end
104
76
 
105
- it 'should render only root level' do
106
- @configuration.run do
107
- navigate :menu do
108
- item :url1, 'url1', :name => 'url1' do
109
- item :suburl1, 'suburl1', :name => 'suburl1'
110
- end
111
- item :url2, 'url2', :name => 'url2' do
112
- item :suburl2, 'suburl2', :name => 'suburl2'
77
+ it 'last item as link if :last_as_link => true' do
78
+ @configuration.run do
79
+ navigate :menu do
80
+ item :url1, 'url1', :name => 'url1' do
81
+ item :suburl1, 'suburl1', :name => 'suburl1'
82
+ end
83
+ item :url2, 'url2', :name => 'url2' do
84
+ item :suburl2, 'suburl2', :name => 'suburl2'
85
+ end
113
86
  end
114
87
  end
115
- end
116
-
117
- @view_object.should_receive(:current_page?).and_return(true,false,false,false)
118
88
 
119
- result = @view_object.navigation_for :menu, :level => 0, :as => :bootstrap_breadcrumb
120
- result.should == ["<ul class=\"breadcrumb\">",
121
- "<li>",
122
- "url1",
123
- "</li>",
124
- "</ul>"].join
125
- end
89
+ @view_object.should_receive(:current_page?).and_return(true,false,false,false)
90
+
91
+ result = @view_object.navigation_for :menu, :as => :bootstrap_breadcrumb, :last_as_link => true
92
+ result.should == ["<ul class=\"breadcrumb\">",
93
+ "<li>",
94
+ "<a href=\"url1\">",
95
+ "url1",
96
+ "</a>",
97
+ "<span class=\"divider\">/",
98
+ "</span>",
99
+ "</li>",
100
+ "<li>",
101
+ "<a href=\"suburl1\">",
102
+ "suburl1",
103
+ "</a>",
104
+ "</li>",
105
+ "</ul>"].join
106
+ end
126
107
 
127
- it 'should render second level' do
128
- @configuration.run do
129
- navigate :menu do
130
- item :url1, 'url1', :name => 'url1' do
131
- item :suburl1, 'suburl1', :name => 'suburl1'
132
- end
133
- item :url2, 'url2', :name => 'url2' do
134
- item :suburl2, 'suburl2', :name => 'suburl2'
108
+ it 'only root level' do
109
+ @configuration.run do
110
+ navigate :menu do
111
+ item :url1, 'url1', :name => 'url1' do
112
+ item :suburl1, 'suburl1', :name => 'suburl1'
113
+ end
114
+ item :url2, 'url2', :name => 'url2' do
115
+ item :suburl2, 'suburl2', :name => 'suburl2'
116
+ end
135
117
  end
136
118
  end
137
- end
138
119
 
139
- @view_object.should_receive(:current_page?).and_return(true, false, false, false)
120
+ @view_object.should_receive(:current_page?).and_return(true,false,false,false)
140
121
 
141
- result = @view_object.navigation_for :menu, :level => 1, :as => :bootstrap_breadcrumb
142
- result.should == ["<ul class=\"breadcrumb\">",
143
- "<li>",
144
- "suburl1",
145
- "</li>",
146
- "</ul>"].join
147
- end
122
+ result = @view_object.navigation_for :menu, :level => 0, :as => :bootstrap_breadcrumb
123
+ result.should == ["<ul class=\"breadcrumb\">",
124
+ "<li>",
125
+ "url1",
126
+ "</li>",
127
+ "</ul>"].join
128
+ end
148
129
 
149
- it 'should render the exact levels' do
150
- @configuration.run do
151
- navigate :menu do
152
- item :url1, 'url1', :name => 'url1' do
153
- item :suburl1, 'suburl1', :name => 'suburl1' do
154
- item :subsub1, 'subsub1', :name => 'subsub1'
130
+ it 'second level' do
131
+ @configuration.run do
132
+ navigate :menu do
133
+ item :url1, 'url1', :name => 'url1' do
134
+ item :suburl1, 'suburl1', :name => 'suburl1'
155
135
  end
156
- end
157
- item :url2, 'url2', :name => 'url2' do
158
- item :suburl2, 'suburl2', :name => 'suburl2' do
159
- item :subsub2, 'subsub2', :name => 'subsub2'
136
+ item :url2, 'url2', :name => 'url2' do
137
+ item :suburl2, 'suburl2', :name => 'suburl2'
160
138
  end
161
139
  end
162
140
  end
163
- end
164
141
 
165
- @view_object.should_receive(:current_page?).and_return(true, false, false, false, false, false)
142
+ @view_object.should_receive(:current_page?).and_return(true, false, false, false)
166
143
 
167
- result = @view_object.navigation_for :menu, :levels => 0..1, :as => :bootstrap_breadcrumb
168
- result.should == ["<ul class=\"breadcrumb\">",
169
- "<li>",
170
- "<a href=\"url1\">",
171
- "url1",
172
- "</a>",
173
- "<span class=\"divider\">/",
174
- "</span>",
175
- "</li>",
176
- "<li>",
177
- "suburl1",
178
- "</li>",
179
- "</ul>"].join
180
- end
144
+ result = @view_object.navigation_for :menu, :level => 1, :as => :bootstrap_breadcrumb
145
+ result.should == ["<ul class=\"breadcrumb\">",
146
+ "<li>",
147
+ "suburl1",
148
+ "</li>",
149
+ "</ul>"].join
150
+ end
181
151
 
182
- it 'should render navigation except some item' do
183
- @configuration.run do
184
- navigate :menu do
185
- item :url1, 'url1', :name => 'url1' do
186
- item :suburl1, 'suburl1', :name => 'suburl1'
187
- end
188
- item :url2, 'url2', :name => 'url2' do
189
- item :suburl2, 'suburl2', :name => 'suburl2'
152
+ it 'the exact levels' do
153
+ @configuration.run do
154
+ navigate :menu do
155
+ item :url1, 'url1', :name => 'url1' do
156
+ item :suburl1, 'suburl1', :name => 'suburl1' do
157
+ item :subsub1, 'subsub1', :name => 'subsub1'
158
+ end
159
+ end
160
+ item :url2, 'url2', :name => 'url2' do
161
+ item :suburl2, 'suburl2', :name => 'suburl2' do
162
+ item :subsub2, 'subsub2', :name => 'subsub2'
163
+ end
164
+ end
190
165
  end
191
166
  end
167
+
168
+ @view_object.should_receive(:current_page?).and_return(true, false, false, false, false, false)
169
+
170
+ result = @view_object.navigation_for :menu, :levels => 0..1, :as => :bootstrap_breadcrumb
171
+ result.should == ["<ul class=\"breadcrumb\">",
172
+ "<li>",
173
+ "<a href=\"url1\">",
174
+ "url1",
175
+ "</a>",
176
+ "<span class=\"divider\">/",
177
+ "</span>",
178
+ "</li>",
179
+ "<li>",
180
+ "suburl1",
181
+ "</li>",
182
+ "</ul>"].join
192
183
  end
193
184
 
194
- @view_object.should_receive(:current_page?).and_return(true, false, false, false)
195
- result = @view_object.navigation_for :menu, :except_for => [:suburl1], :as => :bootstrap_breadcrumb
196
- result.should == ["<ul class=\"breadcrumb\">",
197
- "<li>",
198
- "url1",
199
- "</li>",
200
- "</ul>"].join
185
+ it 'navigation except some item' do
186
+ @configuration.run do
187
+ navigate :menu do
188
+ item :url1, 'url1', :name => 'url1' do
189
+ item :suburl1, 'suburl1', :name => 'suburl1'
190
+ end
191
+ item :url2, 'url2', :name => 'url2' do
192
+ item :suburl2, 'suburl2', :name => 'suburl2'
193
+ end
194
+ end
195
+ end
196
+
197
+ @view_object.should_receive(:current_page?).and_return(true, false, false, false)
198
+ result = @view_object.navigation_for :menu, :except_for => [:suburl1], :as => :bootstrap_breadcrumb
199
+ result.should == ["<ul class=\"breadcrumb\">",
200
+ "<li>",
201
+ "url1",
202
+ "</li>",
203
+ "</ul>"].join
204
+ end
201
205
  end
202
206
  end
@@ -1,316 +1,317 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe SemanticNavigation::TwitterBootstrap::List do
4
+ context :renders do
4
5
 
5
- before :each do
6
- class ViewObject
7
- attr_accessor :output_buffer
8
- include ActionView::Helpers::TagHelper
9
- include SemanticNavigation::HelperMethods
10
- include ActionView::Helpers::UrlHelper
11
- end
12
- @configuration = SemanticNavigation::Configuration
13
- @configuration.register_renderer :bootstrap_list, SemanticNavigation::TwitterBootstrap::List
14
- @view_object = ViewObject.new
15
- end
6
+ before :each do
7
+ class ViewObject
8
+ attr_accessor :output_buffer
9
+ include ActionView::Helpers::TagHelper
10
+ include SemanticNavigation::HelperMethods
11
+ include ActionView::Helpers::UrlHelper
12
+ end
13
+ @configuration = SemanticNavigation::Configuration
14
+ @configuration.register_renderer :bootstrap_list, SemanticNavigation::TwitterBootstrap::List
15
+ @view_object = ViewObject.new
16
+ end
16
17
 
17
- it 'should render empty ul tag for empty navigation' do
18
+ it 'empty ul tag for empty navigation' do
18
19
 
19
- @configuration.run do
20
- navigate :menu do
20
+ @configuration.run do
21
+ navigate :menu do
22
+ end
21
23
  end
22
- end
23
24
 
24
- result = @view_object.navigation_for :menu, :as => :bootstrap_list
25
- result.should == "<ul class=\"nav nav-list\"></ul>"
26
- end
25
+ result = @view_object.navigation_for :menu, :as => :bootstrap_list
26
+ result.should == "<ul class=\"nav nav-list\"></ul>"
27
+ end
27
28
 
28
- it 'should render one level navigation' do
29
- @configuration.run do
30
- navigate :menu do
31
- item :url1, 'url1', :name => 'url1'
32
- item :url2, 'url2', :name => 'url2'
29
+ it 'one level navigation' do
30
+ @configuration.run do
31
+ navigate :menu do
32
+ item :url1, 'url1', :name => 'url1'
33
+ item :url2, 'url2', :name => 'url2'
34
+ end
33
35
  end
34
- end
35
36
 
36
- result = @view_object.navigation_for :menu, :as => :bootstrap_list
37
- result.should == ["<ul class=\"nav nav-list\">",
38
- "<li>",
39
- "<a href=\"url1\">",
40
- "url1",
41
- "</a>",
42
- "</li>",
43
- "<li>",
44
- "<a href=\"url2\">",
45
- "url2",
46
- "</a>",
47
- "</li>",
48
- "</ul>"].join
49
- end
37
+ result = @view_object.navigation_for :menu, :as => :bootstrap_list
38
+ result.should == ["<ul class=\"nav nav-list\">",
39
+ "<li>",
40
+ "<a href=\"url1\">",
41
+ "url1",
42
+ "</a>",
43
+ "</li>",
44
+ "<li>",
45
+ "<a href=\"url2\">",
46
+ "url2",
47
+ "</a>",
48
+ "</li>",
49
+ "</ul>"].join
50
+ end
50
51
 
51
- it 'should render one multilevel navigation' do
52
- @configuration.run do
53
- navigate :menu do
54
- item :url1, 'url1', :name => 'url1' do
55
- item :suburl1, 'suburl1', :name => 'suburl1'
56
- end
57
- item :url2, 'url2', :name => 'url2' do
58
- item :suburl2, 'suburl2', :name => 'suburl2'
52
+ it 'one multilevel navigation' do
53
+ @configuration.run do
54
+ navigate :menu do
55
+ item :url1, 'url1', :name => 'url1' do
56
+ item :suburl1, 'suburl1', :name => 'suburl1'
57
+ end
58
+ item :url2, 'url2', :name => 'url2' do
59
+ item :suburl2, 'suburl2', :name => 'suburl2'
60
+ end
59
61
  end
60
62
  end
61
- end
62
63
 
63
- result = @view_object.navigation_for :menu, :as => :bootstrap_list
64
- result.should == ["<ul class=\"nav nav-list\">",
65
- "<li>",
66
- "<a href=\"url1\">",
67
- "url1",
68
- "</a>",
69
- "<ul>",
70
- "<li>",
71
- "<a href=\"suburl1\">",
72
- "suburl1",
73
- "</a>",
74
- "</li>",
75
- "</ul>",
76
- "</li>",
77
- "<li>",
78
- "<a href=\"url2\">",
79
- "url2",
80
- "</a>",
81
- "<ul>",
82
- "<li>",
83
- "<a href=\"suburl2\">",
84
- "suburl2",
85
- "</a>",
86
- "</li>",
87
- "</ul>",
88
- "</li>",
89
- "</ul>"].join
90
- end
64
+ result = @view_object.navigation_for :menu, :as => :bootstrap_list
65
+ result.should == ["<ul class=\"nav nav-list\">",
66
+ "<li>",
67
+ "<a href=\"url1\">",
68
+ "url1",
69
+ "</a>",
70
+ "<ul>",
71
+ "<li>",
72
+ "<a href=\"suburl1\">",
73
+ "suburl1",
74
+ "</a>",
75
+ "</li>",
76
+ "</ul>",
77
+ "</li>",
78
+ "<li>",
79
+ "<a href=\"url2\">",
80
+ "url2",
81
+ "</a>",
82
+ "<ul>",
83
+ "<li>",
84
+ "<a href=\"suburl2\">",
85
+ "suburl2",
86
+ "</a>",
87
+ "</li>",
88
+ "</ul>",
89
+ "</li>",
90
+ "</ul>"].join
91
+ end
91
92
 
92
- it 'should render only root level' do
93
- @configuration.run do
94
- navigate :menu do
95
- item :url1, 'url1', :name => 'url1' do
96
- item :suburl1, 'suburl1', :name => 'suburl1'
97
- end
98
- item :url2, 'url2', :name => 'url2' do
99
- item :suburl2, 'suburl2', :name => 'suburl2'
93
+ it 'only root level' do
94
+ @configuration.run do
95
+ navigate :menu do
96
+ item :url1, 'url1', :name => 'url1' do
97
+ item :suburl1, 'suburl1', :name => 'suburl1'
98
+ end
99
+ item :url2, 'url2', :name => 'url2' do
100
+ item :suburl2, 'suburl2', :name => 'suburl2'
101
+ end
100
102
  end
101
103
  end
102
- end
103
104
 
104
- result = @view_object.navigation_for :menu, :level => 0, :as => :bootstrap_list
105
- result.should == ["<ul class=\"nav nav-list\">",
106
- "<li>",
107
- "<a href=\"url1\">",
108
- "url1",
109
- "</a>",
110
- "</li>",
111
- "<li>",
112
- "<a href=\"url2\">",
113
- "url2",
114
- "</a>",
115
- "</li>",
116
- "</ul>"].join
117
- end
105
+ result = @view_object.navigation_for :menu, :level => 0, :as => :bootstrap_list
106
+ result.should == ["<ul class=\"nav nav-list\">",
107
+ "<li>",
108
+ "<a href=\"url1\">",
109
+ "url1",
110
+ "</a>",
111
+ "</li>",
112
+ "<li>",
113
+ "<a href=\"url2\">",
114
+ "url2",
115
+ "</a>",
116
+ "</li>",
117
+ "</ul>"].join
118
+ end
118
119
 
119
- it 'should render second level if some item of first level is active' do
120
- @configuration.run do
121
- navigate :menu do
122
- item :url1, 'url1', :name => 'url1' do
123
- item :suburl1, 'suburl1', :name => 'suburl1'
124
- end
125
- item :url2, 'url2', :name => 'url2' do
126
- item :suburl2, 'suburl2', :name => 'suburl2'
120
+ it 'second level if some item of first level is active' do
121
+ @configuration.run do
122
+ navigate :menu do
123
+ item :url1, 'url1', :name => 'url1' do
124
+ item :suburl1, 'suburl1', :name => 'suburl1'
125
+ end
126
+ item :url2, 'url2', :name => 'url2' do
127
+ item :suburl2, 'suburl2', :name => 'suburl2'
128
+ end
127
129
  end
128
130
  end
129
- end
130
131
 
131
- @view_object.should_receive(:current_page?).and_return(false, true, false, false)
132
+ @view_object.should_receive(:current_page?).and_return(false, true, false, false)
132
133
 
133
- result = @view_object.navigation_for :menu, :level => 1, :as => :bootstrap_list
134
- result.should == ["<ul class=\"nav nav-list active\">",
135
- "<li>",
136
- "<a href=\"suburl1\">",
137
- "suburl1",
138
- "</a>",
139
- "</li>",
140
- "</ul>"].join
141
- end
134
+ result = @view_object.navigation_for :menu, :level => 1, :as => :bootstrap_list
135
+ result.should == ["<ul class=\"nav nav-list active\">",
136
+ "<li>",
137
+ "<a href=\"suburl1\">",
138
+ "suburl1",
139
+ "</a>",
140
+ "</li>",
141
+ "</ul>"].join
142
+ end
142
143
 
143
- it 'should render the exact levels' do
144
- @configuration.run do
145
- navigate :menu do
146
- item :url1, 'url1', :name => 'url1' do
147
- item :suburl1, 'suburl1', :name => 'suburl1' do
148
- item :subsub1, 'subsub1', :name => 'subsub1'
144
+ it 'the exact levels' do
145
+ @configuration.run do
146
+ navigate :menu do
147
+ item :url1, 'url1', :name => 'url1' do
148
+ item :suburl1, 'suburl1', :name => 'suburl1' do
149
+ item :subsub1, 'subsub1', :name => 'subsub1'
150
+ end
149
151
  end
150
- end
151
- item :url2, 'url2', :name => 'url2' do
152
- item :suburl2, 'suburl2', :name => 'suburl2' do
153
- item :subsub2, 'subsub2', :name => 'subsub2'
152
+ item :url2, 'url2', :name => 'url2' do
153
+ item :suburl2, 'suburl2', :name => 'suburl2' do
154
+ item :subsub2, 'subsub2', :name => 'subsub2'
155
+ end
154
156
  end
155
157
  end
156
158
  end
157
- end
158
159
 
159
- result = @view_object.navigation_for :menu, :levels => 0..1, :as => :bootstrap_list
160
- result.should == ["<ul class=\"nav nav-list\">",
161
- "<li>",
162
- "<a href=\"url1\">",
163
- "url1",
164
- "</a>",
165
- "<ul>",
166
- "<li>",
167
- "<a href=\"suburl1\">",
168
- "suburl1",
169
- "</a>",
170
- "</li>",
171
- "</ul>",
172
- "</li>",
173
- "<li>",
174
- "<a href=\"url2\">",
175
- "url2",
176
- "</a>",
177
- "<ul>",
178
- "<li>",
179
- "<a href=\"suburl2\">",
180
- "suburl2",
181
- "</a>",
182
- "</li>",
183
- "</ul>",
184
- "</li>",
185
- "</ul>"].join
186
- end
160
+ result = @view_object.navigation_for :menu, :levels => 0..1, :as => :bootstrap_list
161
+ result.should == ["<ul class=\"nav nav-list\">",
162
+ "<li>",
163
+ "<a href=\"url1\">",
164
+ "url1",
165
+ "</a>",
166
+ "<ul>",
167
+ "<li>",
168
+ "<a href=\"suburl1\">",
169
+ "suburl1",
170
+ "</a>",
171
+ "</li>",
172
+ "</ul>",
173
+ "</li>",
174
+ "<li>",
175
+ "<a href=\"url2\">",
176
+ "url2",
177
+ "</a>",
178
+ "<ul>",
179
+ "<li>",
180
+ "<a href=\"suburl2\">",
181
+ "suburl2",
182
+ "</a>",
183
+ "</li>",
184
+ "</ul>",
185
+ "</li>",
186
+ "</ul>"].join
187
+ end
187
188
 
188
- it 'should render navigation except some item' do
189
- @configuration.run do
190
- navigate :menu do
191
- item :url1, 'url1', :name => 'url1' do
192
- item :suburl1, 'suburl1', :name => 'suburl1'
193
- end
194
- item :url2, 'url2', :name => 'url2' do
195
- item :suburl2, 'suburl2', :name => 'suburl2'
189
+ it 'navigation except some item' do
190
+ @configuration.run do
191
+ navigate :menu do
192
+ item :url1, 'url1', :name => 'url1' do
193
+ item :suburl1, 'suburl1', :name => 'suburl1'
194
+ end
195
+ item :url2, 'url2', :name => 'url2' do
196
+ item :suburl2, 'suburl2', :name => 'suburl2'
197
+ end
196
198
  end
197
199
  end
200
+
201
+ result = @view_object.navigation_for :menu, :except_for => [:url1], :as => :bootstrap_list
202
+ result.should == ["<ul class=\"nav nav-list\">",
203
+ "<li>",
204
+ "<a href=\"url2\">",
205
+ "url2",
206
+ "</a>",
207
+ "<ul>",
208
+ "<li>",
209
+ "<a href=\"suburl2\">",
210
+ "suburl2",
211
+ "</a>",
212
+ "</li>",
213
+ "</ul>",
214
+ "</li>",
215
+ "</ul>"].join
198
216
  end
199
217
 
200
- result = @view_object.navigation_for :menu, :except_for => [:url1], :as => :bootstrap_list
201
- result.should == ["<ul class=\"nav nav-list\">",
202
- "<li>",
203
- "<a href=\"url2\">",
204
- "url2",
205
- "</a>",
218
+ it 'navigation except some items' do
219
+ @configuration.run do
220
+ navigate :menu do
221
+ item :url1, 'url1', :name => 'url1' do
222
+ item :suburl1, 'suburl1', :name => 'suburl1'
223
+ end
224
+ item :url2, 'url2', :name => 'url2' do
225
+ item :suburl2, 'suburl2', :name => 'suburl2'
226
+ end
227
+ end
228
+ end
229
+
230
+ result = @view_object.navigation_for :menu, :except_for => [:suburl1,:url2], :as => :bootstrap_list
231
+ result.should == ["<ul class=\"nav nav-list\">",
232
+ "<li>",
233
+ "<a href=\"url1\">",
234
+ "url1",
235
+ "</a>",
206
236
  "<ul>",
207
- "<li>",
208
- "<a href=\"suburl2\">",
209
- "suburl2",
210
- "</a>",
211
- "</li>",
212
237
  "</ul>",
213
- "</li>",
214
- "</ul>"].join
215
- end
238
+ "</li>",
239
+ "</ul>"].join
240
+ end
216
241
 
217
- it 'should render navigation except some items' do
218
- @configuration.run do
219
- navigate :menu do
220
- item :url1, 'url1', :name => 'url1' do
221
- item :suburl1, 'suburl1', :name => 'suburl1'
222
- end
223
- item :url2, 'url2', :name => 'url2' do
224
- item :suburl2, 'suburl2', :name => 'suburl2'
242
+ it 'divider' do
243
+ @configuration.run do
244
+ navigate :menu do
245
+ divider
225
246
  end
226
247
  end
227
- end
228
248
 
229
- result = @view_object.navigation_for :menu, :except_for => [:suburl1,:url2], :as => :bootstrap_list
230
- result.should == ["<ul class=\"nav nav-list\">",
231
- "<li>",
232
- "<a href=\"url1\">",
233
- "url1",
234
- "</a>",
235
- "<ul>",
236
- "</ul>",
237
- "</li>",
238
- "</ul>"].join
239
- end
240
-
241
- it 'should render divider' do
242
- @configuration.run do
243
- navigate :menu do
244
- divider
245
- end
249
+ result = @view_object.navigation_for :menu, :as => :bootstrap_list
250
+ result.should == ["<ul class=\"nav nav-list\">",
251
+ "<li class=\"divider\">",
252
+ "</li>",
253
+ "</ul>"].join
246
254
  end
247
255
 
248
- result = @view_object.navigation_for :menu, :as => :bootstrap_list
249
- result.should == ["<ul class=\"nav nav-list\">",
250
- "<li class=\"divider\">",
251
- "</li>",
252
- "</ul>"].join
253
- end
254
-
255
- it 'should render header' do
256
- @configuration.run do
257
- navigate :menu do
258
- header :some_header, :name => 'header_name'
256
+ it 'header' do
257
+ @configuration.run do
258
+ navigate :menu do
259
+ header :some_header, :name => 'header_name'
260
+ end
259
261
  end
260
- end
261
262
 
262
- result = @view_object.navigation_for :menu, :as => :bootstrap_list
263
- result.should == ["<ul class=\"nav nav-list\">",
264
- "<li class=\"nav-header\">",
265
- 'header_name',
266
- "</li>",
267
- "</ul>"].join
268
- end
263
+ result = @view_object.navigation_for :menu, :as => :bootstrap_list
264
+ result.should == ["<ul class=\"nav nav-list\">",
265
+ "<li class=\"nav-header\">",
266
+ 'header_name',
267
+ "</li>",
268
+ "</ul>"].join
269
+ end
269
270
 
270
- it 'shoul render item with icon' do
271
- @configuration.run do
272
- navigate :menu do
273
- item :some_item, 'some_url', :name => 'item_name', :ico => 'user'
271
+ it 'item with icon' do
272
+ @configuration.run do
273
+ navigate :menu do
274
+ item :some_item, 'some_url', :name => 'item_name', :ico => 'user'
275
+ end
274
276
  end
275
- end
276
277
 
277
- result = @view_object.navigation_for :menu, :as => :bootstrap_list
278
- result.should == ["<ul class=\"nav nav-list\">",
279
- "<li>",
280
- "<a href=\"some_url\">",
281
- "<i class=\"icon-user\">",
282
- "</i>",
283
- "item_name",
284
- "</a>",
285
- "</li>",
286
- "</ul>"].join
287
- end
278
+ result = @view_object.navigation_for :menu, :as => :bootstrap_list
279
+ result.should == ["<ul class=\"nav nav-list\">",
280
+ "<li>",
281
+ "<a href=\"some_url\">",
282
+ "<i class=\"icon-user\">",
283
+ "</i>",
284
+ "item_name",
285
+ "</a>",
286
+ "</li>",
287
+ "</ul>"].join
288
+ end
288
289
 
289
- it 'should render node with icon' do
290
- @configuration.run do
291
- navigate :menu do
292
- item :node, 'node_url', :name => 'some_name', :ico => 'user' do
293
- item :some_item, 'some_url', :name => 'item_name'
290
+ it 'node with icon' do
291
+ @configuration.run do
292
+ navigate :menu do
293
+ item :node, 'node_url', :name => 'some_name', :ico => 'user' do
294
+ item :some_item, 'some_url', :name => 'item_name'
295
+ end
294
296
  end
295
297
  end
296
- end
297
298
 
298
- result = @view_object.navigation_for :menu, :as => :bootstrap_list
299
- result.should == ["<ul class=\"nav nav-list\">",
300
- "<li>",
301
- "<a href=\"node_url\">",
302
- "<i class=\"icon-user\"></i>",
303
- "some_name",
304
- "</a>",
305
- "<ul>",
306
- "<li>",
307
- "<a href=\"some_url\">",
308
- "item_name",
309
- "</a>",
310
- "</li>",
311
- "</ul>",
312
- "</li>",
313
- "</ul>"].join
299
+ result = @view_object.navigation_for :menu, :as => :bootstrap_list
300
+ result.should == ["<ul class=\"nav nav-list\">",
301
+ "<li>",
302
+ "<a href=\"node_url\">",
303
+ "<i class=\"icon-user\"></i>",
304
+ "some_name",
305
+ "</a>",
306
+ "<ul>",
307
+ "<li>",
308
+ "<a href=\"some_url\">",
309
+ "item_name",
310
+ "</a>",
311
+ "</li>",
312
+ "</ul>",
313
+ "</li>",
314
+ "</ul>"].join
315
+ end
314
316
  end
315
-
316
317
  end