semantic_navigation 0.1.8 → 0.1.9

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- NjJkZDMyMDczZDgxODNiNDcyZGI3OWFhZGIwNzZiNjE4NjFmMDI3NQ==
5
- data.tar.gz: !binary |-
6
- NjZjZTlhZDU3MTE0MTZjMTlkMDc2MjljMjU2M2E1MGYwMmVjYWQwYw==
2
+ SHA1:
3
+ metadata.gz: abaa34622db084f42353e8bd203fc9a8033dc5bb
4
+ data.tar.gz: a03e0dd5a7cacb1051566512b85a61a40ee39909
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- ZTVjYTY1ZGE1OTE0YmVkMjA3YzM0ZDVmNmNmYTY4ODQ2YjcxYmJjZjNlMjI5
10
- ZTliNjFjZDEyODA0YTkzNDU5ZDQ3M2VlMjU0NWVlYWM3YjI3MDVmNDk3ZmY4
11
- YWVkNTg5MmRiMzc3MWRmMjQ5NTcxZTQwZjU3MGQwOWIxNDZhYTE=
12
- data.tar.gz: !binary |-
13
- ZDE1MTRlY2M1ZjBiYjdjM2I0NGYwYzE1NGI0Nzg0NmNkNzk5ZjYzOGJjNzYx
14
- MTUxOWI4OTg3MzE4MTdmYmU2ZGRlNGU0OGJkYmU1MGY0Mjg3ZTg1MWYxNTAw
15
- Yjk3ZTJhOTJjMTQ3YzE0Nzg1ODE5MDY0NGQ5MDFiZWE1MmNlNmI=
6
+ metadata.gz: 1d9059d2ce1e114d204295bde77b555c2be3fe27b527d105fbc66454fed87212057f88499fb1963ec85964c68f11e296ac4c64ad26f43a7032b595d7e0dbc51b
7
+ data.tar.gz: 9f0a9ad6f392626b0a4e6ef11f8082821351ce019ea5f84f0fab314f7e14ba6d2e345e13f04b2e80c75339c2415f4e8243a63bcd673b8d2da6f14bfd9ae9924b
@@ -1,6 +1,8 @@
1
1
  module SemanticNavigation
2
2
  class Configuration
3
3
 
4
+ @@bootstrap_version = 2
5
+
4
6
  @@navigations = {}
5
7
  @@renderers = {}
6
8
  @@render_styles = {}
@@ -63,5 +65,13 @@ module SemanticNavigation
63
65
  @@navigations[name]
64
66
  end
65
67
 
68
+ def self.bootstrap_version(version=nil)
69
+ if version
70
+ @@bootstrap_version = version
71
+ else
72
+ @@bootstrap_version
73
+ end
74
+ end
75
+
66
76
  end
67
77
  end
@@ -11,10 +11,16 @@ module SemanticNavigation
11
11
  conf = SemanticNavigation::Configuration
12
12
  conf.register_renderer :list, Renderers::List
13
13
  conf.register_renderer :breadcrumb, Renderers::BreadCrumb
14
- conf.register_renderer :bootstrap_breadcrumb, TwitterBootstrap::Breadcrumb
15
- conf.register_renderer :bootstrap_list, TwitterBootstrap::List
16
- conf.register_renderer :bootstrap_tabs, TwitterBootstrap::Tabs
17
- conf.register_renderer :bootstrap_pills, TwitterBootstrap::Tabs
14
+ end
15
+
16
+ def self.register_bootstrap_renderers
17
+ conf = SemanticNavigation::Configuration
18
+ namespace = conf.bootstrap_version == 2 ? TwitterBootstrap : TwitterBootstrap3
19
+ conf.register_renderer :bootstrap_breadcrumb, namespace::Breadcrumb
20
+ conf.register_renderer :bootstrap_list, namespace::List
21
+ conf.register_renderer :bootstrap_tabs, namespace::Tabs
22
+ conf.register_renderer :bootstrap_pills, namespace::Tabs
23
+
18
24
  conf.register_renderer :bootstrap_simple_nav, SemanticNavigation::Renderers::List
19
25
 
20
26
  conf.styles_for :bootstrap_pills do
@@ -25,15 +31,17 @@ module SemanticNavigation
25
31
  end
26
32
  end
27
33
 
28
- if Rails.env == "production"
29
- config.after_initialize {
30
- load SemanticNavigation.actual_config_location
31
- }
32
- else
33
- ActionDispatch::Callbacks.before {
34
- load SemanticNavigation.actual_config_location
35
- }
36
- end
34
+ if Rails.env == "production"
35
+ config.after_initialize {
36
+ load SemanticNavigation.actual_config_location
37
+ SemanticNavigation::Railtie.register_bootstrap_renderers
38
+ }
39
+ else
40
+ ActionDispatch::Callbacks.before {
41
+ load SemanticNavigation.actual_config_location
42
+ SemanticNavigation::Railtie.register_bootstrap_renderers
43
+ }
44
+ end
37
45
 
38
46
  end
39
47
  end
@@ -10,6 +10,9 @@ renderers/bread_crumb
10
10
  twitter_bootstrap/breadcrumb
11
11
  twitter_bootstrap/list
12
12
  twitter_bootstrap/tabs
13
+ twitter_bootstrap_3/breadcrumb
14
+ twitter_bootstrap_3/list
15
+ twitter_bootstrap_3/tabs
13
16
  ).each do |file|
14
17
  require "semantic_navigation/#{file}"
15
18
  end
@@ -0,0 +1,66 @@
1
+ module SemanticNavigation
2
+ module TwitterBootstrap3
3
+ class Breadcrumb
4
+ include SemanticNavigation::Renderers::MixIn::RenderHelpers
5
+ include SemanticNavigation::Renderers::MixIn::ActsAsBreadcrumb
6
+
7
+ style_accessor last_as_link: false,
8
+ breadcrumb_separator: '/'
9
+
10
+ navigation_default_classes [:breadcrumb]
11
+
12
+ show_navigation_active_class false
13
+ show_node_active_class false
14
+ show_leaf_active_class false
15
+ show_link_active_class false
16
+ show_navigation_id false
17
+ show_node_id false
18
+ show_leaf_id false
19
+ show_link_id false
20
+
21
+ property_for :base, :ico
22
+
23
+ private
24
+
25
+ def navigation(object)
26
+ content_tag :ol, nil, {id: show_id(:navigation, object.id),
27
+ class: merge_classes(:navigation, object.active, object.classes)
28
+ }.merge(object.html) do
29
+ yield
30
+ end
31
+ end
32
+
33
+ def node(object)
34
+ content_tag(:li, nil, {id: show_id(:leaf, object.id),
35
+ class: merge_classes(:leaf, object.active, object.classes)
36
+ }.merge(object.html)) do
37
+ [object.ico ? content_tag(:i, nil, class: "icon-#{object.ico}") : ''.html_safe,
38
+ link_to(object_name(object),
39
+ object.url,
40
+ {id: show_id(:link, object.id),
41
+ class: merge_classes(:link, object.active, object.link_classes)
42
+ }.merge(object.link_html))].sum
43
+ end +
44
+ yield
45
+ end
46
+
47
+ def leaf(object)
48
+ content_tag :li, nil, {id: show_id(:leaf, object.id),
49
+ class: merge_classes(:leaf, object.active, object.classes)
50
+ }.merge(object.html) do
51
+ [object.ico ? content_tag(:i, nil, class: "icon-#{object.ico}") : ''.html_safe,
52
+ if last_as_link
53
+ link_to(object_name(object),
54
+ object.url,
55
+ {id: show_id(:link, object.id),
56
+ class: merge_classes(:link, object.active, object.link_classes)
57
+ }.merge(object.link_html))
58
+ else
59
+ object_name(object)
60
+ end].sum
61
+ end
62
+ end
63
+
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,87 @@
1
+ module SemanticNavigation
2
+ module TwitterBootstrap3
3
+ class List
4
+ include SemanticNavigation::Renderers::MixIn::RenderHelpers
5
+ include SemanticNavigation::Renderers::MixIn::ActsAsList
6
+
7
+ navigation_default_classes [:nav, 'navbar-nav']
8
+ node_default_classes ['dropdown-menu']
9
+ show_navigation_id false
10
+ show_node_id false
11
+ show_leaf_id false
12
+ show_link_id false
13
+
14
+ property_for :base, :ico
15
+
16
+ private
17
+
18
+ def navigation(object)
19
+ content_tag :ul, nil, {id: show_id(:navigation, object.id),
20
+ class: merge_classes(:navigation, object.active, object.classes)
21
+ }.merge(object.html) do
22
+ yield
23
+ end
24
+ end
25
+
26
+ def node(object)
27
+ if object.ico
28
+ name = [content_tag(:i,nil, class: "icon-#{object.ico}"),
29
+ object_name(object),
30
+ content_tag(:span, nil, class: 'caret')].sum
31
+ else
32
+ name = [object_name(object),
33
+ content_tag(:span, nil, class: 'caret')].sum
34
+ end
35
+
36
+ content_tag :li, nil, {id: show_id(:leaf, object.id),
37
+ class: merge_classes(:leaf, object.active, [*object.classes, 'dropdown'])
38
+ }.merge(object.html) do
39
+ link_to(name.html_safe, object.url,
40
+ {id: show_id(:link, object.id),
41
+ class: merge_classes(:link, object.active, [*object.link_classes, 'dropdown-toggle']),
42
+ 'data-toggle' => 'dropdown'
43
+ }.merge(object.link_html)) +
44
+ yield
45
+ end
46
+ end
47
+
48
+ def node_content(object)
49
+ content_tag(:ul, nil, {id: show_id(:node, object.id),
50
+ class: merge_classes(:node, object.active, object.node_classes)
51
+ }.merge(object.node_html)) do
52
+ yield
53
+ end
54
+ end
55
+
56
+ def leaf(object)
57
+ if object_name(object).empty? && object.url.nil?
58
+ classes = 'divider'
59
+ elsif object.url.nil?
60
+ classes = 'nav-header'
61
+ else
62
+ classes = merge_classes(:leaf, object.active, object.classes)
63
+ end
64
+
65
+ if object.ico
66
+ name = [content_tag(:i,nil,class: "icon-#{object.ico}"),
67
+ object_name(object)].sum
68
+ else
69
+ name = object_name(object)
70
+ end
71
+
72
+ content_tag :li, nil, {id: show_id(:leaf, object.id),
73
+ class: classes
74
+ }.merge(object.html) do
75
+ if object.url.nil?
76
+ name
77
+ else
78
+ link_to name, object.url, {id: show_id(:link, object.id),
79
+ class: merge_classes(:link, object.active, object.link_classes)
80
+ }.merge(object.link_html)
81
+ end
82
+ end
83
+ end
84
+
85
+ end
86
+ end
87
+ end
@@ -0,0 +1,76 @@
1
+ module SemanticNavigation
2
+ module TwitterBootstrap3
3
+ class Tabs
4
+ include SemanticNavigation::Renderers::MixIn::RenderHelpers
5
+ include SemanticNavigation::Renderers::MixIn::ActsAsList
6
+
7
+ style_accessor direction: 'left'
8
+
9
+ navigation_default_classes [:nav, 'nav-tabs']
10
+ show_navigation_id false
11
+ show_node_id false
12
+ show_leaf_id false
13
+ show_link_id false
14
+
15
+ property_for :base, :ico
16
+
17
+ private
18
+
19
+ def navigation(object)
20
+ content_tag :ul, nil, {id: show_id(:navigation, object.id),
21
+ class: merge_classes(:navigation, object.active, [object.classes,"pull-#{direction}"])
22
+ }.merge(object.html) do
23
+ yield
24
+ end
25
+ end
26
+
27
+ def node(object)
28
+ content_tag :li, nil, {id: show_id(:leaf, object.id),
29
+ class: merge_classes(:leaf, object.active, [object.classes,'dropdown'].flatten)
30
+ }.merge(object.html) do
31
+ content_tag(:a, {:href => '#',
32
+ id: show_id(:link, object.id),
33
+ class: merge_classes(:link, object.active, [object.link_classes,'dropdown-toggle'].flatten),
34
+ 'data-toggle'=> :dropdown
35
+ }.merge(object.link_html)) do
36
+ [object.ico ? content_tag(:i,nil,class: "icon-#{object.ico}") : '',
37
+ object_name(object),
38
+ content_tag(:b,nil,class: :caret)
39
+ ].sum.html_safe
40
+ end +
41
+ yield
42
+ end
43
+ end
44
+
45
+ def node_content(object)
46
+ content_tag(:ul, nil, {id: show_id(:node, object.id),
47
+ class: merge_classes(:node, false, [object.node_classes,'dropdown-menu'].flatten)
48
+ }.merge(object.node_html)) do
49
+ yield
50
+ end
51
+ end
52
+
53
+ def leaf(object)
54
+ if object.ico
55
+ name = [content_tag(:i,nil,class: "icon-#{object.ico}"),
56
+ object_name(object)].sum
57
+ else
58
+ name = object_name(object)
59
+ end
60
+
61
+ content_tag :li, nil, {id: show_id(:leaf, object.id),
62
+ class: merge_classes(:leaf, object.active, object.classes)
63
+ }.merge(object.html) do
64
+ if object.url.nil?
65
+ name
66
+ else
67
+ link_to name, object.url, {id: show_id(:link, object.id),
68
+ class: merge_classes(:link, object.active, object.link_classes)
69
+ }.merge(object.link_html)
70
+ end
71
+ end
72
+ end
73
+
74
+ end
75
+ end
76
+ end
@@ -1,3 +1,3 @@
1
1
  module SemanticNavigation
2
- VERSION = "0.1.8"
2
+ VERSION = "0.1.9"
3
3
  end
metadata CHANGED
@@ -1,82 +1,83 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: semantic_navigation
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.8
4
+ version: 0.1.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sergey Gribovski
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-08 00:00:00.000000000 Z
11
+ date: 2014-09-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ! '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: 2.0.1
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ! '>='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: 2.0.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: simplecov
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ! '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ! '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: appraisal
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ! '>='
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ! '>='
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rails
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ! '>='
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: 3.2.0
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ! '>='
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: 3.2.0
69
- description: ! "Simply and customizable navigation in the Ruby on Rails 3 application.\n
70
- \ Predefined bootstrap renderers"
69
+ description: |-
70
+ Simply and customizable navigation in the Ruby on Rails 3 application.
71
+ Predefined bootstrap renderers
71
72
  email:
72
73
  - megacoder@rambler.ru
73
74
  executables: []
74
75
  extensions: []
75
76
  extra_rdoc_files: []
76
77
  files:
77
- - .editorconfig
78
- - .gitignore
79
- - .travis.yml
78
+ - ".editorconfig"
79
+ - ".gitignore"
80
+ - ".travis.yml"
80
81
  - Appraisals
81
82
  - Changelog.md
82
83
  - Gemfile
@@ -120,6 +121,9 @@ files:
120
121
  - lib/semantic_navigation/twitter_bootstrap/breadcrumb.rb
121
122
  - lib/semantic_navigation/twitter_bootstrap/list.rb
122
123
  - lib/semantic_navigation/twitter_bootstrap/tabs.rb
124
+ - lib/semantic_navigation/twitter_bootstrap_3/breadcrumb.rb
125
+ - lib/semantic_navigation/twitter_bootstrap_3/list.rb
126
+ - lib/semantic_navigation/twitter_bootstrap_3/tabs.rb
123
127
  - lib/semantic_navigation/version.rb
124
128
  - semantic_navigation.gemspec
125
129
  - spec/lib/semantic_navigation/configuration_spec.rb
@@ -144,17 +148,17 @@ require_paths:
144
148
  - lib
145
149
  required_ruby_version: !ruby/object:Gem::Requirement
146
150
  requirements:
147
- - - ! '>='
151
+ - - ">="
148
152
  - !ruby/object:Gem::Version
149
153
  version: '0'
150
154
  required_rubygems_version: !ruby/object:Gem::Requirement
151
155
  requirements:
152
- - - ! '>='
156
+ - - ">="
153
157
  - !ruby/object:Gem::Version
154
158
  version: '0'
155
159
  requirements: []
156
160
  rubyforge_project: semantic_navigation
157
- rubygems_version: 2.1.9
161
+ rubygems_version: 2.2.2
158
162
  signing_key:
159
163
  specification_version: 4
160
164
  summary: Make the navigation in your Rails app by several lines