fume-nav 0.0.3 → 0.1.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/.travis.yml +6 -4
- data/Gemfile +1 -1
- data/README.md +39 -25
- data/fume-nav.gemspec +2 -2
- data/gemfiles/{rails3_2.gemfile → rails4_2.gemfile} +1 -1
- data/gemfiles/rails5_0.gemfile +6 -0
- data/lib/fume/nav/nav_tag.rb +21 -10
- data/lib/fume/nav/version.rb +1 -1
- data/spec/fume/nav/nav_tag_spec.rb +5 -0
- metadata +9 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9673016d7ce66521de73be340874b04a36c79cab
|
4
|
+
data.tar.gz: edb83bfbe56e7b9d3b5468ef765ad50dae5b4aac
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d1f328118997150f97cc1586794b40ba3b47b8493d35886fbc8a15ae1105f2501129056dffecd9a0ed3b7aab0b6089044e6708e2fd260cfba2041e762d7fe7b2
|
7
|
+
data.tar.gz: 87f157b31b56338d2e52345d45e9a5fc2ce427e43c469e9f2781c6d98040490f215d35f1f76da270219e4c35b5e741688a7757b977309638094fd9dd21c524bf
|
data/.travis.yml
CHANGED
@@ -1,11 +1,13 @@
|
|
1
1
|
script: "bundle exec rake spec"
|
2
2
|
rvm:
|
3
|
-
- 2.
|
4
|
-
- 2.
|
3
|
+
- 2.4
|
4
|
+
- 2.3
|
5
|
+
- 2.2
|
5
6
|
|
6
7
|
gemfile:
|
7
8
|
- Gemfile
|
8
|
-
- gemfiles/
|
9
|
+
- gemfiles/rails4_2.gemfile
|
10
|
+
- gemfiles/rails5_0.gemfile
|
9
11
|
|
10
12
|
before_install:
|
11
|
-
- gem install bundler
|
13
|
+
- gem install bundler
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -19,49 +19,63 @@ gem 'fume-nav'
|
|
19
19
|
|
20
20
|
view.erb
|
21
21
|
|
22
|
-
|
22
|
+
```rb
|
23
23
|
<% @current = :edit %>
|
24
24
|
<%= fume_nav @current do |n| %>
|
25
25
|
<ul>
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
26
|
+
<%= n.li_tag :show do %>
|
27
|
+
<%= link_to 'show', link_path(@link) %>
|
28
|
+
<% end %>
|
29
|
+
<%= n.li_tag :edit do %>
|
30
|
+
<%= link_to 'edit', edit_link_path(@link) %>
|
31
|
+
<% end %>
|
32
32
|
</ul>
|
33
33
|
<% end %>
|
34
|
-
|
34
|
+
|
35
|
+
<%= fume_nav @current do |n| %>
|
36
|
+
<div class="dropdown">
|
37
|
+
<%= n.link_to :show, "link_1", root_path, class: "link" %>
|
38
|
+
<%= n.apply :edit do |cls| %>
|
39
|
+
<%= link_to "link_2", root_path, class: "link #{cls}" %>
|
40
|
+
<% end %>
|
41
|
+
</div>
|
42
|
+
<% end %>
|
43
|
+
```
|
35
44
|
|
36
45
|
output:
|
37
46
|
|
38
|
-
|
47
|
+
```html
|
39
48
|
<ul>
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
49
|
+
<li>
|
50
|
+
<a href="/links/1">show</a>
|
51
|
+
</li>
|
52
|
+
<li class="active">
|
53
|
+
<a href="/links/1/edit">edit</a>
|
54
|
+
</li>
|
46
55
|
</ul>
|
47
|
-
|
56
|
+
|
57
|
+
<div class="dropdown">
|
58
|
+
<a class="link active" href="/">link_1</a>
|
59
|
+
<a class="link " href="/">link_2</a>
|
60
|
+
</div>
|
61
|
+
```
|
48
62
|
|
49
63
|
### Options
|
50
64
|
|
51
|
-
|
65
|
+
```erb
|
52
66
|
<%= fume_nav(current_value, options) do |n| %>
|
53
|
-
|
67
|
+
// OOXX
|
54
68
|
<% end %>
|
55
|
-
|
69
|
+
```
|
56
70
|
|
57
71
|
OPTIONS:
|
58
72
|
<table>
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
73
|
+
<tr>
|
74
|
+
<td>active_class</td><td>the current active item class, default: 'active'</td>
|
75
|
+
</tr>
|
76
|
+
<tr>
|
77
|
+
<td>hide_if_empty</td><td>don't output content html if not exist any subitem, default: true</td>
|
78
|
+
</tr>
|
65
79
|
</table>
|
66
80
|
|
67
81
|
|
data/fume-nav.gemspec
CHANGED
@@ -21,8 +21,8 @@ Gem::Specification.new do |spec|
|
|
21
21
|
spec.add_dependency "rails"
|
22
22
|
|
23
23
|
spec.add_development_dependency "bundler", "~> 1.7"
|
24
|
-
spec.add_development_dependency "rake", "~>
|
24
|
+
spec.add_development_dependency "rake", "~> 12.0"
|
25
25
|
|
26
|
-
spec.add_development_dependency "rspec", "~> 3.
|
26
|
+
spec.add_development_dependency "rspec", "~> 3.6.0"
|
27
27
|
spec.add_development_dependency "pry-byebug"
|
28
28
|
end
|
data/lib/fume/nav/nav_tag.rb
CHANGED
@@ -18,29 +18,40 @@ module Fume
|
|
18
18
|
content_tag(value, :li, options, &block)
|
19
19
|
end
|
20
20
|
|
21
|
+
def link_to(value, *args, &block)
|
22
|
+
options = args.extract_options!
|
23
|
+
apply_active_options(value, options)
|
24
|
+
helper.link_to(*args, options, &block)
|
25
|
+
end
|
26
|
+
|
21
27
|
def content_tag(value, tag_name, options = {}, &block)
|
22
28
|
apply_active_options(value, options)
|
23
29
|
helper.content_tag(tag_name, options, &block)
|
24
30
|
end
|
25
31
|
|
26
32
|
def apply_active_options(value, options)
|
27
|
-
|
28
|
-
when Regexp
|
29
|
-
value.match(current)
|
30
|
-
else
|
31
|
-
value.to_s == current.to_s
|
32
|
-
end
|
33
|
-
|
34
|
-
if match
|
33
|
+
apply(value) do |cls|
|
35
34
|
if options[:class]
|
36
|
-
options[:class] += " #{
|
35
|
+
options[:class] += " #{cls}"
|
37
36
|
else
|
38
|
-
options[:class] = "#{
|
37
|
+
options[:class] = "#{cls}"
|
39
38
|
end
|
40
39
|
end
|
41
40
|
|
42
41
|
@empty = false
|
43
42
|
end
|
43
|
+
|
44
|
+
def apply(value, &block)
|
45
|
+
result = case value
|
46
|
+
when Regexp
|
47
|
+
value.match(current)
|
48
|
+
else
|
49
|
+
value.to_s == current.to_s
|
50
|
+
end
|
51
|
+
|
52
|
+
block.call(active_class) if result && block
|
53
|
+
result
|
54
|
+
end
|
44
55
|
end
|
45
56
|
end
|
46
57
|
end
|
data/lib/fume/nav/version.rb
CHANGED
@@ -24,4 +24,9 @@ RSpec.describe Fume::Nav::NavTag do
|
|
24
24
|
it { subject.li_tag(:not_match) }
|
25
25
|
end
|
26
26
|
end
|
27
|
+
|
28
|
+
describe "#link_to" do
|
29
|
+
before { expect(context).to receive(:link_to).with("TEXT", [:root], hash_excluding(class: "active")) }
|
30
|
+
it { subject.link_to :foo, "TEXT", [:root] }
|
31
|
+
end
|
27
32
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fume-nav
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- sunteya
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-06-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -44,28 +44,28 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '12.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
|
-
version: '
|
54
|
+
version: '12.0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rspec
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 3.
|
61
|
+
version: 3.6.0
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: 3.
|
68
|
+
version: 3.6.0
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: pry-byebug
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -95,7 +95,8 @@ files:
|
|
95
95
|
- README.md
|
96
96
|
- Rakefile
|
97
97
|
- fume-nav.gemspec
|
98
|
-
- gemfiles/
|
98
|
+
- gemfiles/rails4_2.gemfile
|
99
|
+
- gemfiles/rails5_0.gemfile
|
99
100
|
- lib/fume/nav.rb
|
100
101
|
- lib/fume/nav/helper_ext.rb
|
101
102
|
- lib/fume/nav/nav_tag.rb
|
@@ -124,7 +125,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
124
125
|
version: '0'
|
125
126
|
requirements: []
|
126
127
|
rubyforge_project:
|
127
|
-
rubygems_version: 2.
|
128
|
+
rubygems_version: 2.5.2
|
128
129
|
signing_key:
|
129
130
|
specification_version: 4
|
130
131
|
summary: help build navigation for rails.
|