semantic_navigation 0.1.8 → 0.1.9

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.
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