xebec 2.6.0 → 2.6.1
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/developer_tasks/doc.rake +3 -3
- data/developer_tasks/test.rake +1 -1
- data/doc/example_app/app/controllers/application_controller.rb +4 -4
- data/doc/example_app/app/controllers/pages_controller.rb +1 -1
- data/doc/example_app/app/controllers/projects_controller.rb +9 -9
- data/doc/example_app/app/views/layouts/_site_nav_bar.html.erb +1 -1
- data/generators/xebec_stylesheet/templates/xebec.css.erb +3 -3
- data/lib/xebec.rb +6 -6
- data/lib/xebec/controller_support.rb +11 -11
- data/lib/xebec/has_nav_bars.rb +7 -7
- data/lib/xebec/html5.rb +8 -8
- data/lib/xebec/nav_bar.rb +10 -10
- data/lib/xebec/nav_bar_helper.rb +11 -11
- data/lib/xebec/nav_bar_renderer.rb +22 -22
- data/lib/xebec/nav_item.rb +5 -5
- data/lib/xebec/stylesheet_generator.rb +8 -8
- data/lib/xebec/title_enhanced_nav_bar_renderer.rb +6 -6
- data/lib/xebec/web_app_theme_renderer.rb +5 -5
- data/test/controller_support_test.rb +11 -12
- data/test/html5_test.rb +14 -14
- data/test/nav_bar_helper_test.rb +17 -17
- data/test/nav_bar_renderer_test.rb +33 -22
- data/test/nav_bar_test.rb +10 -10
- data/test/test_helper.rb +14 -16
- data/test/title_enhanced_nav_bar_renderer_test.rb +10 -10
- data/test/web_app_theme_renderer_test.rb +5 -5
- data/xebec.gemspec +5 -7
- metadata +13 -11
- data/VERSION +0 -1
- data/developer_tasks/gem.rake +0 -34
@@ -2,7 +2,7 @@ require File.join(File.dirname(__FILE__), 'test_helper')
|
|
2
2
|
require 'xebec'
|
3
3
|
|
4
4
|
class NavBarRendererTest < Test::Unit::TestCase
|
5
|
-
|
5
|
+
|
6
6
|
context 'creating a NavBar renderer' do
|
7
7
|
should 'require a NavBar' do
|
8
8
|
assert_raises(ArgumentError) do
|
@@ -15,62 +15,62 @@ class NavBarRendererTest < Test::Unit::TestCase
|
|
15
15
|
end
|
16
16
|
end
|
17
17
|
end
|
18
|
-
|
18
|
+
|
19
19
|
context 'a NavBar renderer' do
|
20
|
-
|
20
|
+
|
21
21
|
setup do
|
22
22
|
clear_translations!
|
23
23
|
@bar = Xebec::NavBar.new('elephants')
|
24
24
|
@helper = new_nav_bar_helper
|
25
25
|
@renderer = Xebec::NavBarRenderer.new(@bar, @helper)
|
26
26
|
end
|
27
|
-
|
27
|
+
|
28
28
|
should 'respond to :name' do
|
29
29
|
assert @renderer.respond_to?(:name)
|
30
30
|
end
|
31
|
-
|
31
|
+
|
32
32
|
should "return the NavBar's name when sent :name" do
|
33
33
|
assert_equal 'elephants', @renderer.name
|
34
34
|
end
|
35
|
-
|
35
|
+
|
36
36
|
should 'support additional HTML properties' do
|
37
37
|
@bar.html_attributes.merge!(:id => 'salads-nav')
|
38
38
|
assert_equal({:id => 'salads-nav'}, @renderer.html_attributes)
|
39
39
|
assert_select_from @renderer.to_s, '#salads-nav'
|
40
40
|
end
|
41
|
-
|
41
|
+
|
42
42
|
should 'not respond to a method that the underlying NavBar does not' do
|
43
43
|
assert !@renderer.respond_to?(:cromulize)
|
44
44
|
end
|
45
|
-
|
45
|
+
|
46
46
|
context 'for a browser that supports HTML5' do
|
47
47
|
setup { @renderer.stubs(:user_agent_supports_html5?).returns(true) }
|
48
|
-
|
48
|
+
|
49
49
|
should "render a navigation bar with the bar's name" do
|
50
50
|
assert_select_from @renderer.to_s, "nav.elephants"
|
51
51
|
end
|
52
|
-
|
52
|
+
|
53
53
|
context 'with an empty NavBar' do
|
54
54
|
should 'render an empty navigation bar' do
|
55
55
|
assert_select_from @renderer.to_s, 'nav', /$^/
|
56
56
|
end
|
57
57
|
end
|
58
58
|
end
|
59
|
-
|
59
|
+
|
60
60
|
context 'for a browser that does not support HTML5' do
|
61
61
|
setup { @helper.stubs(:user_agent_supports_html5?).returns(false) }
|
62
|
-
|
62
|
+
|
63
63
|
should "render a div.navbar the bar's name" do
|
64
64
|
assert_select_from @renderer.to_s, "div.navbar.elephants"
|
65
65
|
end
|
66
|
-
|
66
|
+
|
67
67
|
context 'with an empty NavBar' do
|
68
68
|
should 'render an empty navigation bar' do
|
69
69
|
assert_select_from @renderer.to_s, 'div.navbar', /$^/
|
70
70
|
end
|
71
71
|
end
|
72
72
|
end
|
73
|
-
|
73
|
+
|
74
74
|
context 'with a NavBar that has a navigation item declared as a name' do
|
75
75
|
setup do
|
76
76
|
@helper.stubs(:foo_path).returns("/foo")
|
@@ -84,7 +84,7 @@ class NavBarRendererTest < Test::Unit::TestCase
|
|
84
84
|
end
|
85
85
|
end
|
86
86
|
end
|
87
|
-
|
87
|
+
|
88
88
|
context 'with a NavBar that has a navigation item set as current' do
|
89
89
|
setup do
|
90
90
|
@bar.nav_item :foo, '/foo'
|
@@ -110,7 +110,7 @@ class NavBarRendererTest < Test::Unit::TestCase
|
|
110
110
|
end
|
111
111
|
end
|
112
112
|
end
|
113
|
-
|
113
|
+
|
114
114
|
context 'with a NavBar that has a NavItem with a String name' do
|
115
115
|
setup do
|
116
116
|
@bar.nav_item 'foo', '/foo'
|
@@ -127,7 +127,7 @@ class NavBarRendererTest < Test::Unit::TestCase
|
|
127
127
|
assert_equal original_text, @bar.items.first.name.dup
|
128
128
|
end
|
129
129
|
end
|
130
|
-
|
130
|
+
|
131
131
|
context 'with a NavBar that has a navigation item not set as current' do
|
132
132
|
setup do
|
133
133
|
@bar.nav_item :foo, '/foo'
|
@@ -143,7 +143,7 @@ class NavBarRendererTest < Test::Unit::TestCase
|
|
143
143
|
assert(!(/class\s*=\s*["']\s*["']/ === @renderer.to_s))
|
144
144
|
end
|
145
145
|
end
|
146
|
-
|
146
|
+
|
147
147
|
context 'with a NavBar that has a navigation item declared as a name and URL' do
|
148
148
|
setup do
|
149
149
|
@bar.nav_item :foo, 'http://foo.com'
|
@@ -156,7 +156,7 @@ class NavBarRendererTest < Test::Unit::TestCase
|
|
156
156
|
end
|
157
157
|
end
|
158
158
|
end
|
159
|
-
|
159
|
+
|
160
160
|
context 'with a NavBar that has a navigation item that links to the current page' do
|
161
161
|
setup do
|
162
162
|
@helper.stubs(:current_page?).with('/').returns(true)
|
@@ -183,7 +183,7 @@ class NavBarRendererTest < Test::Unit::TestCase
|
|
183
183
|
end
|
184
184
|
end
|
185
185
|
end
|
186
|
-
|
186
|
+
|
187
187
|
context "with a NavBar that has a navigation item with an i18n'd title" do
|
188
188
|
setup do
|
189
189
|
define_translation 'navbar.elephants.foo', 'My Foos'
|
@@ -198,7 +198,18 @@ class NavBarRendererTest < Test::Unit::TestCase
|
|
198
198
|
end
|
199
199
|
end
|
200
200
|
end
|
201
|
-
|
201
|
+
|
202
|
+
context 'with a NavBar that has several nav items' do
|
203
|
+
setup do
|
204
|
+
@bar.nav_item :foo, '/foo'
|
205
|
+
@bar.nav_item :bar, '/bar'
|
206
|
+
end
|
207
|
+
|
208
|
+
should 'return an HTML-safe navigation bar' do
|
209
|
+
assert @renderer.to_s.html_safe?
|
210
|
+
end
|
211
|
+
end
|
212
|
+
|
202
213
|
end
|
203
|
-
|
214
|
+
|
204
215
|
end
|
data/test/nav_bar_test.rb
CHANGED
@@ -2,29 +2,29 @@ require File.join(File.dirname(__FILE__), 'test_helper')
|
|
2
2
|
require 'xebec'
|
3
3
|
|
4
4
|
class NavBarTest < Test::Unit::TestCase
|
5
|
-
|
5
|
+
|
6
6
|
context 'a NavBar' do
|
7
|
-
|
7
|
+
|
8
8
|
setup do
|
9
9
|
@bar = Xebec::NavBar.new
|
10
10
|
end
|
11
|
-
|
11
|
+
|
12
12
|
should 'use :default as its name by default' do
|
13
13
|
assert_equal :default, @bar.name
|
14
14
|
end
|
15
|
-
|
15
|
+
|
16
16
|
should 'use a specified name' do
|
17
17
|
assert_equal 'fazbot', Xebec::NavBar.new('fazbot').name
|
18
18
|
end
|
19
|
-
|
19
|
+
|
20
20
|
should 'be empty by default' do
|
21
21
|
assert @bar.empty?
|
22
22
|
end
|
23
|
-
|
23
|
+
|
24
24
|
should 'not have any item specified as current by default' do
|
25
25
|
assert @bar.current.blank?
|
26
26
|
end
|
27
|
-
|
27
|
+
|
28
28
|
context 'with some items' do
|
29
29
|
setup do
|
30
30
|
@bar.nav_item :foo
|
@@ -34,7 +34,7 @@ class NavBarTest < Test::Unit::TestCase
|
|
34
34
|
assert !@bar.empty?
|
35
35
|
end
|
36
36
|
end
|
37
|
-
|
37
|
+
|
38
38
|
should 'not allow a nameless item to be added' do
|
39
39
|
assert_raises ArgumentError do
|
40
40
|
@bar.nav_item nil
|
@@ -43,7 +43,7 @@ class NavBarTest < Test::Unit::TestCase
|
|
43
43
|
@bar.nav_item ''
|
44
44
|
end
|
45
45
|
end
|
46
|
-
|
46
|
+
|
47
47
|
end
|
48
|
-
|
48
|
+
|
49
49
|
end
|
data/test/test_helper.rb
CHANGED
@@ -1,19 +1,17 @@
|
|
1
|
+
ENV["RAILS_ENV"] = "test"
|
2
|
+
require 'rubygems'
|
3
|
+
require 'bundler'
|
4
|
+
Bundler.setup
|
5
|
+
|
1
6
|
require 'test/unit'
|
2
7
|
require 'test/unit/testcase'
|
3
|
-
require 'rubygems'
|
4
8
|
require 'shoulda'
|
5
9
|
require 'mocha'
|
6
|
-
require '
|
7
|
-
require '
|
10
|
+
require 'active_support'
|
11
|
+
require 'action_pack'
|
8
12
|
require 'action_view'
|
9
13
|
require 'action_controller'
|
10
|
-
require '
|
11
|
-
|
12
|
-
begin
|
13
|
-
require 'redgreen/unicode'
|
14
|
-
rescue MissingSourceFile
|
15
|
-
require 'redgreen'
|
16
|
-
end
|
14
|
+
require 'action_dispatch'
|
17
15
|
|
18
16
|
[['..', 'lib'], ['lib']].each do |lib_dir|
|
19
17
|
lib_path = File.expand_path(File.join(File.dirname(__FILE__), *lib_dir))
|
@@ -23,21 +21,21 @@ end
|
|
23
21
|
require 'xebec'
|
24
22
|
|
25
23
|
Test::Unit::TestCase.class_eval do
|
26
|
-
include
|
27
|
-
|
24
|
+
include ActionDispatch::Assertions::SelectorAssertions
|
25
|
+
|
28
26
|
def assert_select_from(text, *args, &block)
|
29
27
|
@selected = HTML::Document.new(text).root.children
|
30
28
|
assert_select(*args, &block)
|
31
29
|
end
|
32
|
-
|
30
|
+
|
33
31
|
def new_nav_bar_helper
|
34
32
|
ActionView::Base.new.tap do |helper|
|
35
33
|
helper.extend Xebec::NavBarHelper
|
36
|
-
helper.request =
|
34
|
+
helper.request = ActionDispatch::TestRequest.new
|
37
35
|
helper.stubs(:current_page?).returns(false)
|
38
36
|
end
|
39
37
|
end
|
40
|
-
|
38
|
+
|
41
39
|
def clear_translations!
|
42
40
|
I18n.reload!
|
43
41
|
end
|
@@ -46,6 +44,6 @@ Test::Unit::TestCase.class_eval do
|
|
46
44
|
hash = key.to_s.split('.').reverse.inject(value) do |value, key_part|
|
47
45
|
{ key_part.to_sym => value }
|
48
46
|
end
|
49
|
-
I18n.backend.send :
|
47
|
+
I18n.backend.send :store_translations, I18n.locale, hash
|
50
48
|
end
|
51
49
|
end
|
@@ -2,7 +2,7 @@ require File.join(File.dirname(__FILE__), 'test_helper')
|
|
2
2
|
require 'xebec'
|
3
3
|
|
4
4
|
class TitleEnhancedNavBarRendererTest < Test::Unit::TestCase
|
5
|
-
|
5
|
+
|
6
6
|
def setup
|
7
7
|
@old_renderer_class = Xebec::renderer_class
|
8
8
|
load 'xebec/title_enhanced_nav_bar_renderer.rb'
|
@@ -12,17 +12,17 @@ class TitleEnhancedNavBarRendererTest < Test::Unit::TestCase
|
|
12
12
|
@renderer = Xebec::renderer_class.new(@bar, @helper)
|
13
13
|
@bar.nav_item :zn, '/elements/zn'
|
14
14
|
end
|
15
|
-
|
15
|
+
|
16
16
|
def teardown
|
17
17
|
Xebec::renderer_class = @old_renderer_class
|
18
18
|
end
|
19
|
-
|
19
|
+
|
20
20
|
context 'using the title-enhanced renderer' do
|
21
|
-
|
21
|
+
|
22
22
|
should 'replace the default renderer class automatically' do
|
23
23
|
assert_equal Xebec::TitleEnhancedNavBarRenderer, Xebec::renderer_class
|
24
24
|
end
|
25
|
-
|
25
|
+
|
26
26
|
context 'with neither text nor a title translation specified' do
|
27
27
|
should "use the nav item's name titleized for the link text" do
|
28
28
|
assert_select_from @renderer.to_s, 'ul li.zn' do
|
@@ -33,7 +33,7 @@ class TitleEnhancedNavBarRendererTest < Test::Unit::TestCase
|
|
33
33
|
assert_select_from @renderer.to_s, 'ul li.zn[title="Zn"]'
|
34
34
|
end
|
35
35
|
end
|
36
|
-
|
36
|
+
|
37
37
|
context 'with a text but not a title translation specified' do
|
38
38
|
setup do
|
39
39
|
define_translation 'navbar.elements.zn.text', 'Zinc'
|
@@ -48,7 +48,7 @@ class TitleEnhancedNavBarRendererTest < Test::Unit::TestCase
|
|
48
48
|
assert_select_from @renderer.to_s, 'ul li.zn[title="Zinc"]'
|
49
49
|
end
|
50
50
|
end
|
51
|
-
|
51
|
+
|
52
52
|
context 'with a title but no text translation specified' do
|
53
53
|
setup do
|
54
54
|
define_translation 'navbar.elements.zn.title', 'Zinc'
|
@@ -63,7 +63,7 @@ class TitleEnhancedNavBarRendererTest < Test::Unit::TestCase
|
|
63
63
|
assert_select_from @renderer.to_s, 'ul li.zn[title="Zinc"]'
|
64
64
|
end
|
65
65
|
end
|
66
|
-
|
66
|
+
|
67
67
|
context 'with both a title and a text translation specified' do
|
68
68
|
setup do
|
69
69
|
define_translation 'navbar.elements.zn.text', 'Zinc'
|
@@ -79,7 +79,7 @@ class TitleEnhancedNavBarRendererTest < Test::Unit::TestCase
|
|
79
79
|
assert_select_from @renderer.to_s, 'ul li.zn[title="30: Zinc"]'
|
80
80
|
end
|
81
81
|
end
|
82
|
-
|
82
|
+
|
83
83
|
end
|
84
|
-
|
84
|
+
|
85
85
|
end
|
@@ -2,7 +2,7 @@ require File.join(File.dirname(__FILE__), 'test_helper')
|
|
2
2
|
require 'xebec'
|
3
3
|
|
4
4
|
class WebAppThemeRendererTest < Test::Unit::TestCase
|
5
|
-
|
5
|
+
|
6
6
|
def setup
|
7
7
|
@old_renderer_class = Xebec::renderer_class
|
8
8
|
load 'xebec/web_app_theme_renderer.rb'
|
@@ -11,19 +11,19 @@ class WebAppThemeRendererTest < Test::Unit::TestCase
|
|
11
11
|
@renderer = Xebec::renderer_class.new(@bar, @helper)
|
12
12
|
@bar.nav_item :baz, '/baz'
|
13
13
|
end
|
14
|
-
|
14
|
+
|
15
15
|
def teardown
|
16
16
|
Xebec::renderer_class = @old_renderer_class
|
17
17
|
end
|
18
|
-
|
18
|
+
|
19
19
|
context 'using the Web-App-Theme support' do
|
20
20
|
should 'replace the default renderer class automatically' do
|
21
21
|
assert_equal Xebec::WebAppThemeRenderer, Xebec::renderer_class
|
22
22
|
end
|
23
|
-
|
23
|
+
|
24
24
|
should 'render navigation <ul>s with wat-cf' do
|
25
25
|
assert_select_from @renderer.to_s, 'ul.wat-cf'
|
26
26
|
end
|
27
27
|
end
|
28
|
-
|
28
|
+
|
29
29
|
end
|
data/xebec.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{xebec}
|
8
|
-
s.version = "2.6.
|
8
|
+
s.version = "2.6.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["James A. Rosen"]
|
12
|
-
s.date = %q{
|
12
|
+
s.date = %q{2011-01-16}
|
13
13
|
s.description = %q{Helpers for generating navigation bars}
|
14
14
|
s.email = %q{james.a.rosen@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -19,9 +19,7 @@ Gem::Specification.new do |s|
|
|
19
19
|
".gitignore",
|
20
20
|
"README.md",
|
21
21
|
"Rakefile",
|
22
|
-
"VERSION",
|
23
22
|
"developer_tasks/doc.rake",
|
24
|
-
"developer_tasks/gem.rake",
|
25
23
|
"developer_tasks/test.rake",
|
26
24
|
"doc/example_app/Gemfile",
|
27
25
|
"doc/example_app/README.md",
|
@@ -92,16 +90,16 @@ Gem::Specification.new do |s|
|
|
92
90
|
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
93
91
|
s.add_development_dependency(%q<shoulda>, ["~> 2.10.3"])
|
94
92
|
s.add_development_dependency(%q<mocha>, ["~> 0.9.8"])
|
95
|
-
s.add_development_dependency(%q<
|
93
|
+
s.add_development_dependency(%q<rails>, ["~> 3.0"])
|
96
94
|
else
|
97
95
|
s.add_dependency(%q<shoulda>, ["~> 2.10.3"])
|
98
96
|
s.add_dependency(%q<mocha>, ["~> 0.9.8"])
|
99
|
-
s.add_dependency(%q<
|
97
|
+
s.add_dependency(%q<rails>, ["~> 3.0"])
|
100
98
|
end
|
101
99
|
else
|
102
100
|
s.add_dependency(%q<shoulda>, ["~> 2.10.3"])
|
103
101
|
s.add_dependency(%q<mocha>, ["~> 0.9.8"])
|
104
|
-
s.add_dependency(%q<
|
102
|
+
s.add_dependency(%q<rails>, ["~> 3.0"])
|
105
103
|
end
|
106
104
|
end
|
107
105
|
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 2
|
7
7
|
- 6
|
8
|
-
-
|
9
|
-
version: 2.6.
|
8
|
+
- 1
|
9
|
+
version: 2.6.1
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- James A. Rosen
|
@@ -14,13 +14,14 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date:
|
17
|
+
date: 2011-01-16 00:00:00 -08:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: shoulda
|
22
22
|
prerelease: false
|
23
23
|
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
none: false
|
24
25
|
requirements:
|
25
26
|
- - ~>
|
26
27
|
- !ruby/object:Gem::Version
|
@@ -35,6 +36,7 @@ dependencies:
|
|
35
36
|
name: mocha
|
36
37
|
prerelease: false
|
37
38
|
requirement: &id002 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
38
40
|
requirements:
|
39
41
|
- - ~>
|
40
42
|
- !ruby/object:Gem::Version
|
@@ -46,17 +48,17 @@ dependencies:
|
|
46
48
|
type: :development
|
47
49
|
version_requirements: *id002
|
48
50
|
- !ruby/object:Gem::Dependency
|
49
|
-
name:
|
51
|
+
name: rails
|
50
52
|
prerelease: false
|
51
53
|
requirement: &id003 !ruby/object:Gem::Requirement
|
54
|
+
none: false
|
52
55
|
requirements:
|
53
56
|
- - ~>
|
54
57
|
- !ruby/object:Gem::Version
|
55
58
|
segments:
|
56
|
-
-
|
57
|
-
-
|
58
|
-
|
59
|
-
version: 1.2.2
|
59
|
+
- 3
|
60
|
+
- 0
|
61
|
+
version: "3.0"
|
60
62
|
type: :development
|
61
63
|
version_requirements: *id003
|
62
64
|
description: Helpers for generating navigation bars
|
@@ -71,9 +73,7 @@ files:
|
|
71
73
|
- .gitignore
|
72
74
|
- README.md
|
73
75
|
- Rakefile
|
74
|
-
- VERSION
|
75
76
|
- developer_tasks/doc.rake
|
76
|
-
- developer_tasks/gem.rake
|
77
77
|
- developer_tasks/test.rake
|
78
78
|
- doc/example_app/Gemfile
|
79
79
|
- doc/example_app/README.md
|
@@ -135,6 +135,7 @@ rdoc_options:
|
|
135
135
|
require_paths:
|
136
136
|
- lib
|
137
137
|
required_ruby_version: !ruby/object:Gem::Requirement
|
138
|
+
none: false
|
138
139
|
requirements:
|
139
140
|
- - ">="
|
140
141
|
- !ruby/object:Gem::Version
|
@@ -142,6 +143,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
142
143
|
- 0
|
143
144
|
version: "0"
|
144
145
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
146
|
+
none: false
|
145
147
|
requirements:
|
146
148
|
- - ">="
|
147
149
|
- !ruby/object:Gem::Version
|
@@ -151,7 +153,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
151
153
|
requirements: []
|
152
154
|
|
153
155
|
rubyforge_project:
|
154
|
-
rubygems_version: 1.3.
|
156
|
+
rubygems_version: 1.3.7
|
155
157
|
signing_key:
|
156
158
|
specification_version: 3
|
157
159
|
summary: Navigation helpers
|