navigator 1.3.0 → 1.4.0
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 +4 -4
- data/README.md +37 -11
- data/app/helpers/navigator/navigation_helper.rb +1 -0
- data/lib/navigator/engine.rb +2 -1
- data/lib/navigator/identity.rb +3 -2
- data/lib/navigator/menu.rb +9 -11
- data/lib/navigator/tag.rb +5 -6
- data/lib/navigator/tag_activator.rb +1 -1
- data/lib/tasks/rspec.rake +6 -0
- data/lib/tasks/rubocop.rake +6 -0
- metadata +51 -30
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 901fe36b917fe74821492def2f73fdd4719be8cb
|
4
|
+
data.tar.gz: 00ad7dc0af942727f310e22cfc79a7275c228c53
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cdd19345525e161d78c063a0d12ffb090365381ca1982b6e007596d683697f64d195f1461570d59739b8d38ad59a2c8f4932cbf601ff4c26848225dace13108a
|
7
|
+
data.tar.gz: 08b0b6426e00689a7479c0ca29ffbb0b01f0134134b1acae72be1a38e68f0ca8daae9a272fb6dc7eb49324f16e234789edcdeb6bec8555dee79263ad6e9ed067
|
data/README.md
CHANGED
@@ -1,14 +1,40 @@
|
|
1
|
-
#
|
1
|
+
# Navigator
|
2
2
|
|
3
|
-
[](http://badge.fury.io/rb/navigator)
|
4
|
+
[](https://codeclimate.com/github/bkuhlmann/navigator)
|
5
|
+
[](https://codeclimate.com/github/bkuhlmann/navigator)
|
6
|
+
[](https://gemnasium.com/bkuhlmann/navigator)
|
7
|
+
[](https://travis-ci.org/bkuhlmann/navigator)
|
8
|
+
[](https://www.patreon.com/bkuhlmann)
|
9
9
|
|
10
10
|
Enhances Rails with a DSL for menu navigation.
|
11
11
|
|
12
|
+
<!-- Tocer[start]: Auto-generated, don't remove. -->
|
13
|
+
|
14
|
+
# Table of Contents
|
15
|
+
|
16
|
+
- [Features](#features)
|
17
|
+
- [Requirements](#requirements)
|
18
|
+
- [Setup](#setup)
|
19
|
+
- [Usage](#usage)
|
20
|
+
- [Unordered List (simple)](#unordered-list-simple)
|
21
|
+
- [Unordered List (with attributes)](#unordered-list-with-attributes)
|
22
|
+
- [Unordered List (with multiple data attributes)](#unordered-list-with-multiple-data-attributes)
|
23
|
+
- [Nav (with links)](#nav-with-links)
|
24
|
+
- [Foundation Menu](#foundation-menu)
|
25
|
+
- [Bootstrap Dropdown](#bootstrap-dropdown)
|
26
|
+
- [Menu Helpers](#menu-helpers)
|
27
|
+
- [Customization](#customization)
|
28
|
+
- [Tests](#tests)
|
29
|
+
- [Versioning](#versioning)
|
30
|
+
- [Code of Conduct](#code-of-conduct)
|
31
|
+
- [Contributions](#contributions)
|
32
|
+
- [License](#license)
|
33
|
+
- [History](#history)
|
34
|
+
- [Credits](#credits)
|
35
|
+
|
36
|
+
<!-- Tocer[finish]: Auto-generated, don't remove. -->
|
37
|
+
|
12
38
|
# Features
|
13
39
|
|
14
40
|
- Provides a DSL for building navigation menus.
|
@@ -42,7 +68,7 @@ Enhances Rails with a DSL for menu navigation.
|
|
42
68
|
|
43
69
|
# Requirements
|
44
70
|
|
45
|
-
0. [MRI 2.x.x](
|
71
|
+
0. [MRI 2.x.x](https://www.ruby-lang.org).
|
46
72
|
0. [Ruby on Rails 4.1.x](http://rubyonrails.org).
|
47
73
|
|
48
74
|
# Setup
|
@@ -238,13 +264,13 @@ When building links, the default is:
|
|
238
264
|
When building images, the default is:
|
239
265
|
|
240
266
|
navigation "nav", activator: activator do
|
241
|
-
img attributes: {src: "
|
267
|
+
img attributes: {src: "https://placehold.it/50x50", alt: "Example"}
|
242
268
|
end
|
243
269
|
|
244
270
|
...but can be written as:
|
245
271
|
|
246
272
|
navigation "nav", activator: activator do
|
247
|
-
image "
|
273
|
+
image "https://placehold.it/50x50", "Example"
|
248
274
|
end
|
249
275
|
|
250
276
|
When building menu items, the default is:
|
@@ -351,7 +377,7 @@ regular expression (i.e. `/^profile.+/`) matching one of the the `profile/*` pat
|
|
351
377
|
|
352
378
|
To test, run:
|
353
379
|
|
354
|
-
bundle exec
|
380
|
+
bundle exec rake
|
355
381
|
|
356
382
|
To test the dummy application, run:
|
357
383
|
|
@@ -1,4 +1,5 @@
|
|
1
1
|
module Navigator
|
2
|
+
# Navigation helper methods for the view layer.
|
2
3
|
module NavigationHelper
|
3
4
|
def navigation tag = "ul", attributes: {}, activator: navigation_activator, &block
|
4
5
|
raw Navigator::Menu.new(self, tag: tag, attributes: attributes, activator: activator, &block).render
|
data/lib/navigator/engine.rb
CHANGED
@@ -1,8 +1,9 @@
|
|
1
1
|
module Navigator
|
2
|
+
# The main engine.
|
2
3
|
class Engine < ::Rails::Engine
|
3
4
|
isolate_namespace Navigator
|
4
5
|
|
5
|
-
initializer "navigator.action_controller" do
|
6
|
+
initializer "navigator.action_controller" do
|
6
7
|
ActiveSupport.on_load :action_controller do
|
7
8
|
helper Navigator::Engine.helpers
|
8
9
|
end
|
data/lib/navigator/identity.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
module Navigator
|
2
|
+
# Gem identity information.
|
2
3
|
module Identity
|
3
4
|
def self.name
|
4
5
|
"navigator"
|
@@ -9,11 +10,11 @@ module Navigator
|
|
9
10
|
end
|
10
11
|
|
11
12
|
def self.version
|
12
|
-
"1.
|
13
|
+
"1.4.0"
|
13
14
|
end
|
14
15
|
|
15
16
|
def self.label_version
|
16
|
-
|
17
|
+
"#{label} #{version}"
|
17
18
|
end
|
18
19
|
end
|
19
20
|
end
|
data/lib/navigator/menu.rb
CHANGED
@@ -2,7 +2,7 @@ module Navigator
|
|
2
2
|
# Renders a HTML menu.
|
3
3
|
class Menu
|
4
4
|
def self.allowed_methods
|
5
|
-
|
5
|
+
/^(div|section|header|h[1-6]|nav|ul|li|a|img|b|em|s|small|span|strong|sub|sup|form|label|select|option|input|button)$/
|
6
6
|
end
|
7
7
|
|
8
8
|
def initialize template, tag: "ul", attributes: {}, activator: Navigator::TagActivator.new, &block
|
@@ -15,14 +15,12 @@ module Navigator
|
|
15
15
|
|
16
16
|
def add name, content = nil, attributes: {}, activator: menu_activator, &block
|
17
17
|
tag = Navigator::Tag.new name, content, attributes: attributes, activator: activator
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
items << tag.render
|
25
|
-
end
|
18
|
+
return items << tag.render unless block_given?
|
19
|
+
|
20
|
+
items << tag.prefix
|
21
|
+
items << tag.content
|
22
|
+
instance_eval(&block)
|
23
|
+
items << tag.suffix
|
26
24
|
end
|
27
25
|
|
28
26
|
def link content = nil, url, attributes: {}, activator: menu_activator, &block
|
@@ -58,7 +56,7 @@ module Navigator
|
|
58
56
|
end
|
59
57
|
|
60
58
|
def render
|
61
|
-
[tag.prefix, tag.content, items.compact.join(
|
59
|
+
[tag.prefix, tag.content, items.compact.join(""), tag.suffix].compact * ""
|
62
60
|
end
|
63
61
|
|
64
62
|
private
|
@@ -71,7 +69,7 @@ module Navigator
|
|
71
69
|
|
72
70
|
def activate_item_attributes! attributes, url, activator
|
73
71
|
return unless url == activator.search_value
|
74
|
-
attributes[activator.target_key] = [attributes[activator.target_key], activator.target_value].compact *
|
72
|
+
attributes[activator.target_key] = [attributes[activator.target_key], activator.target_value].compact * " "
|
75
73
|
end
|
76
74
|
end
|
77
75
|
end
|
data/lib/navigator/tag.rb
CHANGED
@@ -15,7 +15,7 @@ module Navigator
|
|
15
15
|
end
|
16
16
|
|
17
17
|
def prefix
|
18
|
-
["<#{name}", format_attributes,
|
18
|
+
["<#{name}", format_attributes, ">"].compact * ""
|
19
19
|
end
|
20
20
|
|
21
21
|
def computed_content
|
@@ -27,7 +27,7 @@ module Navigator
|
|
27
27
|
end
|
28
28
|
|
29
29
|
def render
|
30
|
-
[prefix, computed_content, suffix].compact *
|
30
|
+
[prefix, computed_content, suffix].compact * ""
|
31
31
|
end
|
32
32
|
|
33
33
|
private
|
@@ -35,13 +35,12 @@ module Navigator
|
|
35
35
|
attr_reader :attributes, :activator
|
36
36
|
|
37
37
|
def expand_data_attributes! attrs
|
38
|
-
|
39
|
-
|
40
|
-
end
|
38
|
+
return unless attrs.key? :data
|
39
|
+
attrs.delete(:data).each { |key, value| attrs["data-#{key}"] = value }
|
41
40
|
end
|
42
41
|
|
43
42
|
def concatenate_attributes attrs
|
44
|
-
activator.activate(attrs).map { |key, value| %(#{key}="#{value}") } *
|
43
|
+
activator.activate(attrs).map { |key, value| %(#{key}="#{value}") } * " "
|
45
44
|
end
|
46
45
|
|
47
46
|
def format_attributes
|
@@ -25,7 +25,7 @@ module Navigator
|
|
25
25
|
|
26
26
|
def activate attributes = {}
|
27
27
|
attributes = attributes.with_indifferent_access
|
28
|
-
attributes[target_key] = [attributes[target_key], target_value].compact.join(
|
28
|
+
attributes[target_key] = [attributes[target_key], target_value].compact.join(" ") if activatable? attributes
|
29
29
|
attributes
|
30
30
|
end
|
31
31
|
end
|
metadata
CHANGED
@@ -1,36 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: navigator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brooke Kuhlmann
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
|
-
cert_chain:
|
11
|
-
-
|
12
|
-
-----BEGIN CERTIFICATE-----
|
13
|
-
MIIDeDCCAmCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBBMQ8wDQYDVQQDDAZicm9v
|
14
|
-
a2UxGjAYBgoJkiaJk/IsZAEZFgphbGNoZW1pc3RzMRIwEAYKCZImiZPyLGQBGRYC
|
15
|
-
aW8wHhcNMTUwNzA1MTQ1MzExWhcNMTYwNzA0MTQ1MzExWjBBMQ8wDQYDVQQDDAZi
|
16
|
-
cm9va2UxGjAYBgoJkiaJk/IsZAEZFgphbGNoZW1pc3RzMRIwEAYKCZImiZPyLGQB
|
17
|
-
GRYCaW8wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzhOVcvLGBCceM
|
18
|
-
PppVpJLUKsnskWzc1VqBXmv30feKNw+MOxMQaDsIP421qwqGO/2JHY60Kuobssk+
|
19
|
-
8/wqZkVFF/FFKxoQjuhlhc+VWLm8jWgXd4N1kwO2yytscQTzxc5qXarwA+36fqVH
|
20
|
-
RhBAHhjka+HdBI+6o3CXRHJoC47iav+QpR7u/wYl3gNq6MJO3MmTKqHegEDLjRN0
|
21
|
-
FJAr3bRAwq03ZtTuAVA2bdKLGThehe1RRRtJHJ/PHpmL2c203/GTXYtG6C8ILZIp
|
22
|
-
ZroTqQ8yglCJ+3hSOmodZqSAQ0Rj7GJgtuNH81qlSrHu5sTvoZjGmEqSIhvsSJ80
|
23
|
-
wKoPdZnFAgMBAAGjezB5MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQW
|
24
|
-
BBSUnF478a5lB4xuOBiktJdMJv6JmDAfBgNVHREEGDAWgRRicm9va2VAYWxjaGVt
|
25
|
-
aXN0cy5pbzAfBgNVHRIEGDAWgRRicm9va2VAYWxjaGVtaXN0cy5pbzANBgkqhkiG
|
26
|
-
9w0BAQUFAAOCAQEAT7KtBXWsq1KA7NOSMeFEDeSvhrgdLwCG/37pIu0rjvx9iAW4
|
27
|
-
gncxV0MccqIUtaF+lekjlXkIO+rXAVjvdha23KtpFTW90dYXp4NLPnPlSdyvYzJy
|
28
|
-
FIAaWGvujOT8xEu4umd45q5aepE8li4bR071i5Z7F0trKNVYYrxjQFmH5SSKYRT/
|
29
|
-
fXtICtAh1de3z3SOSK58IMPwjuoApYBxiqlmx0Uhla7mrzCE5+NmLPit3hLH6JFK
|
30
|
-
aSif+qBc6oHD7EQWPF5cZkzkIURuwNwPBngZGxIKaMAgRhjGFXzUMAaq++r59cS9
|
31
|
-
xTfQ4k6fglKEgpnLAXiKdo2c8Ym+X4rIKFfedQ==
|
32
|
-
-----END CERTIFICATE-----
|
33
|
-
date: 2015-07-05 00:00:00.000000000 Z
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-12-02 00:00:00.000000000 Z
|
34
12
|
dependencies:
|
35
13
|
- !ruby/object:Gem::Dependency
|
36
14
|
name: rails
|
@@ -60,6 +38,20 @@ dependencies:
|
|
60
38
|
- - "~>"
|
61
39
|
- !ruby/object:Gem::Version
|
62
40
|
version: '10.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: gemsmith
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
63
55
|
- !ruby/object:Gem::Dependency
|
64
56
|
name: pry
|
65
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -89,7 +81,7 @@ dependencies:
|
|
89
81
|
- !ruby/object:Gem::Version
|
90
82
|
version: '0'
|
91
83
|
- !ruby/object:Gem::Dependency
|
92
|
-
name: pry-
|
84
|
+
name: pry-remote
|
93
85
|
requirement: !ruby/object:Gem::Requirement
|
94
86
|
requirements:
|
95
87
|
- - ">="
|
@@ -103,7 +95,7 @@ dependencies:
|
|
103
95
|
- !ruby/object:Gem::Version
|
104
96
|
version: '0'
|
105
97
|
- !ruby/object:Gem::Dependency
|
106
|
-
name: pry-
|
98
|
+
name: pry-state
|
107
99
|
requirement: !ruby/object:Gem::Requirement
|
108
100
|
requirements:
|
109
101
|
- - ">="
|
@@ -130,6 +122,20 @@ dependencies:
|
|
130
122
|
- - ">="
|
131
123
|
- !ruby/object:Gem::Version
|
132
124
|
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: pry-stack_explorer
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
133
139
|
- !ruby/object:Gem::Dependency
|
134
140
|
name: rspec-rails
|
135
141
|
requirement: !ruby/object:Gem::Requirement
|
@@ -214,6 +220,20 @@ dependencies:
|
|
214
220
|
- - ">="
|
215
221
|
- !ruby/object:Gem::Version
|
216
222
|
version: '0'
|
223
|
+
- !ruby/object:Gem::Dependency
|
224
|
+
name: rubocop
|
225
|
+
requirement: !ruby/object:Gem::Requirement
|
226
|
+
requirements:
|
227
|
+
- - ">="
|
228
|
+
- !ruby/object:Gem::Version
|
229
|
+
version: '0'
|
230
|
+
type: :development
|
231
|
+
prerelease: false
|
232
|
+
version_requirements: !ruby/object:Gem::Requirement
|
233
|
+
requirements:
|
234
|
+
- - ">="
|
235
|
+
- !ruby/object:Gem::Version
|
236
|
+
version: '0'
|
217
237
|
- !ruby/object:Gem::Dependency
|
218
238
|
name: codeclimate-test-reporter
|
219
239
|
requirement: !ruby/object:Gem::Requirement
|
@@ -228,8 +248,7 @@ dependencies:
|
|
228
248
|
- - ">="
|
229
249
|
- !ruby/object:Gem::Version
|
230
250
|
version: '0'
|
231
|
-
description: Enhances Rails with a DSL for menu navigation
|
232
|
-
nested tags, HTML attributes, etc.
|
251
|
+
description: Enhances Rails with a DSL for menu navigation.
|
233
252
|
email:
|
234
253
|
- brooke@alchemists.io
|
235
254
|
executables: []
|
@@ -247,6 +266,8 @@ files:
|
|
247
266
|
- lib/navigator/menu.rb
|
248
267
|
- lib/navigator/tag.rb
|
249
268
|
- lib/navigator/tag_activator.rb
|
269
|
+
- lib/tasks/rspec.rake
|
270
|
+
- lib/tasks/rubocop.rake
|
250
271
|
homepage: https://github.com/bkuhlmann/navigator
|
251
272
|
licenses:
|
252
273
|
- MIT
|
@@ -267,7 +288,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
267
288
|
version: '0'
|
268
289
|
requirements: []
|
269
290
|
rubyforge_project:
|
270
|
-
rubygems_version: 2.
|
291
|
+
rubygems_version: 2.5.0
|
271
292
|
signing_key:
|
272
293
|
specification_version: 4
|
273
294
|
summary: Enhances Rails with a DSL for menu navigation.
|
checksums.yaml.gz.sig
DELETED
Binary file
|
data.tar.gz.sig
DELETED
Binary file
|
metadata.gz.sig
DELETED
Binary file
|