semantic-breadcrumbs 1.0.3
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 +7 -0
- data/lib/semantic-breadcrumbs.rb +42 -0
- metadata +73 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 09ec3fe3876ea5978daa515d3da4a6fa20e0d099
|
4
|
+
data.tar.gz: c7940c56d8823540cdc8756993042d08a17b14bb
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 91ad4bb8e0f1869e37408fc95ab5b602b137b31907eb6c446c42919136794470e8562a89f2653dcbc72525da3a8c3390377c04bfe9e93ac8f604c699dd072b44
|
7
|
+
data.tar.gz: 38b8946805f7967b199dd32f1dbcf2055a32a7239296dfd072ad3d8ef8e3b14be73b225d3c60359e1a7edc71c193f8b49f2f6cff14aa64ff772f0b668c386f8e
|
@@ -0,0 +1,42 @@
|
|
1
|
+
class SemanticBreadcrumbs
|
2
|
+
def initialize(divider: '›')
|
3
|
+
@divider = divider
|
4
|
+
end
|
5
|
+
|
6
|
+
# breadcrumbs takes an array of link hashes and returns HTML markup for
|
7
|
+
# breadcrumbs in RDFA format
|
8
|
+
def breadcrumbs(links)
|
9
|
+
bcs = []
|
10
|
+
|
11
|
+
position = 1
|
12
|
+
links.each do |link|
|
13
|
+
bcs << single(position: position, **symbolize_keys(link))
|
14
|
+
position += 1
|
15
|
+
end
|
16
|
+
|
17
|
+
return %(<ol class="breadcrumbs" vocab="http://schema.org/" typeof="BreadcrumbList">#{bcs.join(@divider)}</ol>)
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
def single(href:, name:, position:)
|
23
|
+
return nil if [href, name, position].include?(nil)
|
24
|
+
|
25
|
+
noindent %(
|
26
|
+
<li property="itemListElement" typeof="ListItem">
|
27
|
+
<a property="item" typeof="WebPage" href="#{href}">
|
28
|
+
<span property="name">#{name}</span>
|
29
|
+
</a>
|
30
|
+
<meta property="position" content="#{position}">
|
31
|
+
</li>
|
32
|
+
)
|
33
|
+
end
|
34
|
+
|
35
|
+
def noindent(s)
|
36
|
+
s.gsub(/^\s+/, '').gsub("\n", '').strip
|
37
|
+
end
|
38
|
+
|
39
|
+
def symbolize_keys(hash)
|
40
|
+
hash.inject({}){ |memo,(k,v)| memo[k.to_sym] = v; memo }
|
41
|
+
end
|
42
|
+
end
|
metadata
ADDED
@@ -0,0 +1,73 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: semantic-breadcrumbs
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.3
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Max Lielje
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-10-04 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rake
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: test-unit
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
description: Semantic breadcrumb generator. It takes an array of objects describing
|
42
|
+
the breadcrumbs and returns HTML for you to use in your layouts.
|
43
|
+
email: max@pagespeed.io
|
44
|
+
executables: []
|
45
|
+
extensions: []
|
46
|
+
extra_rdoc_files: []
|
47
|
+
files:
|
48
|
+
- lib/semantic-breadcrumbs.rb
|
49
|
+
homepage: https://github.com/pagespeed-io/semantic-breadcrumbs
|
50
|
+
licenses:
|
51
|
+
- MIT
|
52
|
+
metadata: {}
|
53
|
+
post_install_message:
|
54
|
+
rdoc_options: []
|
55
|
+
require_paths:
|
56
|
+
- lib
|
57
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
63
|
+
requirements:
|
64
|
+
- - '>='
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: '0'
|
67
|
+
requirements: []
|
68
|
+
rubyforge_project:
|
69
|
+
rubygems_version: 2.0.14.1
|
70
|
+
signing_key:
|
71
|
+
specification_version: 4
|
72
|
+
summary: Create semantic breadcrumbs in HTML
|
73
|
+
test_files: []
|