menu_builder 0.4.2 → 0.4.3
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/.gitignore +1 -0
- data/lib/menu_builder/helper.rb +9 -7
- data/lib/menu_builder/version.rb +1 -1
- data/test/helper_test.rb +26 -0
- metadata +39 -64
data/.gitignore
CHANGED
data/lib/menu_builder/helper.rb
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
module MenuBuilder
|
2
2
|
module ViewHelpers
|
3
3
|
def menu(options={}, &block)
|
4
|
-
|
4
|
+
current_class = options.delete :current_class
|
5
|
+
content_tag :ul, Menu.new(self, current_class, &block).render, options
|
5
6
|
end
|
6
7
|
|
7
8
|
private
|
@@ -23,11 +24,12 @@ module MenuBuilder
|
|
23
24
|
end
|
24
25
|
|
25
26
|
class Menu
|
26
|
-
def initialize(context, &block)
|
27
|
-
@context
|
28
|
-
@
|
29
|
-
@
|
30
|
-
@
|
27
|
+
def initialize(context, current_class="current", &block)
|
28
|
+
@context = context
|
29
|
+
@current_class = current_class || "current"
|
30
|
+
@menu_items = context.instance_variable_get('@menu_items')
|
31
|
+
@actual_items = []
|
32
|
+
@block = block
|
31
33
|
end
|
32
34
|
|
33
35
|
def method_missing item, *args, &block
|
@@ -46,7 +48,7 @@ module MenuBuilder
|
|
46
48
|
|
47
49
|
def html_options_for item
|
48
50
|
css_classes = []
|
49
|
-
css_classes << "
|
51
|
+
css_classes << "#{@current_class}" if included_in_current_items? item
|
50
52
|
css_classes << "first" if first? item
|
51
53
|
css_classes << "last" if last? item
|
52
54
|
|
data/lib/menu_builder/version.rb
CHANGED
data/test/helper_test.rb
CHANGED
@@ -40,6 +40,17 @@ class HelperTest < ActionView::TestCase
|
|
40
40
|
|
41
41
|
assert_select "li.current", 1
|
42
42
|
end
|
43
|
+
|
44
|
+
test "customize the current item class" do
|
45
|
+
@menu_items = [:home]
|
46
|
+
concat(menu({:current_class => "active"}) { |m|
|
47
|
+
concat m.home "Home", "/"
|
48
|
+
concat m.contact "Store", "/store"
|
49
|
+
})
|
50
|
+
|
51
|
+
assert_select "li.current", 0
|
52
|
+
assert_select "li.active", 1
|
53
|
+
end
|
43
54
|
|
44
55
|
test "accept more than one menu item" do
|
45
56
|
@menu_items = [:settings, :notifications]
|
@@ -52,7 +63,21 @@ class HelperTest < ActionView::TestCase
|
|
52
63
|
|
53
64
|
assert_select "li.current", 2
|
54
65
|
end
|
66
|
+
|
67
|
+
test "accept more than one menu item for a custom current item class" do
|
68
|
+
@menu_items = [:settings, :notifications]
|
55
69
|
|
70
|
+
concat(menu({:current_class => "active"}) { |m|
|
71
|
+
concat m.home "Home", "/"
|
72
|
+
concat m.notifications "Notifications", "/notifications"
|
73
|
+
concat m.settings "Settings", "/settings"
|
74
|
+
})
|
75
|
+
|
76
|
+
assert_select "li.current", 0
|
77
|
+
assert_select "li.active", 2
|
78
|
+
end
|
79
|
+
|
80
|
+
|
56
81
|
test "accept more than one menu" do
|
57
82
|
@menu_items = [:settings, :notifications]
|
58
83
|
|
@@ -95,4 +120,5 @@ class HelperTest < ActionView::TestCase
|
|
95
120
|
|
96
121
|
assert_select "ul > li > a > img"
|
97
122
|
end
|
123
|
+
|
98
124
|
end
|
metadata
CHANGED
@@ -1,62 +1,46 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: menu_builder
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.4.3
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 4
|
9
|
-
- 2
|
10
|
-
version: 0.4.2
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Daniel Lopes
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2012-04-15 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
21
15
|
name: actionpack
|
22
|
-
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: &70102821764200 !ruby/object:Gem::Requirement
|
24
17
|
none: false
|
25
|
-
requirements:
|
26
|
-
- -
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
|
29
|
-
segments:
|
30
|
-
- 3
|
31
|
-
- 0
|
32
|
-
version: "3.0"
|
18
|
+
requirements:
|
19
|
+
- - ! '>'
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '3.0'
|
33
22
|
type: :runtime
|
34
|
-
version_requirements: *id001
|
35
|
-
- !ruby/object:Gem::Dependency
|
36
|
-
name: activemodel
|
37
23
|
prerelease: false
|
38
|
-
|
24
|
+
version_requirements: *70102821764200
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: activemodel
|
27
|
+
requirement: &70102821763620 !ruby/object:Gem::Requirement
|
39
28
|
none: false
|
40
|
-
requirements:
|
41
|
-
- -
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
|
44
|
-
segments:
|
45
|
-
- 3
|
46
|
-
- 0
|
47
|
-
version: "3.0"
|
29
|
+
requirements:
|
30
|
+
- - ! '>'
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '3.0'
|
48
33
|
type: :runtime
|
49
|
-
|
50
|
-
|
51
|
-
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *70102821763620
|
36
|
+
description: helper and controller macros to define current menu item and also create
|
37
|
+
the menu in view.
|
38
|
+
email:
|
52
39
|
- danielvlopes@gmail.com
|
53
40
|
executables: []
|
54
|
-
|
55
41
|
extensions: []
|
56
|
-
|
57
42
|
extra_rdoc_files: []
|
58
|
-
|
59
|
-
files:
|
43
|
+
files:
|
60
44
|
- .document
|
61
45
|
- .gitignore
|
62
46
|
- Gemfile
|
@@ -75,38 +59,29 @@ files:
|
|
75
59
|
- test/test_helper.rb
|
76
60
|
homepage: http://objetiva.co/
|
77
61
|
licenses: []
|
78
|
-
|
79
62
|
post_install_message:
|
80
63
|
rdoc_options: []
|
81
|
-
|
82
|
-
require_paths:
|
64
|
+
require_paths:
|
83
65
|
- lib
|
84
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
66
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
85
67
|
none: false
|
86
|
-
requirements:
|
87
|
-
- -
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
|
90
|
-
|
91
|
-
- 0
|
92
|
-
version: "0"
|
93
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
68
|
+
requirements:
|
69
|
+
- - ! '>='
|
70
|
+
- !ruby/object:Gem::Version
|
71
|
+
version: '0'
|
72
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
94
73
|
none: false
|
95
|
-
requirements:
|
96
|
-
- -
|
97
|
-
- !ruby/object:Gem::Version
|
98
|
-
|
99
|
-
segments:
|
100
|
-
- 0
|
101
|
-
version: "0"
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
102
78
|
requirements: []
|
103
|
-
|
104
79
|
rubyforge_project: menu_builder
|
105
|
-
rubygems_version: 1.
|
80
|
+
rubygems_version: 1.8.17
|
106
81
|
signing_key:
|
107
82
|
specification_version: 3
|
108
83
|
summary: minimalist solution for menus and tabs in Rails
|
109
|
-
test_files:
|
84
|
+
test_files:
|
110
85
|
- test/controller_test.rb
|
111
86
|
- test/helper_test.rb
|
112
87
|
- test/support/controllers.rb
|