emenu 0.4.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/.document +5 -0
- data/.rspec +1 -0
- data/Gemfile +19 -0
- data/Gemfile.lock +71 -0
- data/LICENSE.txt +20 -0
- data/README.rdoc +103 -0
- data/Rakefile +49 -0
- data/VERSION +1 -0
- data/emenu.gemspec +90 -0
- data/lib/emenu.rb +38 -0
- data/lib/emenu/menu.rb +93 -0
- data/lib/emenu/menu_config.rb +73 -0
- data/lib/emenu/string.rb +15 -0
- data/lib/generators/emenu/USAGE +1 -0
- data/lib/generators/emenu/install_generator.rb +42 -0
- data/lib/generators/emenu/templates/default_menu/navigation.rb +33 -0
- data/lib/generators/emenu/templates/images/menu.png +0 -0
- data/lib/generators/emenu/templates/images/menu_arrow.png +0 -0
- data/lib/generators/emenu/templates/images/menu_border.png +0 -0
- data/lib/generators/emenu/templates/images/menu_l.png +0 -0
- data/lib/generators/emenu/templates/images/menu_l_selected.png +0 -0
- data/lib/generators/emenu/templates/images/menu_minus.png +0 -0
- data/lib/generators/emenu/templates/images/menu_plus.png +0 -0
- data/lib/generators/emenu/templates/images/menu_r.png +0 -0
- data/lib/generators/emenu/templates/images/menu_r_selected.png +0 -0
- data/lib/generators/emenu/templates/images/menu_selected.png +0 -0
- data/lib/generators/emenu/templates/javascripts/emenu.js +71 -0
- data/lib/generators/emenu/templates/javascripts/jquery-1.4.2.min.js +154 -0
- data/lib/generators/emenu/templates/stylesheets/emenu.css +278 -0
- data/lib/generators/emenu/templates/stylesheets/reset.css +53 -0
- data/spec/menu_config_spec.rb +149 -0
- data/spec/menu_spec.rb +175 -0
- data/spec/spec_helper.rb +12 -0
- metadata +161 -0
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/* http://meyerweb.com/eric/tools/css/reset/ */
|
|
2
|
+
/* v1.0 | 20080212 */
|
|
3
|
+
|
|
4
|
+
html, body, div, span, applet, object, iframe,
|
|
5
|
+
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
|
|
6
|
+
a, abbr, acronym, address, big, cite, code,
|
|
7
|
+
del, dfn, em, font, img, ins, kbd, q, s, samp,
|
|
8
|
+
small, strike, strong, sub, sup, tt, var,
|
|
9
|
+
b, u, i, center,
|
|
10
|
+
dl, dt, dd, ol, ul, li,
|
|
11
|
+
fieldset, form, label, legend,
|
|
12
|
+
table, caption, tbody, tfoot, thead, tr, th, td {
|
|
13
|
+
margin: 0;
|
|
14
|
+
padding: 0;
|
|
15
|
+
border: 0;
|
|
16
|
+
outline: 0;
|
|
17
|
+
font-size: 100%;
|
|
18
|
+
vertical-align: baseline;
|
|
19
|
+
background: transparent;
|
|
20
|
+
}
|
|
21
|
+
body {
|
|
22
|
+
line-height: 1;
|
|
23
|
+
}
|
|
24
|
+
ol, ul {
|
|
25
|
+
list-style: none;
|
|
26
|
+
}
|
|
27
|
+
blockquote, q {
|
|
28
|
+
quotes: none;
|
|
29
|
+
}
|
|
30
|
+
blockquote:before, blockquote:after,
|
|
31
|
+
q:before, q:after {
|
|
32
|
+
content: '';
|
|
33
|
+
content: none;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/* remember to define focus styles! */
|
|
37
|
+
:focus {
|
|
38
|
+
outline: 0;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/* remember to highlight inserts somehow! */
|
|
42
|
+
ins {
|
|
43
|
+
text-decoration: none;
|
|
44
|
+
}
|
|
45
|
+
del {
|
|
46
|
+
text-decoration: line-through;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/* tables still need 'cellspacing="0"' in the markup */
|
|
50
|
+
table {
|
|
51
|
+
border-collapse: collapse;
|
|
52
|
+
border-spacing: 0;
|
|
53
|
+
}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe MenuConfig do
|
|
4
|
+
|
|
5
|
+
it 'should know how to mark selected menu' do
|
|
6
|
+
subject.item :djuka
|
|
7
|
+
subject.selected = :djuka
|
|
8
|
+
subject.selected.should == :djuka
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
it 'should know how to mark opened menus' do
|
|
12
|
+
subject.open :djuka
|
|
13
|
+
subject.open :marko
|
|
14
|
+
subject.opened?(:djuka).should == true
|
|
15
|
+
subject.opened?(:marko).should == true
|
|
16
|
+
subject.opened?(:petar).should == false
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
it 'should open all parent nodes when child is selected' do
|
|
20
|
+
subject.item :products do
|
|
21
|
+
item :napkin do
|
|
22
|
+
item :cool_napkin
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
subject.opened?(:products).should == false
|
|
26
|
+
subject.opened?(:napkin).should == false
|
|
27
|
+
subject.selected = :cool_napkin
|
|
28
|
+
subject.opened?(:products).should == true
|
|
29
|
+
subject.opened?(:napkin).should == true
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
it 'should know to add menu' do
|
|
33
|
+
subject.item :company
|
|
34
|
+
subject.config.size.should == 1
|
|
35
|
+
subject.config[:company].title.should == :company
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
it 'should know to add two menus' do
|
|
39
|
+
subject.item :company
|
|
40
|
+
subject.item :better_company
|
|
41
|
+
subject.config.size.should == 2
|
|
42
|
+
subject.config[:company].title.should == :company
|
|
43
|
+
subject.config[:better_company].title.should == :better_company
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
it 'should dissalow same root menu neme' do
|
|
47
|
+
lambda do
|
|
48
|
+
subject.item :products
|
|
49
|
+
subject.item :products
|
|
50
|
+
end.should raise_error "It's not allowed to have same menu keys: products"
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
it 'should enforce menu item uniqueness across all menus' do
|
|
54
|
+
lambda do
|
|
55
|
+
subject.item :products do
|
|
56
|
+
item :napkin
|
|
57
|
+
item :cool_napkin
|
|
58
|
+
end
|
|
59
|
+
subject.item :second do
|
|
60
|
+
item :something
|
|
61
|
+
item :napkin
|
|
62
|
+
end
|
|
63
|
+
end.should raise_error("It's not allowed to have same menu keys: napkin")
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
it 'should generate valid #menu tag and move menus for spacing to the right' do
|
|
67
|
+
subject.item :company do
|
|
68
|
+
item :napkin, '/napkin'
|
|
69
|
+
end
|
|
70
|
+
subject.item :better_company do
|
|
71
|
+
item :cars
|
|
72
|
+
end
|
|
73
|
+
subject.to_haml.should == <<-DEF.indent
|
|
74
|
+
#menu
|
|
75
|
+
%h6#h-menu-company
|
|
76
|
+
%a{ :href => '#company'}
|
|
77
|
+
%span Company
|
|
78
|
+
%ul#menu-company.closed
|
|
79
|
+
%li= link_to 'Napkin', '/napkin'
|
|
80
|
+
%h6#h-menu-better_company
|
|
81
|
+
%a{ :href => '#better_company'}
|
|
82
|
+
%span Better company
|
|
83
|
+
%ul#menu-better_company.closed
|
|
84
|
+
%li= link_to 'Cars', '#'
|
|
85
|
+
DEF
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
it 'should generate valid html' do
|
|
89
|
+
subject.item :transportation do
|
|
90
|
+
item :cars
|
|
91
|
+
end
|
|
92
|
+
subject.to_html.should == <<-DEF.indent
|
|
93
|
+
<div id='menu'>
|
|
94
|
+
<h6 id='h-menu-transportation'>
|
|
95
|
+
<a href='#transportation'>
|
|
96
|
+
<span>Transportation</span>
|
|
97
|
+
</a>
|
|
98
|
+
</h6>
|
|
99
|
+
<ul class='closed' id='menu-transportation'>
|
|
100
|
+
<li><a href="#">Cars</a></li>
|
|
101
|
+
</ul>
|
|
102
|
+
</div>
|
|
103
|
+
DEF
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
it 'should generate valid html with render method' do
|
|
107
|
+
subject.item :transportation do
|
|
108
|
+
item :cars
|
|
109
|
+
end
|
|
110
|
+
subject.render.should == <<-DEF.indent
|
|
111
|
+
<div id='menu'>
|
|
112
|
+
<h6 id='h-menu-transportation'>
|
|
113
|
+
<a href='#transportation'>
|
|
114
|
+
<span>Transportation</span>
|
|
115
|
+
</a>
|
|
116
|
+
</h6>
|
|
117
|
+
<ul class='closed' id='menu-transportation'>
|
|
118
|
+
<li><a href="#">Cars</a></li>
|
|
119
|
+
</ul>
|
|
120
|
+
</div>
|
|
121
|
+
DEF
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
it 'should know how to create menu config with static factory method' do
|
|
125
|
+
subject.item :transportation do
|
|
126
|
+
item :cars
|
|
127
|
+
item :trains do
|
|
128
|
+
item :fast_trains
|
|
129
|
+
item :slow_trains
|
|
130
|
+
end
|
|
131
|
+
end
|
|
132
|
+
subject.item :orders do
|
|
133
|
+
item :bananas
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
MenuConfig.define do |menu|
|
|
137
|
+
menu.item :transportation do
|
|
138
|
+
item :cars
|
|
139
|
+
item :trains do
|
|
140
|
+
item :fast_trains
|
|
141
|
+
item :slow_trains
|
|
142
|
+
end
|
|
143
|
+
end
|
|
144
|
+
menu.item :orders do
|
|
145
|
+
item :bananas
|
|
146
|
+
end
|
|
147
|
+
end.to_html.should == subject.to_html
|
|
148
|
+
end
|
|
149
|
+
end
|
data/spec/menu_spec.rb
ADDED
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe Menu do
|
|
4
|
+
|
|
5
|
+
subject do
|
|
6
|
+
@config = stub(:config)
|
|
7
|
+
@config.stubs(:open)
|
|
8
|
+
@config.stubs(:selected=)
|
|
9
|
+
@config.stubs(:selected).returns nil
|
|
10
|
+
@config.stubs(:opened?).with(anything).returns false
|
|
11
|
+
|
|
12
|
+
Menu.new(:company, nil, @config)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
it 'should have title' do
|
|
17
|
+
subject.title.should == :company
|
|
18
|
+
subject.type.should == :title
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
it 'should accept new items' do
|
|
22
|
+
subject.add(:napkin)
|
|
23
|
+
subject.add(:car)
|
|
24
|
+
subject.items.count.should == 2
|
|
25
|
+
subject.items.first.type.should == :menu
|
|
26
|
+
subject.items[1].type.should == :menu
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
it 'should know subitems titles' do
|
|
30
|
+
subject.add(:napkin)
|
|
31
|
+
subject.add(:car)
|
|
32
|
+
subject.items.first.title.should == :napkin
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
it 'should support collapsible items of sub items' do
|
|
36
|
+
subject.add(:napkin)
|
|
37
|
+
subject.items.first.type.should == :menu
|
|
38
|
+
subject.items.first.add(:cool_napkins)
|
|
39
|
+
subject.items.first.type.should == :collapsible_menu
|
|
40
|
+
subject.items.first.items.first.type.should == :menu
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
it 'should enforce menu keys uniqueness' do
|
|
44
|
+
lambda { subject.add(:company) }.should raise_error("It's not allowed to have same menu keys: company")
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
it 'should enforce keys uniqueness in colapslible items' do
|
|
48
|
+
lambda do
|
|
49
|
+
subject.add(:napkin)
|
|
50
|
+
subject.items.first.add(:cars)
|
|
51
|
+
subject.items.first.add(:cars)
|
|
52
|
+
end.should raise_error("It's not allowed to have same menu keys: cars")
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
it 'should generate valid haml for simple meni' do
|
|
56
|
+
subject.add(:table)
|
|
57
|
+
subject.add(:napkin)
|
|
58
|
+
subject.to_haml.should == <<-DEF.indent
|
|
59
|
+
%h6#h-menu-company
|
|
60
|
+
%a{ :href => '#company'}
|
|
61
|
+
%span Company
|
|
62
|
+
%ul#menu-company.closed
|
|
63
|
+
%li= link_to 'Table', '#'
|
|
64
|
+
%li= link_to 'Napkin', '#'
|
|
65
|
+
DEF
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
it 'should generate haml for simple opened menu' do
|
|
69
|
+
subject.add(:table)
|
|
70
|
+
subject.add(:napkin)
|
|
71
|
+
@config.open(:company)
|
|
72
|
+
@config.selected = :napkin
|
|
73
|
+
|
|
74
|
+
@config.stubs(:opened?).with(:company).returns true
|
|
75
|
+
@config.stubs(:selected).returns :napkin
|
|
76
|
+
|
|
77
|
+
subject.to_haml.should == <<-DEF.indent
|
|
78
|
+
%h6#h-menu-company{ :class => "selected" }
|
|
79
|
+
%a{ :href => '#company'}
|
|
80
|
+
%span Company
|
|
81
|
+
%ul#menu-company.opened
|
|
82
|
+
%li= link_to 'Table', '#'
|
|
83
|
+
%li{ :class => "selected" }= link_to 'Napkin', '#'
|
|
84
|
+
DEF
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
it 'should generate valid haml for complex meni' do
|
|
89
|
+
subject.add(:table)
|
|
90
|
+
subject.add(:napkin)
|
|
91
|
+
subject.items[1].add(:cool_napkins)
|
|
92
|
+
subject.add(:cars)
|
|
93
|
+
subject.to_haml.should == <<-DEF.indent
|
|
94
|
+
%h6#h-menu-company
|
|
95
|
+
%a{ :href => '#company'}
|
|
96
|
+
%span Company
|
|
97
|
+
%ul#menu-company.closed
|
|
98
|
+
%li= link_to 'Table', '#'
|
|
99
|
+
%li.collapsible
|
|
100
|
+
%a{ :href => '#', :class => 'collapsible plus'} Napkin
|
|
101
|
+
%ul#napkin.collapsed
|
|
102
|
+
%li= link_to 'Cool napkins', '#'
|
|
103
|
+
%li= link_to 'Cars', '#'
|
|
104
|
+
DEF
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
it 'should generate valid haml for complex opened meni' do
|
|
108
|
+
subject.add(:table)
|
|
109
|
+
subject.add(:napkin)
|
|
110
|
+
subject.items[1].add(:cool_napkins)
|
|
111
|
+
subject.add(:cars)
|
|
112
|
+
@config.open(:company)
|
|
113
|
+
@config.open(:napkin)
|
|
114
|
+
@config.selected = :cool_napkins
|
|
115
|
+
|
|
116
|
+
@config.stubs(:opened?).with(anything).returns true
|
|
117
|
+
@config.stubs(:selected).returns :cool_napkins
|
|
118
|
+
|
|
119
|
+
subject.to_haml.should == <<-DEF.indent
|
|
120
|
+
%h6#h-menu-company{ :class => "selected" }
|
|
121
|
+
%a{ :href => '#company'}
|
|
122
|
+
%span Company
|
|
123
|
+
%ul#menu-company.opened
|
|
124
|
+
%li= link_to 'Table', '#'
|
|
125
|
+
%li.collapsible
|
|
126
|
+
%a{ :href => '#', :class => 'collapsible minus'} Napkin
|
|
127
|
+
%ul#napkin.expanded
|
|
128
|
+
%li{ :class => "selected" }= link_to 'Cool napkins', '#'
|
|
129
|
+
%li= link_to 'Cars', '#'
|
|
130
|
+
DEF
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
it 'should generate valid haml for collapsible of collapsible meni' do
|
|
134
|
+
subject.add(:table)
|
|
135
|
+
subject.add(:napkin)
|
|
136
|
+
subject.items[1].add(:cool_napkins)
|
|
137
|
+
something = subject.items[1].add(:something)
|
|
138
|
+
something.add(:collapsible2)
|
|
139
|
+
subject.add(:cars)
|
|
140
|
+
subject.to_haml.should == <<-DEF.indent
|
|
141
|
+
%h6#h-menu-company
|
|
142
|
+
%a{ :href => '#company'}
|
|
143
|
+
%span Company
|
|
144
|
+
%ul#menu-company.closed
|
|
145
|
+
%li= link_to 'Table', '#'
|
|
146
|
+
%li.collapsible
|
|
147
|
+
%a{ :href => '#', :class => 'collapsible plus'} Napkin
|
|
148
|
+
%ul#napkin.collapsed
|
|
149
|
+
%li= link_to 'Cool napkins', '#'
|
|
150
|
+
%li.collapsible
|
|
151
|
+
%a{ :href => '#', :class => 'collapsible plus'} Something
|
|
152
|
+
%ul#something.collapsed
|
|
153
|
+
%li= link_to 'Collapsible2', '#'
|
|
154
|
+
%li= link_to 'Cars', '#'
|
|
155
|
+
DEF
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
it 'should enumerate all items' do
|
|
159
|
+
subject.add(:table)
|
|
160
|
+
subject.add(:napkin)
|
|
161
|
+
subject.items[1].add(:cool_napkins)
|
|
162
|
+
subject.all_items.count.should == 3
|
|
163
|
+
end
|
|
164
|
+
|
|
165
|
+
it 'should enumerate item parents' do
|
|
166
|
+
subject.add(:table)
|
|
167
|
+
subject.add(:napkin)
|
|
168
|
+
subject.items[1].add(:cool_napkins)
|
|
169
|
+
subject.parents.count.should == 0
|
|
170
|
+
subject.items[0].parents.count.should == 1
|
|
171
|
+
subject.items[1].items[0].parents.count.should == 2
|
|
172
|
+
end
|
|
173
|
+
|
|
174
|
+
end
|
|
175
|
+
|
data/spec/spec_helper.rb
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
|
2
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
|
3
|
+
|
|
4
|
+
require File.expand_path(File.join(File.dirname(__FILE__), '../lib/emenu.rb'))
|
|
5
|
+
|
|
6
|
+
# Requires supporting files with custom matchers and macros, etc,
|
|
7
|
+
# in ./support/ and its subdirectories.
|
|
8
|
+
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
|
|
9
|
+
|
|
10
|
+
RSpec.configure do |config|
|
|
11
|
+
config.mock_with :mocha
|
|
12
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: emenu
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.4.1
|
|
5
|
+
prerelease:
|
|
6
|
+
platform: ruby
|
|
7
|
+
authors:
|
|
8
|
+
- Kresimir Bojcic
|
|
9
|
+
autorequire:
|
|
10
|
+
bindir: bin
|
|
11
|
+
cert_chain: []
|
|
12
|
+
date: 2011-07-13 00:00:00.000000000Z
|
|
13
|
+
dependencies:
|
|
14
|
+
- !ruby/object:Gem::Dependency
|
|
15
|
+
name: haml
|
|
16
|
+
requirement: &19076540 !ruby/object:Gem::Requirement
|
|
17
|
+
none: false
|
|
18
|
+
requirements:
|
|
19
|
+
- - ~>
|
|
20
|
+
- !ruby/object:Gem::Version
|
|
21
|
+
version: 3.1.1
|
|
22
|
+
type: :runtime
|
|
23
|
+
prerelease: false
|
|
24
|
+
version_requirements: *19076540
|
|
25
|
+
- !ruby/object:Gem::Dependency
|
|
26
|
+
name: activesupport
|
|
27
|
+
requirement: &18830380 !ruby/object:Gem::Requirement
|
|
28
|
+
none: false
|
|
29
|
+
requirements:
|
|
30
|
+
- - ~>
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: 3.0.3
|
|
33
|
+
type: :runtime
|
|
34
|
+
prerelease: false
|
|
35
|
+
version_requirements: *18830380
|
|
36
|
+
- !ruby/object:Gem::Dependency
|
|
37
|
+
name: actionpack
|
|
38
|
+
requirement: &18829420 !ruby/object:Gem::Requirement
|
|
39
|
+
none: false
|
|
40
|
+
requirements:
|
|
41
|
+
- - ~>
|
|
42
|
+
- !ruby/object:Gem::Version
|
|
43
|
+
version: 3.0.3
|
|
44
|
+
type: :runtime
|
|
45
|
+
prerelease: false
|
|
46
|
+
version_requirements: *18829420
|
|
47
|
+
- !ruby/object:Gem::Dependency
|
|
48
|
+
name: rspec-rails
|
|
49
|
+
requirement: &18828340 !ruby/object:Gem::Requirement
|
|
50
|
+
none: false
|
|
51
|
+
requirements:
|
|
52
|
+
- - ~>
|
|
53
|
+
- !ruby/object:Gem::Version
|
|
54
|
+
version: 2.3.0
|
|
55
|
+
type: :development
|
|
56
|
+
prerelease: false
|
|
57
|
+
version_requirements: *18828340
|
|
58
|
+
- !ruby/object:Gem::Dependency
|
|
59
|
+
name: bundler
|
|
60
|
+
requirement: &18827640 !ruby/object:Gem::Requirement
|
|
61
|
+
none: false
|
|
62
|
+
requirements:
|
|
63
|
+
- - ~>
|
|
64
|
+
- !ruby/object:Gem::Version
|
|
65
|
+
version: 1.0.0
|
|
66
|
+
type: :development
|
|
67
|
+
prerelease: false
|
|
68
|
+
version_requirements: *18827640
|
|
69
|
+
- !ruby/object:Gem::Dependency
|
|
70
|
+
name: jeweler
|
|
71
|
+
requirement: &18826840 !ruby/object:Gem::Requirement
|
|
72
|
+
none: false
|
|
73
|
+
requirements:
|
|
74
|
+
- - ~>
|
|
75
|
+
- !ruby/object:Gem::Version
|
|
76
|
+
version: 1.6.4
|
|
77
|
+
type: :development
|
|
78
|
+
prerelease: false
|
|
79
|
+
version_requirements: *18826840
|
|
80
|
+
- !ruby/object:Gem::Dependency
|
|
81
|
+
name: rcov
|
|
82
|
+
requirement: &18825860 !ruby/object:Gem::Requirement
|
|
83
|
+
none: false
|
|
84
|
+
requirements:
|
|
85
|
+
- - ! '>='
|
|
86
|
+
- !ruby/object:Gem::Version
|
|
87
|
+
version: '0'
|
|
88
|
+
type: :development
|
|
89
|
+
prerelease: false
|
|
90
|
+
version_requirements: *18825860
|
|
91
|
+
description: Enterprise class menus with simple ruby based configuration, easy to
|
|
92
|
+
make, easy to maintain
|
|
93
|
+
email: kresimir.bojcic@gmail.com
|
|
94
|
+
executables: []
|
|
95
|
+
extensions: []
|
|
96
|
+
extra_rdoc_files:
|
|
97
|
+
- LICENSE.txt
|
|
98
|
+
- README.rdoc
|
|
99
|
+
files:
|
|
100
|
+
- .document
|
|
101
|
+
- .rspec
|
|
102
|
+
- Gemfile
|
|
103
|
+
- Gemfile.lock
|
|
104
|
+
- LICENSE.txt
|
|
105
|
+
- README.rdoc
|
|
106
|
+
- Rakefile
|
|
107
|
+
- VERSION
|
|
108
|
+
- emenu.gemspec
|
|
109
|
+
- lib/emenu.rb
|
|
110
|
+
- lib/emenu/menu.rb
|
|
111
|
+
- lib/emenu/menu_config.rb
|
|
112
|
+
- lib/emenu/string.rb
|
|
113
|
+
- lib/generators/emenu/USAGE
|
|
114
|
+
- lib/generators/emenu/install_generator.rb
|
|
115
|
+
- lib/generators/emenu/templates/default_menu/navigation.rb
|
|
116
|
+
- lib/generators/emenu/templates/images/menu.png
|
|
117
|
+
- lib/generators/emenu/templates/images/menu_arrow.png
|
|
118
|
+
- lib/generators/emenu/templates/images/menu_border.png
|
|
119
|
+
- lib/generators/emenu/templates/images/menu_l.png
|
|
120
|
+
- lib/generators/emenu/templates/images/menu_l_selected.png
|
|
121
|
+
- lib/generators/emenu/templates/images/menu_minus.png
|
|
122
|
+
- lib/generators/emenu/templates/images/menu_plus.png
|
|
123
|
+
- lib/generators/emenu/templates/images/menu_r.png
|
|
124
|
+
- lib/generators/emenu/templates/images/menu_r_selected.png
|
|
125
|
+
- lib/generators/emenu/templates/images/menu_selected.png
|
|
126
|
+
- lib/generators/emenu/templates/javascripts/emenu.js
|
|
127
|
+
- lib/generators/emenu/templates/javascripts/jquery-1.4.2.min.js
|
|
128
|
+
- lib/generators/emenu/templates/stylesheets/emenu.css
|
|
129
|
+
- lib/generators/emenu/templates/stylesheets/reset.css
|
|
130
|
+
- spec/menu_config_spec.rb
|
|
131
|
+
- spec/menu_spec.rb
|
|
132
|
+
- spec/spec_helper.rb
|
|
133
|
+
homepage: http://github.com/drKreso/emenu
|
|
134
|
+
licenses:
|
|
135
|
+
- MIT
|
|
136
|
+
post_install_message:
|
|
137
|
+
rdoc_options: []
|
|
138
|
+
require_paths:
|
|
139
|
+
- lib
|
|
140
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
141
|
+
none: false
|
|
142
|
+
requirements:
|
|
143
|
+
- - ! '>='
|
|
144
|
+
- !ruby/object:Gem::Version
|
|
145
|
+
version: '0'
|
|
146
|
+
segments:
|
|
147
|
+
- 0
|
|
148
|
+
hash: 119215118386209543
|
|
149
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
150
|
+
none: false
|
|
151
|
+
requirements:
|
|
152
|
+
- - ! '>='
|
|
153
|
+
- !ruby/object:Gem::Version
|
|
154
|
+
version: '0'
|
|
155
|
+
requirements: []
|
|
156
|
+
rubyforge_project:
|
|
157
|
+
rubygems_version: 1.8.5
|
|
158
|
+
signing_key:
|
|
159
|
+
specification_version: 3
|
|
160
|
+
summary: Enterprise class menus
|
|
161
|
+
test_files: []
|