semantic_navigation 0.1.1 → 0.1.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/.editorconfig +14 -0
- data/.gitignore +2 -0
- data/.travis.yml +10 -2
- data/Appraisals +7 -0
- data/Gemfile +1 -1
- data/MIT-LICENSE +20 -0
- data/README.md +31 -20
- data/Rakefile +2 -1
- data/TODO +14 -0
- data/gemfiles/3.2.gemfile +7 -0
- data/gemfiles/3.2.gemfile.lock +112 -0
- data/gemfiles/4.0.gemfile +7 -0
- data/gemfiles/4.0.gemfile.lock +107 -0
- data/lib/generators/semantic_navigation/breadcrumb_renderer/templates/breadcrumb_renderer.rb +5 -5
- data/lib/generators/semantic_navigation/list_renderer/list_renderer_generator.rb +0 -1
- data/lib/generators/semantic_navigation/list_renderer/templates/list_renderer.rb +4 -4
- data/lib/semantic_navigation.rb +30 -0
- data/lib/semantic_navigation/configuration.rb +8 -9
- data/lib/semantic_navigation/core.rb +8 -6
- data/lib/semantic_navigation/core/leaf.rb +2 -2
- data/lib/semantic_navigation/core/mix_in/name_methods.rb +24 -0
- data/lib/semantic_navigation/core/mix_in/url_methods.rb +25 -0
- data/lib/semantic_navigation/core/navigation.rb +8 -2
- data/lib/semantic_navigation/core/node.rb +2 -2
- data/lib/semantic_navigation/deprecations/renderers/acts_as_breadcrumb.rb +14 -0
- data/lib/semantic_navigation/deprecations/renderers/acts_as_list.rb +12 -0
- data/lib/semantic_navigation/deprecations/renderers/render_helpers.rb +14 -0
- data/lib/semantic_navigation/helper_methods.rb +8 -4
- data/lib/semantic_navigation/railtie.rb +9 -19
- data/lib/semantic_navigation/renderers.rb +15 -8
- data/lib/semantic_navigation/renderers/bread_crumb.rb +6 -6
- data/lib/semantic_navigation/renderers/list.rb +6 -6
- data/lib/semantic_navigation/renderers/mix_in/acts_as_breadcrumb.rb +43 -0
- data/lib/semantic_navigation/renderers/mix_in/acts_as_list.rb +49 -0
- data/lib/semantic_navigation/renderers/mix_in/render_helpers.rb +110 -0
- data/lib/semantic_navigation/twitter_bootstrap/breadcrumb.rb +5 -5
- data/lib/semantic_navigation/twitter_bootstrap/list.rb +2 -2
- data/lib/semantic_navigation/twitter_bootstrap/tabs.rb +2 -2
- data/lib/semantic_navigation/version.rb +1 -1
- data/semantic_navigation.gemspec +3 -2
- data/spec/lib/semantic_navigation/configuration_spec.rb +29 -24
- data/spec/lib/semantic_navigation/core/leaf_spec.rb +121 -114
- data/spec/lib/semantic_navigation/core/navigation_spec.rb +81 -76
- data/spec/lib/semantic_navigation/core/node_spec.rb +52 -49
- data/spec/lib/semantic_navigation/helper_methods_spec.rb +47 -42
- data/spec/lib/semantic_navigation/renderers/bread_crumb_spec.rb +191 -187
- data/spec/lib/semantic_navigation/renderers/deprecations_spec.rb +67 -0
- data/spec/lib/semantic_navigation/renderers/list_spec.rb +260 -258
- data/spec/lib/semantic_navigation/twitter_bootstrap/breadcrumb_spec.rb +163 -159
- data/spec/lib/semantic_navigation/twitter_bootstrap/list_spec.rb +263 -262
- data/spec/lib/semantic_navigation/twitter_bootstrap/tabs_spec.rb +269 -266
- data/spec/spec_helper.rb +6 -0
- metadata +41 -13
- data/gemfiles/rails3 +0 -7
- data/lib/semantic_navigation/core/name_methods.rb +0 -24
- data/lib/semantic_navigation/core/url_methods.rb +0 -24
- data/lib/semantic_navigation/renderers/acts_as_breadcrumb.rb +0 -42
- data/lib/semantic_navigation/renderers/acts_as_list.rb +0 -48
- data/lib/semantic_navigation/renderers/render_helpers.rb +0 -109
data/.editorconfig
ADDED
data/.travis.yml
CHANGED
@@ -1,7 +1,15 @@
|
|
1
1
|
language: ruby
|
2
2
|
rvm:
|
3
|
-
- 1.9.3
|
4
3
|
- 1.9.2
|
4
|
+
- 1.9.3
|
5
5
|
- ruby-head
|
6
6
|
gemfile:
|
7
|
-
- gemfiles/
|
7
|
+
- gemfiles/3.2.gemfile
|
8
|
+
- gemfiles/4.0.gemfile
|
9
|
+
matrix:
|
10
|
+
exclude:
|
11
|
+
- rvm: 1.9.2
|
12
|
+
gemfile: gemfiles/4.0.gemfile
|
13
|
+
- rvm: ruby-head
|
14
|
+
gemfile: gemfiles/4.0.gemfile
|
15
|
+
|
data/Appraisals
ADDED
data/Gemfile
CHANGED
data/MIT-LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright 2010-2013 Gribovski Sergey
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
CHANGED
@@ -1,11 +1,16 @@
|
|
1
|
-
|
1
|
+
# semantic_navigation [](http://badge.fury.io/rb/semantic_navigation) [](https://travis-ci.org/fr33z3/semantic_navigation)
|
2
|
+
|
3
|
+
Simple navigation menus implementation for Rails 3 application with multiple and nesting menus.
|
4
|
+
|
5
|
+
## Purpose
|
2
6
|
|
3
|
-
###Purpose
|
4
7
|
Forget fat layouts, views and controllers. This gem will do all the menu staff for you.
|
5
8
|
You simply just have to generate configuration file, fill it with your menu hierarchy and renderer it wherever you want.
|
6
9
|
|
7
10
|
Simply and customizable it will make for you all the routins you were spending a lot of time before.
|
8
11
|
|
12
|
+
### Features
|
13
|
+
|
9
14
|
* semantic_navigation supports defining as many separate menus as you want and they can be as deep as you need.
|
10
15
|
* supports different styles of url definitions ('route#like', :symbols, 'strings', {hash: 'like'})
|
11
16
|
* supports and array of urls for one item
|
@@ -16,28 +21,30 @@ Simply and customizable it will make for you all the routins you were spending a
|
|
16
21
|
* supports controller default styles overriding both - from configuration and view file
|
17
22
|
* supports custom renderers
|
18
23
|
|
19
|
-
|
24
|
+
## How to install
|
20
25
|
|
21
26
|
Write the gem dependency in your Gemfile:
|
22
|
-
|
27
|
+
|
28
|
+
```ruby
|
23
29
|
gem 'semantic_navigation'
|
24
|
-
|
30
|
+
```
|
25
31
|
|
26
32
|
Make the install by bundler
|
27
|
-
|
33
|
+
|
34
|
+
```bash
|
28
35
|
$ bundle install
|
29
|
-
|
36
|
+
```
|
30
37
|
|
31
38
|
Generate the config file:
|
32
|
-
|
39
|
+
```bash
|
33
40
|
$ rails generate semantic_navigation:install
|
34
|
-
|
41
|
+
```
|
35
42
|
|
36
|
-
|
43
|
+
## Quick start
|
37
44
|
|
38
|
-
Configure your navigation in config/initializers/semantic_navigation.rb
|
45
|
+
Configure your navigation in `config/initializers/semantic_navigation.rb`:
|
39
46
|
|
40
|
-
|
47
|
+
```ruby
|
41
48
|
SemanticNavigation::Configuration.run do
|
42
49
|
navigate :root_menu do
|
43
50
|
header :header_item, :name => 'Header'
|
@@ -46,24 +53,28 @@ SemanticNavigation::Configuration.run do
|
|
46
53
|
item :second_item, '#', :name => 'Second Item', :ico => :user
|
47
54
|
end
|
48
55
|
end
|
49
|
-
|
56
|
+
```
|
50
57
|
|
51
58
|
And try to render it in your layout(code in haml):
|
52
|
-
|
59
|
+
|
60
|
+
```haml
|
53
61
|
.well
|
54
62
|
= navigation_for :root_menu, :as => :bootstrap_list
|
55
|
-
|
63
|
+
```
|
64
|
+
|
56
65
|
or
|
57
|
-
|
66
|
+
|
67
|
+
```haml
|
58
68
|
.well
|
59
69
|
= bootstrap_list_for :root_menu
|
60
|
-
|
70
|
+
```
|
61
71
|
|
62
72
|
Render the navigation using the semantic_navigation helper methods and options for them.
|
63
73
|
|
64
|
-
For the information of how to configure and render your navigation read the
|
74
|
+
For the information of how to configure and render your navigation read the [Wiki](https://github.com/fr33z3/semantic_navigation/wiki).
|
65
75
|
|
66
|
-
|
76
|
+
### Dependencies
|
67
77
|
|
68
78
|
* Ruby >= 1.9.2
|
69
|
-
* Rails >= 3.
|
79
|
+
* Rails >= 3.2.0
|
80
|
+
|
data/Rakefile
CHANGED
data/TODO
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
ActiveSupport helper methods:
|
2
|
+
- Write specs for active_item_for if it getting block
|
3
|
+
- Write wiki about that
|
4
|
+
|
5
|
+
Concept:
|
6
|
+
- Rewrite leaf/node concept
|
7
|
+
- Add possible to define renderers as templates
|
8
|
+
- Add renderers for other template frameworks
|
9
|
+
- Move bootstrap renderers to bootstrap version 4.0.0
|
10
|
+
- Possible to make dynamic items in menu (database or something else)
|
11
|
+
|
12
|
+
Convention over configuration:
|
13
|
+
- Move menu definitions outside the initializers folder
|
14
|
+
- Leave menu configuration options in initalizers folder
|
@@ -0,0 +1,112 @@
|
|
1
|
+
PATH
|
2
|
+
remote: /mnt/code/github/semantic_navigation
|
3
|
+
specs:
|
4
|
+
semantic_navigation (0.1.2)
|
5
|
+
rails (>= 3.2.0)
|
6
|
+
|
7
|
+
GEM
|
8
|
+
remote: https://rubygems.org/
|
9
|
+
specs:
|
10
|
+
actionmailer (3.2.13)
|
11
|
+
actionpack (= 3.2.13)
|
12
|
+
mail (~> 2.5.3)
|
13
|
+
actionpack (3.2.13)
|
14
|
+
activemodel (= 3.2.13)
|
15
|
+
activesupport (= 3.2.13)
|
16
|
+
builder (~> 3.0.0)
|
17
|
+
erubis (~> 2.7.0)
|
18
|
+
journey (~> 1.0.4)
|
19
|
+
rack (~> 1.4.5)
|
20
|
+
rack-cache (~> 1.2)
|
21
|
+
rack-test (~> 0.6.1)
|
22
|
+
sprockets (~> 2.2.1)
|
23
|
+
activemodel (3.2.13)
|
24
|
+
activesupport (= 3.2.13)
|
25
|
+
builder (~> 3.0.0)
|
26
|
+
activerecord (3.2.13)
|
27
|
+
activemodel (= 3.2.13)
|
28
|
+
activesupport (= 3.2.13)
|
29
|
+
arel (~> 3.0.2)
|
30
|
+
tzinfo (~> 0.3.29)
|
31
|
+
activeresource (3.2.13)
|
32
|
+
activemodel (= 3.2.13)
|
33
|
+
activesupport (= 3.2.13)
|
34
|
+
activesupport (3.2.13)
|
35
|
+
i18n (= 0.6.1)
|
36
|
+
multi_json (~> 1.0)
|
37
|
+
appraisal (0.5.2)
|
38
|
+
bundler
|
39
|
+
rake
|
40
|
+
arel (3.0.2)
|
41
|
+
builder (3.0.4)
|
42
|
+
diff-lcs (1.2.4)
|
43
|
+
erubis (2.7.0)
|
44
|
+
hike (1.2.2)
|
45
|
+
i18n (0.6.1)
|
46
|
+
journey (1.0.4)
|
47
|
+
json (1.7.7)
|
48
|
+
mail (2.5.3)
|
49
|
+
i18n (>= 0.4.0)
|
50
|
+
mime-types (~> 1.16)
|
51
|
+
treetop (~> 1.4.8)
|
52
|
+
mime-types (1.23)
|
53
|
+
multi_json (1.7.2)
|
54
|
+
polyglot (0.3.3)
|
55
|
+
rack (1.4.5)
|
56
|
+
rack-cache (1.2)
|
57
|
+
rack (>= 0.4)
|
58
|
+
rack-ssl (1.3.3)
|
59
|
+
rack
|
60
|
+
rack-test (0.6.2)
|
61
|
+
rack (>= 1.0)
|
62
|
+
rails (3.2.13)
|
63
|
+
actionmailer (= 3.2.13)
|
64
|
+
actionpack (= 3.2.13)
|
65
|
+
activerecord (= 3.2.13)
|
66
|
+
activeresource (= 3.2.13)
|
67
|
+
activesupport (= 3.2.13)
|
68
|
+
bundler (~> 1.0)
|
69
|
+
railties (= 3.2.13)
|
70
|
+
railties (3.2.13)
|
71
|
+
actionpack (= 3.2.13)
|
72
|
+
activesupport (= 3.2.13)
|
73
|
+
rack-ssl (~> 1.3.2)
|
74
|
+
rake (>= 0.8.7)
|
75
|
+
rdoc (~> 3.4)
|
76
|
+
thor (>= 0.14.6, < 2.0)
|
77
|
+
rake (10.0.4)
|
78
|
+
rdoc (3.12.2)
|
79
|
+
json (~> 1.4)
|
80
|
+
rspec (2.13.0)
|
81
|
+
rspec-core (~> 2.13.0)
|
82
|
+
rspec-expectations (~> 2.13.0)
|
83
|
+
rspec-mocks (~> 2.13.0)
|
84
|
+
rspec-core (2.13.1)
|
85
|
+
rspec-expectations (2.13.0)
|
86
|
+
diff-lcs (>= 1.1.3, < 2.0)
|
87
|
+
rspec-mocks (2.13.1)
|
88
|
+
simplecov (0.7.1)
|
89
|
+
multi_json (~> 1.0)
|
90
|
+
simplecov-html (~> 0.7.1)
|
91
|
+
simplecov-html (0.7.1)
|
92
|
+
sprockets (2.2.2)
|
93
|
+
hike (~> 1.2)
|
94
|
+
multi_json (~> 1.0)
|
95
|
+
rack (~> 1.0)
|
96
|
+
tilt (~> 1.1, != 1.3.0)
|
97
|
+
thor (0.18.1)
|
98
|
+
tilt (1.4.0)
|
99
|
+
treetop (1.4.12)
|
100
|
+
polyglot
|
101
|
+
polyglot (>= 0.3.1)
|
102
|
+
tzinfo (0.3.37)
|
103
|
+
|
104
|
+
PLATFORMS
|
105
|
+
ruby
|
106
|
+
|
107
|
+
DEPENDENCIES
|
108
|
+
appraisal
|
109
|
+
rails (~> 3.2.0)
|
110
|
+
rspec (>= 2.0.1)
|
111
|
+
semantic_navigation!
|
112
|
+
simplecov
|
@@ -0,0 +1,107 @@
|
|
1
|
+
PATH
|
2
|
+
remote: /mnt/code/github/semantic_navigation
|
3
|
+
specs:
|
4
|
+
semantic_navigation (0.1.2)
|
5
|
+
rails (>= 3.2.0)
|
6
|
+
|
7
|
+
GEM
|
8
|
+
remote: https://rubygems.org/
|
9
|
+
specs:
|
10
|
+
actionmailer (4.0.0.rc1)
|
11
|
+
actionpack (= 4.0.0.rc1)
|
12
|
+
mail (~> 2.5.3)
|
13
|
+
actionpack (4.0.0.rc1)
|
14
|
+
activesupport (= 4.0.0.rc1)
|
15
|
+
builder (~> 3.1.0)
|
16
|
+
erubis (~> 2.7.0)
|
17
|
+
rack (~> 1.5.2)
|
18
|
+
rack-test (~> 0.6.2)
|
19
|
+
activemodel (4.0.0.rc1)
|
20
|
+
activesupport (= 4.0.0.rc1)
|
21
|
+
builder (~> 3.1.0)
|
22
|
+
activerecord (4.0.0.rc1)
|
23
|
+
activemodel (= 4.0.0.rc1)
|
24
|
+
activerecord-deprecated_finders (~> 1.0.2)
|
25
|
+
activesupport (= 4.0.0.rc1)
|
26
|
+
arel (~> 4.0.0)
|
27
|
+
activerecord-deprecated_finders (1.0.2)
|
28
|
+
activesupport (4.0.0.rc1)
|
29
|
+
i18n (~> 0.6, >= 0.6.4)
|
30
|
+
minitest (~> 4.2)
|
31
|
+
multi_json (~> 1.3)
|
32
|
+
thread_safe (~> 0.1)
|
33
|
+
tzinfo (~> 0.3.37)
|
34
|
+
appraisal (0.5.2)
|
35
|
+
bundler
|
36
|
+
rake
|
37
|
+
arel (4.0.0)
|
38
|
+
atomic (1.1.8)
|
39
|
+
builder (3.1.4)
|
40
|
+
diff-lcs (1.2.4)
|
41
|
+
erubis (2.7.0)
|
42
|
+
hike (1.2.2)
|
43
|
+
i18n (0.6.4)
|
44
|
+
mail (2.5.3)
|
45
|
+
i18n (>= 0.4.0)
|
46
|
+
mime-types (~> 1.16)
|
47
|
+
treetop (~> 1.4.8)
|
48
|
+
mime-types (1.23)
|
49
|
+
minitest (4.7.3)
|
50
|
+
multi_json (1.7.2)
|
51
|
+
polyglot (0.3.3)
|
52
|
+
rack (1.5.2)
|
53
|
+
rack-test (0.6.2)
|
54
|
+
rack (>= 1.0)
|
55
|
+
rails (4.0.0.rc1)
|
56
|
+
actionmailer (= 4.0.0.rc1)
|
57
|
+
actionpack (= 4.0.0.rc1)
|
58
|
+
activerecord (= 4.0.0.rc1)
|
59
|
+
activesupport (= 4.0.0.rc1)
|
60
|
+
bundler (>= 1.3.0, < 2.0)
|
61
|
+
railties (= 4.0.0.rc1)
|
62
|
+
sprockets-rails (~> 2.0.0.rc4)
|
63
|
+
railties (4.0.0.rc1)
|
64
|
+
actionpack (= 4.0.0.rc1)
|
65
|
+
activesupport (= 4.0.0.rc1)
|
66
|
+
rake (>= 0.8.7)
|
67
|
+
thor (>= 0.18.1, < 2.0)
|
68
|
+
rake (10.0.4)
|
69
|
+
rspec (2.13.0)
|
70
|
+
rspec-core (~> 2.13.0)
|
71
|
+
rspec-expectations (~> 2.13.0)
|
72
|
+
rspec-mocks (~> 2.13.0)
|
73
|
+
rspec-core (2.13.1)
|
74
|
+
rspec-expectations (2.13.0)
|
75
|
+
diff-lcs (>= 1.1.3, < 2.0)
|
76
|
+
rspec-mocks (2.13.1)
|
77
|
+
simplecov (0.7.1)
|
78
|
+
multi_json (~> 1.0)
|
79
|
+
simplecov-html (~> 0.7.1)
|
80
|
+
simplecov-html (0.7.1)
|
81
|
+
sprockets (2.9.3)
|
82
|
+
hike (~> 1.2)
|
83
|
+
multi_json (~> 1.0)
|
84
|
+
rack (~> 1.0)
|
85
|
+
tilt (~> 1.1, != 1.3.0)
|
86
|
+
sprockets-rails (2.0.0.rc4)
|
87
|
+
actionpack (>= 3.0)
|
88
|
+
activesupport (>= 3.0)
|
89
|
+
sprockets (~> 2.8)
|
90
|
+
thor (0.18.1)
|
91
|
+
thread_safe (0.1.0)
|
92
|
+
atomic
|
93
|
+
tilt (1.4.0)
|
94
|
+
treetop (1.4.12)
|
95
|
+
polyglot
|
96
|
+
polyglot (>= 0.3.1)
|
97
|
+
tzinfo (0.3.37)
|
98
|
+
|
99
|
+
PLATFORMS
|
100
|
+
ruby
|
101
|
+
|
102
|
+
DEPENDENCIES
|
103
|
+
appraisal
|
104
|
+
rails (= 4.0.0rc1)
|
105
|
+
rspec (>= 2.0.1)
|
106
|
+
semantic_navigation!
|
107
|
+
simplecov
|
data/lib/generators/semantic_navigation/breadcrumb_renderer/templates/breadcrumb_renderer.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
class Renderers::<%= class_name %>
|
2
|
-
#Default render helpers. Do not delete this if don't want to write your own.
|
3
|
-
include RenderHelpers
|
2
|
+
#Default render helpers. Do not delete this if don't want to write your own.
|
3
|
+
include SemanticNavigation::Renderers::MixIn::RenderHelpers
|
4
4
|
#The default list rendering logic. Do not delete if don't want to write your own.
|
5
|
-
include ActsAsBreadcrumb
|
5
|
+
include SemanticNavigation::Renderers::MixIn::ActsAsBreadcrumb
|
6
6
|
style_accessor :last_as_link => false,
|
7
7
|
:breadcrumb_separator => '/'
|
8
8
|
|
@@ -25,7 +25,7 @@ class Renderers::<%= class_name %>
|
|
25
25
|
navigation_default_classes ['<%= file_name %>']
|
26
26
|
node_default_classes ['<%= file_name %>']
|
27
27
|
leaf_default_classes ['<%= file_name %>']
|
28
|
-
link_default_classes ['<%= file_name %>']
|
28
|
+
link_default_classes ['<%= file_name %>']
|
29
29
|
|
30
30
|
private
|
31
31
|
|
@@ -59,4 +59,4 @@ class Renderers::<%= class_name %>
|
|
59
59
|
end
|
60
60
|
end
|
61
61
|
end
|
62
|
-
end
|
62
|
+
end
|