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 CHANGED
@@ -19,3 +19,4 @@ rdoc
19
19
  pkg
20
20
 
21
21
  ## PROJECT::SPECIFIC
22
+ .rvmrc
@@ -1,7 +1,8 @@
1
1
  module MenuBuilder
2
2
  module ViewHelpers
3
3
  def menu(options={}, &block)
4
- content_tag :ul, Menu.new(self, &block).render, options
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 = context
28
- @menu_items = context.instance_variable_get('@menu_items')
29
- @actual_items = []
30
- @block = block
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 << "current" if included_in_current_items? item
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
 
@@ -1,3 +1,3 @@
1
1
  module MenuBuilder
2
- VERSION = "0.4.2"
2
+ VERSION = "0.4.3"
3
3
  end
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
- hash: 11
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
- date: 2011-06-06 00:00:00 Z
19
- dependencies:
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
- prerelease: false
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
- hash: 7
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
- requirement: &id002 !ruby/object:Gem::Requirement
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
- hash: 7
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
- version_requirements: *id002
50
- description: helper and controller macros to define current menu item and also create the menu in view.
51
- email:
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
- hash: 3
90
- segments:
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
- hash: 3
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.7.2
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