gretel 3.0.7 → 3.0.8
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 +1 -0
- data/CHANGELOG.md +3 -0
- data/README.md +5 -22
- data/lib/gretel/crumb.rb +9 -0
- data/lib/gretel/version.rb +1 -1
- data/lib/gretel/view_helpers.rb +0 -4
- data/test/dummy/config/breadcrumbs/test_crumbs.rb +5 -0
- data/test/helper_methods_test.rb +7 -0
- metadata +11 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f6ea439e9c5de59ad623d0f2f90affb3ec5a4815
|
4
|
+
data.tar.gz: d95784f691b047b1dd58f324eecdc8157beb78b0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0f2e1c8b30834d532aaa245ab4aba2b01738712108ae7f00ce990db684c9a4821d7da21ce90ca8abdbc7e1eccecbcd6836ae19e0b9a014b6d2a49fb3ebb00cb8
|
7
|
+
data.tar.gz: 7c6975eb29de22545495a7e990970527b5794876ec360c8b776a1b26b2a2c57b82bf66deb55984b06cbf0f46213279edb59a774be3e552d2d2c2abb2ff407473
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## Version 3.0.8
|
4
|
+
* Parent breadcrumbs can now also be inferred from models responding to `model_name`.
|
5
|
+
|
3
6
|
## Version 3.0.7
|
4
7
|
* Pretext and posttext classes are now customizable with `<%= breadcrumbs pretext_class: "some-class" %>` and `<%= breadcrumbs posttext_class: "some-other-class" %>`.
|
5
8
|
|
data/README.md
CHANGED
@@ -8,23 +8,6 @@ Gretel also supports [semantic breadcrumbs](http://support.google.com/webmasters
|
|
8
8
|
|
9
9
|
Have fun! And please do write, if you (dis)like it – [lassebunk@gmail.com](mailto:lassebunk@gmail.com).
|
10
10
|
|
11
|
-
## New in version 3.0
|
12
|
-
|
13
|
-
* Breadcrumbs can now be rendered in different styles like ul- and ol lists, and for use with the [Twitter Bootstrap](http://getbootstrap.com/) framework. See the `:style` option below for more info.
|
14
|
-
* Defining breadcrumbs using `Gretel::Crumbs.layout do ... end` in an initializer has been removed. See below for details on how to upgrade.
|
15
|
-
* The `:show_root_alone` option is now called `:display_single_fragment` and can be used to hide the breadcrumbs when there is only one link, also if it is not the root breadcrumb.
|
16
|
-
The old `:show_root_alone` option is still supported until Gretel version 4.0 and will show a deprecation warning when it's used.
|
17
|
-
* Links yielded from `<%= breadcrumbs do |links| %>` now have a `current?` helper that returns true if the link is the last in the trail.
|
18
|
-
* New view helper: `parent_breadcrumb` returns the parent breadcrumb link (with `#key`, `#text`, and `#url`). This can for example be used to create a dynamic back link.
|
19
|
-
You can supply options like `:autoroot` etc.
|
20
|
-
If you supply a block, it will yield the parent breadcrumb if it is present.
|
21
|
-
* Breadcrumbs can now be inferred if you pass in an instance of an object that responds to `model_name` (like an ActiveRecord model instance). E.g. `breadcrumb @product` is short for `breadcrumb :product, @product`.
|
22
|
-
|
23
|
-
|
24
|
-
I hope you find these changes as useful as I did – if you have more suggestions, please create an [Issue](https://github.com/lassebunk/gretel/issues) or [Pull Request](https://github.com/lassebunk/gretel/pulls).
|
25
|
-
|
26
|
-
See below for more info or the [changelog](https://github.com/lassebunk/gretel/blob/master/CHANGELOG.md) for less significant changes.
|
27
|
-
|
28
11
|
## Installation
|
29
12
|
|
30
13
|
In your *Gemfile*:
|
@@ -84,7 +67,7 @@ This will generate the following HTML (indented for readability):
|
|
84
67
|
|
85
68
|
```html
|
86
69
|
<div class="breadcrumbs">
|
87
|
-
You are here
|
70
|
+
<span class="pretext">You are here:</span>
|
88
71
|
<a href="/">Home</a> ›
|
89
72
|
<a href="/issues">All issues</a> ›
|
90
73
|
<span class="current">My Issue</span>
|
@@ -147,7 +130,7 @@ end
|
|
147
130
|
# Parent crumbs
|
148
131
|
crumb :project_issues do |project|
|
149
132
|
link "Issues", project_issues_path(project)
|
150
|
-
parent
|
133
|
+
parent project # inferred to :project
|
151
134
|
end
|
152
135
|
|
153
136
|
# Child
|
@@ -160,7 +143,7 @@ end
|
|
160
143
|
crumb :category do |category|
|
161
144
|
link category.name, category
|
162
145
|
if category.parent
|
163
|
-
parent
|
146
|
+
parent category.parent # inferred to :category
|
164
147
|
else
|
165
148
|
parent :categories
|
166
149
|
end
|
@@ -169,7 +152,7 @@ end
|
|
169
152
|
# Product crumb with recursive parent categories (as defined above)
|
170
153
|
crumb :product do |product|
|
171
154
|
link product.name, product
|
172
|
-
parent
|
155
|
+
parent product.category # inferred to :category
|
173
156
|
end
|
174
157
|
|
175
158
|
# Crumb with multiple links
|
@@ -190,7 +173,7 @@ crumb :product do |product|
|
|
190
173
|
if keyword = params[:q].presence
|
191
174
|
parent :search, keyword
|
192
175
|
else # default
|
193
|
-
parent
|
176
|
+
parent product.category # inferred to :category
|
194
177
|
end
|
195
178
|
end
|
196
179
|
|
data/lib/gretel/crumb.rb
CHANGED
@@ -3,6 +3,12 @@ module Gretel
|
|
3
3
|
# Initializes a new crumb from the given +key+.
|
4
4
|
# It finds the breadcrumb created in +Gretel::Crumbs.layout+ and renders the block using the arguments supplied in +args+.
|
5
5
|
def initialize(context, key, *args)
|
6
|
+
if key.class.respond_to?(:model_name)
|
7
|
+
# Enables calling `breadcrumb @product` instead of `breadcrumb :product, @product`
|
8
|
+
args.unshift key
|
9
|
+
key = key.class.model_name.to_s.underscore.to_sym
|
10
|
+
end
|
11
|
+
|
6
12
|
block = Gretel::Crumbs.crumbs[key]
|
7
13
|
raise ArgumentError, "Breadcrumb :#{key} not found." unless block
|
8
14
|
@key = key
|
@@ -38,6 +44,9 @@ module Gretel
|
|
38
44
|
#
|
39
45
|
# Example:
|
40
46
|
# parent :category, category
|
47
|
+
#
|
48
|
+
# Or short, which will infer the key from the model's `model_name`:
|
49
|
+
# parent category
|
41
50
|
def parent(*args)
|
42
51
|
return @parent if args.empty?
|
43
52
|
key = args.shift
|
data/lib/gretel/version.rb
CHANGED
data/lib/gretel/view_helpers.rb
CHANGED
@@ -10,10 +10,6 @@ module Gretel
|
|
10
10
|
def breadcrumb(key = nil, *args)
|
11
11
|
if key.nil? || key.is_a?(Hash)
|
12
12
|
raise ArgumentError, "The `breadcrumb` method was called with #{key.inspect} as the key. This method is used to set the breadcrumb. Maybe you meant to call the `breadcrumbs` method (with an 's' in the end) which is used to render the breadcrumbs?"
|
13
|
-
elsif key.class.respond_to?(:model_name)
|
14
|
-
# Enables calling `breadcrumb @product` instead of `breadcrumb :product, @product`
|
15
|
-
args.unshift key
|
16
|
-
key = key.class.model_name.to_s.underscore.to_sym
|
17
13
|
end
|
18
14
|
@_gretel_renderer = Gretel::Renderer.new(self, key, *args)
|
19
15
|
end
|
data/test/helper_methods_test.rb
CHANGED
@@ -318,6 +318,13 @@ class HelperMethodsTest < ActionView::TestCase
|
|
318
318
|
breadcrumbs.to_s
|
319
319
|
end
|
320
320
|
|
321
|
+
test "inferred parent" do
|
322
|
+
breadcrumb :with_inferred_parent
|
323
|
+
|
324
|
+
assert_dom_equal %{<div class="breadcrumbs"><a href="/">Home</a> › <a href="/projects/1">Test Project</a> › <span class="current">Test</span></div>},
|
325
|
+
breadcrumbs.to_s
|
326
|
+
end
|
327
|
+
|
321
328
|
# Styles
|
322
329
|
|
323
330
|
test "default style" do
|
metadata
CHANGED
@@ -1,41 +1,41 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gretel
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.
|
4
|
+
version: 3.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lasse Bunk
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-08-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 3.2.0
|
20
20
|
type: :runtime
|
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: 3.2.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: sqlite3
|
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
|
description: Gretel is a Ruby on Rails plugin that makes it easy yet flexible to create
|
@@ -46,8 +46,8 @@ executables: []
|
|
46
46
|
extensions: []
|
47
47
|
extra_rdoc_files: []
|
48
48
|
files:
|
49
|
-
- .gitignore
|
50
|
-
- .travis.yml
|
49
|
+
- ".gitignore"
|
50
|
+
- ".travis.yml"
|
51
51
|
- CHANGELOG.md
|
52
52
|
- Gemfile
|
53
53
|
- LICENSE.txt
|
@@ -127,17 +127,17 @@ require_paths:
|
|
127
127
|
- lib
|
128
128
|
required_ruby_version: !ruby/object:Gem::Requirement
|
129
129
|
requirements:
|
130
|
-
- -
|
130
|
+
- - ">="
|
131
131
|
- !ruby/object:Gem::Version
|
132
132
|
version: '0'
|
133
133
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
134
134
|
requirements:
|
135
|
-
- -
|
135
|
+
- - ">="
|
136
136
|
- !ruby/object:Gem::Version
|
137
137
|
version: '0'
|
138
138
|
requirements: []
|
139
139
|
rubyforge_project:
|
140
|
-
rubygems_version: 2.
|
140
|
+
rubygems_version: 2.2.2
|
141
141
|
signing_key:
|
142
142
|
specification_version: 4
|
143
143
|
summary: Flexible Ruby on Rails breadcrumbs plugin.
|