gretel-jsonld 0.1.1 → 0.2.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/CHANGELOG.md +6 -1
- data/README.md +107 -9
- data/Rakefile +1 -1
- data/lib/gretel/jsonld/breadcrumb/list.rb +4 -2
- data/lib/gretel/jsonld/breadcrumb/list_item.rb +3 -1
- data/lib/gretel/jsonld/railtie.rb +2 -1
- data/lib/gretel/jsonld/renderer.rb +4 -2
- data/lib/gretel/jsonld/version.rb +2 -2
- data/lib/gretel/jsonld/view_helpers.rb +3 -3
- metadata +3 -4
- data/lib/tasks/gretel/jsonld_tasks.rake +0 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b148016c75478dd947e087855608b34439be9ba8
|
4
|
+
data.tar.gz: ab4814c23a2a01042724350f8ea5fae3321dab89
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ccda8ccceb6689db485af211b7ad4d16fefbb17a98f3fcfa0853b6e6545fd3ed696a98a0f1e058f94bec13e16522e1aee4799a820151a376785fe7821cca3447
|
7
|
+
data.tar.gz: cce14c004c513533c2c1b8c83772fc941917da428ebbca6d0c16cb844c21401ac429db8f8f39f444326ebe34a6f912ad3ffd20bfe4bf8e915f7b958addad4786
|
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,11 @@
|
|
1
1
|
# CHANGELOG
|
2
|
+
## [0.2.0](https://github.com/yasaichi/gretel-jsonld/releases/tag/v0.2.0) (November 25, 2017)
|
3
|
+
* [Write README](https://github.com/yasaichi/gretel-jsonld/pull/7)
|
4
|
+
* [Use `JSONLD` as module name instead of `Jsonld`](https://github.com/yasaichi/gretel-jsonld/pull/6)
|
5
|
+
* [Specify the required Ruby version](https://github.com/yasaichi/gretel-jsonld/pull/5)
|
6
|
+
|
2
7
|
## [0.1.1](https://github.com/yasaichi/gretel-jsonld/releases/tag/v0.1.1) (November 25, 2017)
|
3
|
-
* Cope with Rails 4.0 or former
|
8
|
+
* [Cope with Rails 4.0 or former](https://github.com/yasaichi/gretel-jsonld/pull/4)
|
4
9
|
|
5
10
|
## [0.1.0](https://github.com/yasaichi/gretel-jsonld/releases/tag/v0.1.0) (November 23, 2017)
|
6
11
|
* The initial release to reserve the gem name
|
data/README.md
CHANGED
@@ -1,11 +1,13 @@
|
|
1
|
-
#
|
2
|
-
|
1
|
+
# gretel-jsonld
|
2
|
+
[](http://badge.fury.io/rb/gretel-jsonld)
|
3
|
+
[](https://travis-ci.org/yasaichi/gretel-jsonld)
|
4
|
+
[](https://codeclimate.com/github/yasaichi/gretel-jsonld/maintainability)
|
5
|
+
[](https://codeclimate.com/github/yasaichi/gretel-jsonld/coverage)
|
3
6
|
|
4
|
-
|
5
|
-
How to use my plugin.
|
7
|
+
gretel-jsonld enables gretel gem to handle JSON-LD based breadcrumbs.
|
6
8
|
|
7
9
|
## Installation
|
8
|
-
Add this line to your application's Gemfile
|
10
|
+
Add this line to your application's `Gemfile`:
|
9
11
|
|
10
12
|
```ruby
|
11
13
|
gem 'gretel-jsonld'
|
@@ -16,13 +18,109 @@ And then execute:
|
|
16
18
|
$ bundle
|
17
19
|
```
|
18
20
|
|
19
|
-
|
20
|
-
|
21
|
-
|
21
|
+
## Usage
|
22
|
+
First, run the installation generator with:
|
23
|
+
|
24
|
+
```sh
|
25
|
+
$ rails generate gretel:install
|
26
|
+
```
|
27
|
+
|
28
|
+
Next, define "crumbs" in `config/breadcrumbs.rb`:
|
29
|
+
|
30
|
+
```ruby
|
31
|
+
# See also: https://github.com/lassebunk/gretel#more-examples
|
32
|
+
|
33
|
+
# Root crumb
|
34
|
+
crumb :root do
|
35
|
+
link 'Home', root_path
|
36
|
+
end
|
37
|
+
|
38
|
+
# Issue list
|
39
|
+
crumb :issues do
|
40
|
+
link 'All issues', issues_path
|
41
|
+
end
|
42
|
+
|
43
|
+
# Issue
|
44
|
+
crumb :issue do |issue|
|
45
|
+
link issue.title, issue
|
46
|
+
parent :issues
|
47
|
+
end
|
48
|
+
```
|
49
|
+
|
50
|
+
Then, add this line to your application's layout:
|
51
|
+
|
52
|
+
```erb
|
53
|
+
<%= jsonld_breadcrumbs %>
|
22
54
|
```
|
23
55
|
|
56
|
+
Finally, specify a current breadcrumb in each view:
|
57
|
+
|
58
|
+
```erb
|
59
|
+
<% breadcrumb :issue, @issue %>
|
60
|
+
```
|
61
|
+
|
62
|
+
This will generate the following breadcrumbs, marked up with JSON-LD (indented for readability):
|
63
|
+
|
64
|
+
```html
|
65
|
+
<script type="application/ld+json">
|
66
|
+
{
|
67
|
+
"@context":"http://schema.org",
|
68
|
+
"@type":"BreadcrumbList",
|
69
|
+
"itemListElement":[
|
70
|
+
{
|
71
|
+
"@type":"ListItem",
|
72
|
+
"position":1,
|
73
|
+
"item":{
|
74
|
+
"@id":"/",
|
75
|
+
"name":"Home"
|
76
|
+
}
|
77
|
+
},
|
78
|
+
{
|
79
|
+
"@type":"ListItem",
|
80
|
+
"position":2,
|
81
|
+
"item":{
|
82
|
+
"@id":"/issues",
|
83
|
+
"name":"All issues"
|
84
|
+
}
|
85
|
+
},
|
86
|
+
{
|
87
|
+
"@type":"ListItem",
|
88
|
+
"position":3,
|
89
|
+
"item":{
|
90
|
+
"@id":"/issues/46",
|
91
|
+
"name":"My Issue"
|
92
|
+
}
|
93
|
+
}
|
94
|
+
]
|
95
|
+
}
|
96
|
+
</script>
|
97
|
+
```
|
98
|
+
|
99
|
+
## Options
|
100
|
+
|
101
|
+
You can pass `jsonld_breadcrumbs` the same options as `breadcrumbs`:
|
102
|
+
|
103
|
+
```erb
|
104
|
+
<%= jsonld_breadcrumbs link_current_to_request_path: false %>
|
105
|
+
```
|
106
|
+
|
107
|
+
For further information, please see [gretel's documentation](https://github.com/lassebunk/gretel/blob/master/README.md#options).
|
108
|
+
|
109
|
+
## Supported versions
|
110
|
+
Note that gretel-jsonld doesn't support all versions of gretel, Ruby and Rails:
|
111
|
+
|
112
|
+
* gretel: gretel-jsonld supports __only 3.x__ for now
|
113
|
+
* Ruby: gretel 3.x supports __1.9.3 or later__, but gretel-jsonld does __only 2.2.2 or later__
|
114
|
+
* Rails: gretel 3.x supports __3.1 or later__, but gretel-jsonld does __only 3.2 or later__
|
115
|
+
|
24
116
|
## Contributing
|
25
|
-
|
117
|
+
You should follow the steps below:
|
118
|
+
|
119
|
+
1. [Fork the repository](https://help.github.com/articles/fork-a-repo/)
|
120
|
+
2. Create a feature branch: `git checkout -b add-new-feature`
|
121
|
+
3. Commit your changes: `git commit -am 'Add new feature'`
|
122
|
+
4. Push the branch: `git push origin add-new-feature`
|
123
|
+
4. [Send us a pull request](https://help.github.com/articles/about-pull-requests/)
|
26
124
|
|
27
125
|
## License
|
28
126
|
The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
|
data/Rakefile
CHANGED
@@ -10,7 +10,7 @@ require "rdoc/task"
|
|
10
10
|
|
11
11
|
RDoc::Task.new(:rdoc) do |rdoc|
|
12
12
|
rdoc.rdoc_dir = "rdoc"
|
13
|
-
rdoc.title = "Gretel::
|
13
|
+
rdoc.title = "Gretel::JSONLD"
|
14
14
|
rdoc.options << "--line-numbers"
|
15
15
|
rdoc.rdoc_files.include("README.md")
|
16
16
|
rdoc.rdoc_files.include("lib/**/*.rb")
|
@@ -1,10 +1,12 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require "json"
|
4
|
+
require "active_support"
|
5
|
+
require "active_support/json/encoding"
|
4
6
|
require "gretel/jsonld/breadcrumb/list_item"
|
5
7
|
|
6
8
|
module Gretel
|
7
|
-
module
|
9
|
+
module JSONLD
|
8
10
|
module Breadcrumb
|
9
11
|
class List
|
10
12
|
def initialize(link_collection)
|
@@ -28,7 +30,7 @@ module Gretel
|
|
28
30
|
|
29
31
|
def item_list_element
|
30
32
|
@link_collection.map.with_index(1) do |link, index|
|
31
|
-
::Gretel::
|
33
|
+
::Gretel::JSONLD::Breadcrumb::ListItem.new(
|
32
34
|
id: link.url,
|
33
35
|
name: link.text,
|
34
36
|
position: index,
|
@@ -1,10 +1,11 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require "active_support"
|
3
4
|
require "active_support/lazy_load_hooks"
|
4
5
|
require "rails/railtie"
|
5
6
|
|
6
7
|
module Gretel
|
7
|
-
module
|
8
|
+
module JSONLD
|
8
9
|
class Railtie < ::Rails::Railtie
|
9
10
|
initializer "gretel.jsonld" do
|
10
11
|
::ActiveSupport.on_load(:action_view) do
|
@@ -1,10 +1,12 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require "json"
|
4
|
+
require "active_support"
|
5
|
+
require "active_support/core_ext/string/output_safety"
|
4
6
|
require "gretel/jsonld/breadcrumb/list"
|
5
7
|
|
6
8
|
module Gretel
|
7
|
-
module
|
9
|
+
module JSONLD
|
8
10
|
class Renderer
|
9
11
|
def initialize(view_context)
|
10
12
|
@view_context = view_context
|
@@ -15,7 +17,7 @@ module Gretel
|
|
15
17
|
|
16
18
|
@view_context.content_tag(
|
17
19
|
:script,
|
18
|
-
JSON.generate(::Gretel::
|
20
|
+
JSON.generate(::Gretel::JSONLD::Breadcrumb::List.new(link_collection)).html_safe,
|
19
21
|
type: "application/ld+json",
|
20
22
|
)
|
21
23
|
end
|
@@ -5,7 +5,7 @@ require "gretel"
|
|
5
5
|
require "gretel/jsonld/renderer"
|
6
6
|
|
7
7
|
module Gretel
|
8
|
-
module
|
8
|
+
module JSONLD
|
9
9
|
module ViewHelpers
|
10
10
|
def jsonld_breadcrumbs(options = {})
|
11
11
|
gretel_jsonld_renderer.render(breadcrumbs(options))
|
@@ -14,10 +14,10 @@ module Gretel
|
|
14
14
|
private
|
15
15
|
|
16
16
|
def gretel_jsonld_renderer
|
17
|
-
@_gretel_jsonld_renderer ||= ::Gretel::
|
17
|
+
@_gretel_jsonld_renderer ||= ::Gretel::JSONLD::Renderer.new(self)
|
18
18
|
end
|
19
19
|
end
|
20
20
|
end
|
21
21
|
end
|
22
22
|
|
23
|
-
ActionView::Base.include(Gretel::
|
23
|
+
ActionView::Base.include(Gretel::JSONLD::ViewHelpers)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gretel-jsonld
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- yasaichi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-11-
|
11
|
+
date: 2017-11-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: gretel
|
@@ -126,7 +126,6 @@ files:
|
|
126
126
|
- lib/gretel/jsonld/renderer.rb
|
127
127
|
- lib/gretel/jsonld/version.rb
|
128
128
|
- lib/gretel/jsonld/view_helpers.rb
|
129
|
-
- lib/tasks/gretel/jsonld_tasks.rake
|
130
129
|
homepage: https://github.com/yasaichi/gretel-jsonld
|
131
130
|
licenses:
|
132
131
|
- MIT
|
@@ -139,7 +138,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
139
138
|
requirements:
|
140
139
|
- - ">="
|
141
140
|
- !ruby/object:Gem::Version
|
142
|
-
version:
|
141
|
+
version: 2.2.2
|
143
142
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
144
143
|
requirements:
|
145
144
|
- - ">="
|