menu_builder 0.4.2 → 0.4.3

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