jekyll_icon_list 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +9 -0
- data/Gemfile +6 -0
- data/LICENSE.txt +21 -0
- data/README.md +159 -0
- data/Rakefile +2 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/jekyll_icon_list.gemspec +38 -0
- data/lib/jekyll_icon_list.rb +162 -0
- data/lib/jekyll_icon_list/version.rb +3 -0
- metadata +96 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 3f1da75e2e118c485c03c07af94262febe7aefe650715dbc72db46802a739594
|
4
|
+
data.tar.gz: 2f6185d3706196a24b561dd317e39ff45230690e2a3fb850730cc3448e632334
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 9b62e7b479c2a44e29e605d96e4121d5cd06cc8f354613123e6c83a56b50c39887d483cf443b0b8b66d50a1a7dd09084267d37af33d4553050b673397d38805c
|
7
|
+
data.tar.gz: 91991f9474658ba39c33012cfe0325f1c516e6d367e4824dcb0eb4c2852b0c9d5742cc07118df8822904b01d0ee8eaf08356a9188dd2cb969a5ad5ee6d5971ce
|
data/.gitignore
ADDED
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright (c) 2018 Robert Buchberger
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in
|
13
|
+
all copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21
|
+
THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,159 @@
|
|
1
|
+
# Jekyll Icon List
|
2
|
+
|
3
|
+
**This plugin works, but I haven't had time to test it very thoroughly. Use with caution, and please
|
4
|
+
report bugs if you find them.**
|
5
|
+
|
6
|
+
## What is it?
|
7
|
+
|
8
|
+
It's a jekyll tag that lets you build unordered lists of items that follow the "Icon + label"
|
9
|
+
format.
|
10
|
+
|
11
|
+
Write a tag like this:
|
12
|
+
```
|
13
|
+
{% icon_list rails bootstrap heroku aws %}
|
14
|
+
```
|
15
|
+
|
16
|
+
Add some icons, configuration, and a little CSS, and you get something like this:
|
17
|
+
|
18
|
+
![imgur screenshot]( https://i.imgur.com/9m6qCRB.png )
|
19
|
+
|
20
|
+
I use it on [my portfolio](https://robert-buchberger.com/projects.html)
|
21
|
+
([ github ](https://github.com/rbuchberger/robert-buchberger.com)) if you want to see an example.
|
22
|
+
(Actually, currently my master branch doesn't use the gem. Yet. Check the other branches.)
|
23
|
+
|
24
|
+
You could use it to build category lists, or tag lists, or a bunch of other stuff. You can pass
|
25
|
+
element attributes in the tag itself, or set default attributes in the config. It only generates
|
26
|
+
markup; the styling is up to you.
|
27
|
+
|
28
|
+
It integrates with (and requires) [jekyll-svg-inliner](https://github.com/sdumetz/jekyll-inline-svg)
|
29
|
+
to inline your SVGs for you. If you don't use inline SVGs (even though you should), it sets your file
|
30
|
+
as an img src attribute (with alt text!).
|
31
|
+
|
32
|
+
## Installation
|
33
|
+
|
34
|
+
(I don't have it hosted on rubygems yet. It will be once I've cleaned it up a bit further. .)
|
35
|
+
|
36
|
+
```ruby
|
37
|
+
# Gemfile
|
38
|
+
|
39
|
+
group :jekyll_plugins do
|
40
|
+
gem 'jekyll_icon_list', git: 'https://github.com/rbuchberger/jekyll_icon_list.git'
|
41
|
+
end
|
42
|
+
```
|
43
|
+
|
44
|
+
```yml
|
45
|
+
# _config.yml
|
46
|
+
|
47
|
+
plugins:
|
48
|
+
-jekyll_icon_list
|
49
|
+
```
|
50
|
+
|
51
|
+
You'll also want some css. Here's an example that should get you close to the screenshot:
|
52
|
+
```css
|
53
|
+
|
54
|
+
ul.icon-list {
|
55
|
+
margin: 0;
|
56
|
+
font-size: 1.1em;
|
57
|
+
display: flex;
|
58
|
+
flex-wrap: wrap;
|
59
|
+
justify-content: center;
|
60
|
+
list-style: none;
|
61
|
+
}
|
62
|
+
|
63
|
+
ul.icon-list li {
|
64
|
+
display: flex;
|
65
|
+
align-items: center;
|
66
|
+
margin: 0 .5em;
|
67
|
+
}
|
68
|
+
|
69
|
+
.icon {
|
70
|
+
height: 1em;
|
71
|
+
margin-right: .2em;
|
72
|
+
}
|
73
|
+
|
74
|
+
```
|
75
|
+
|
76
|
+
## Usage
|
77
|
+
|
78
|
+
Basic usage:
|
79
|
+
|
80
|
+
```
|
81
|
+
{% icon_list example_shortname example2 %}
|
82
|
+
```
|
83
|
+
|
84
|
+
By default, with no configuration:
|
85
|
+
|
86
|
+
* It will look for icons in images/icons/ with the same name as your shortname, grabbing the first result which matches (shortname).*
|
87
|
+
|
88
|
+
* It will take your shortname, swap dashes for spaces, and titleize it for the label.
|
89
|
+
|
90
|
+
So for example, if you write `{% icon_list ruby-on-rails %}`, with `ruby-on-rails.png` located in
|
91
|
+
`images/icons/`, it will generate markup like this:
|
92
|
+
```
|
93
|
+
<ul>
|
94
|
+
<li><img src="/images/icons/ruby-on-rails.png">Ruby On Rails</li>
|
95
|
+
<ul>
|
96
|
+
```
|
97
|
+
|
98
|
+
You can specify attributes to add with --(element) arguments:
|
99
|
+
```
|
100
|
+
{% icon_list example example2 example3 --ul class="stumpy" --li class="mopey" %}
|
101
|
+
|
102
|
+
```
|
103
|
+
|
104
|
+
Available arguments:
|
105
|
+
`--ul, --li, --img, --svg, --a`
|
106
|
+
These will overwrite any global defaults you have set.
|
107
|
+
|
108
|
+
in your \_config.yml there are a few optional settings you can add. Here's an example:
|
109
|
+
```
|
110
|
+
# _config.yml
|
111
|
+
|
112
|
+
icon_list:
|
113
|
+
default_path: images/here/
|
114
|
+
defaults:
|
115
|
+
ul: class="icon-list"
|
116
|
+
li: class="icon-list-item"
|
117
|
+
svg: overflow="visible" class="icon"
|
118
|
+
img: class="wish-i-had-inline-svgs"
|
119
|
+
a: example-attribute="example-value"
|
120
|
+
|
121
|
+
svg:
|
122
|
+
optimize: true # Tells svg-inliner to clean up your SVGs.
|
123
|
+
|
124
|
+
```
|
125
|
+
|
126
|
+
* `default_path:`- Prepended to the filenames specified in your data file.
|
127
|
+
* `defaults:` - Optional HTML attributes to include with your markup, if none are specified in the
|
128
|
+
tag.
|
129
|
+
|
130
|
+
If the default filenames and labels don't work for you, create:
|
131
|
+
`/_data/icon_list.yml`
|
132
|
+
|
133
|
+
And fill it with your icons in the following format:
|
134
|
+
```
|
135
|
+
# /_data/icon_list.yml
|
136
|
+
|
137
|
+
example1:
|
138
|
+
icon: example_logo.svg
|
139
|
+
label: My Nicely Formatted, Long Name
|
140
|
+
url: https://example1.com
|
141
|
+
example2:
|
142
|
+
icon: sloppy.svg
|
143
|
+
label: Here's Another Label I Don't Have To Type Again
|
144
|
+
```
|
145
|
+
|
146
|
+
The default directory setting in config.yml will be prepended to your
|
147
|
+
filenames. You'll obviously need some icons, I hear you can find them on the
|
148
|
+
internet.
|
149
|
+
|
150
|
+
If you set a url: for an item in the data file, it'll wrap the li's contents in
|
151
|
+
an anchor tag for you.
|
152
|
+
|
153
|
+
## Contributing
|
154
|
+
|
155
|
+
Bug reports and pull requests are welcome. https://github.com/rbuchberger/jekyll_icon_list
|
156
|
+
|
157
|
+
## License
|
158
|
+
|
159
|
+
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
data/Rakefile
ADDED
data/bin/console
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'bundler/setup'
|
4
|
+
require 'jekyll_icon_list'
|
5
|
+
|
6
|
+
# You can add fixtures and/or initialization code here to make experimenting
|
7
|
+
# with your gem easier. You can also use a different console, if you like.
|
8
|
+
|
9
|
+
# (If you use this, don't forget to add pry to your Gemfile!)
|
10
|
+
# require "pry"
|
11
|
+
# Pry.start
|
12
|
+
|
13
|
+
require 'irb'
|
14
|
+
IRB.start(__FILE__)
|
data/bin/setup
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
lib = File.expand_path('lib', __dir__)
|
2
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
3
|
+
require 'jekyll_icon_list/version'
|
4
|
+
|
5
|
+
Gem::Specification.new do |spec|
|
6
|
+
spec.name = 'jekyll_icon_list'
|
7
|
+
spec.version = JekyllIconList::VERSION
|
8
|
+
spec.authors = ['Robert Buchberger']
|
9
|
+
spec.email = ['robert@robert-buchberger.com']
|
10
|
+
|
11
|
+
spec.summary = 'Builds lists of Icons and labels'
|
12
|
+
spec.homepage = 'https://github.com/rbuchberger/jekyll_icon_list'
|
13
|
+
spec.license = 'MIT'
|
14
|
+
|
15
|
+
# Prevent pushing this gem to RubyGems.org. To allow pushes either set the
|
16
|
+
# 'allowed_push_host' to allow pushing to a single host or delete this section
|
17
|
+
# to allow pushing to any host. if spec.respond_to?(:metadata)
|
18
|
+
# spec.metadata['allowed_push_host'] = "TODO: Set to 'http://mygemserver.com'"
|
19
|
+
# else raise 'RubyGems 2.0 or newer is required to protect against ' \ 'public
|
20
|
+
# gem pushes.' end
|
21
|
+
|
22
|
+
# Specify which files should be added to the gem when it is released. The
|
23
|
+
# `git ls-files -z` loads the files in the RubyGem that have been added into
|
24
|
+
# git.
|
25
|
+
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
26
|
+
`git ls-files -z`.split("\x0").reject do |f|
|
27
|
+
f.match(%r{^(test|spec|features)/})
|
28
|
+
end
|
29
|
+
end
|
30
|
+
spec.bindir = 'exe'
|
31
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
32
|
+
spec.require_paths = ['lib']
|
33
|
+
|
34
|
+
spec.add_development_dependency 'bundler', '~> 1.16'
|
35
|
+
spec.add_development_dependency 'rake', '~> 10.0'
|
36
|
+
|
37
|
+
spec.add_dependency 'jekyll-inline-svg'
|
38
|
+
end
|
@@ -0,0 +1,162 @@
|
|
1
|
+
require 'jekyll_icon_list/version'
|
2
|
+
require 'jekyll'
|
3
|
+
require 'jekyll-inline-svg'
|
4
|
+
# Title: Jekyll Icon List
|
5
|
+
# Author: Robert Buchberger : robert@robert-buchberger.com
|
6
|
+
# Description: Generates lists of icons + labels, useful for things like tag
|
7
|
+
# lists.
|
8
|
+
|
9
|
+
module JekyllIconList
|
10
|
+
# This tag looks for commands in the following format:
|
11
|
+
# {% icon_list item1 item2 item3 --ul class="example" --li class="example2" %}
|
12
|
+
# And renders an unordered list of icons and labels. Items are a space
|
13
|
+
# separated list of names defined in _data/icons.yml. Acceptable commands are
|
14
|
+
# --ul, --li, --svg, and --img. Their arguments are inserted into their
|
15
|
+
# respective HTML elements upon render.
|
16
|
+
class IconList < Liquid::Tag
|
17
|
+
# \. - dot
|
18
|
+
# [\w]+ - One or more letters, numbers, or underscores
|
19
|
+
# $ - End of string
|
20
|
+
FILE_EXT_REGEX = /\.([\w]+)\z/
|
21
|
+
|
22
|
+
def initialize(tag_name, raw_input, tokens)
|
23
|
+
@raw_input = raw_input
|
24
|
+
@tokens = tokens
|
25
|
+
super
|
26
|
+
end
|
27
|
+
|
28
|
+
def initialize_attributes
|
29
|
+
{
|
30
|
+
'ul' => '',
|
31
|
+
'li' => '',
|
32
|
+
'img' => '',
|
33
|
+
'svg' => '',
|
34
|
+
'a' => ''
|
35
|
+
}
|
36
|
+
end
|
37
|
+
|
38
|
+
def attribute_defaults
|
39
|
+
attributes = initialize_attributes
|
40
|
+
|
41
|
+
attributes.each_key do |k|
|
42
|
+
if @li_settings['defaults'] && @li_settings['defaults'][k]
|
43
|
+
attributes[k] = @li_settings['defaults'][k].dup
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
attributes
|
48
|
+
end
|
49
|
+
|
50
|
+
def parse_input(raw_input)
|
51
|
+
# raw_input will look something like this:
|
52
|
+
# 'item1 item2 item3 --ul attribute="value" --(...) "'
|
53
|
+
|
54
|
+
raw_input_array = raw_input.split('--').map { |i| i.strip.split(' ') }
|
55
|
+
# [['item1', 'item2', 'item3'], ['ul', 'attribute="value"'], (...) ]
|
56
|
+
|
57
|
+
@item_shortnames = raw_input_array.shift
|
58
|
+
|
59
|
+
raw_input_array.each do |a|
|
60
|
+
key = a.shift
|
61
|
+
@attributes[key] = a.join ' '
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
def build_image_tag(icon_filename)
|
66
|
+
file_ext = FILE_EXT_REGEX.match(icon_filename)[1]
|
67
|
+
|
68
|
+
element = if file_ext == 'svg'
|
69
|
+
Jekyll::Tags::JekyllInlineSvg.send(
|
70
|
+
:new,
|
71
|
+
'svg',
|
72
|
+
"#{icon_filename} #{@attributes['svg']}",
|
73
|
+
@tokens
|
74
|
+
).render(@context)
|
75
|
+
else
|
76
|
+
"<img src=\"#{icon_filename}\" "\
|
77
|
+
"alt=\"icon for #{icon_data['label']}\" "\
|
78
|
+
"#{@attributes['img']}>"
|
79
|
+
end
|
80
|
+
|
81
|
+
element << "\n"
|
82
|
+
end
|
83
|
+
|
84
|
+
def find_icon(item_shortname, this_item_data)
|
85
|
+
# This line gave me an interesting bug: jekyll data files are apparently
|
86
|
+
# mutable and persistent between tag calls. If I had the same item
|
87
|
+
# multiple times on a page (which is the entire point of this plugin), the
|
88
|
+
# default path would be prepended each time. .dup is very important!
|
89
|
+
icon_data_filename = this_item_data['icon'].dup
|
90
|
+
default_path = @li_settings['default_path'] || '/images/icons/'
|
91
|
+
|
92
|
+
if icon_data_filename && default_path
|
93
|
+
default_path + icon_data_filename
|
94
|
+
elsif icon_data_filename
|
95
|
+
icon_data_filename
|
96
|
+
elsif default_path
|
97
|
+
f = Dir.glob(Dir.pwd + default_path + item_shortname + '.*')
|
98
|
+
unless f.any?
|
99
|
+
raise "No icon for #{item_shortname} set in _data/icon_list.yml"\
|
100
|
+
", and default filename #{default_path + item_shortname}.* not found"
|
101
|
+
end
|
102
|
+
|
103
|
+
f.first # Returns the first matching result. May improve in the future
|
104
|
+
else
|
105
|
+
raise "No icon for #{item_shortname} specified in _data/icon_list.yml"\
|
106
|
+
'And no default directory specified in _config.yml.'\
|
107
|
+
'Must have one, the other, or both.'
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
def build_label(shortname, this_item_data)
|
112
|
+
this_item_data['label'] ||
|
113
|
+
shortname.split('-').map(&:capitalize).join(' ')
|
114
|
+
end
|
115
|
+
|
116
|
+
def build_li(this_item_data, icon_location, label)
|
117
|
+
li = " <li #{@attributes['li']}>"
|
118
|
+
if this_item_data && this_item_data['url']
|
119
|
+
li << "<a href=\"#{this_item_data['url']}\" #{@attributes['a']}>"
|
120
|
+
end
|
121
|
+
li << build_image_tag(icon_location)
|
122
|
+
li << label
|
123
|
+
li << '</a>' if this_item_data['url']
|
124
|
+
li << '</li>'
|
125
|
+
end
|
126
|
+
|
127
|
+
def build_html(all_items_data)
|
128
|
+
list = "<ul #{@attributes['ul']}>\n"
|
129
|
+
|
130
|
+
@item_shortnames.each do |n|
|
131
|
+
this_icon_data = all_items_data[n] || {}
|
132
|
+
|
133
|
+
icon_location = find_icon n, this_icon_data
|
134
|
+
|
135
|
+
label = build_label(n, this_icon_data)
|
136
|
+
|
137
|
+
list << build_li(this_icon_data, icon_location, label)
|
138
|
+
end
|
139
|
+
|
140
|
+
list << "</ul>\n"
|
141
|
+
end
|
142
|
+
|
143
|
+
def render(context)
|
144
|
+
@context = context
|
145
|
+
|
146
|
+
site_settings = @context.registers[:site]
|
147
|
+
raise 'could not load website configuration data' unless site_settings
|
148
|
+
|
149
|
+
@li_settings = site_settings.config['icon_list'] || {}
|
150
|
+
|
151
|
+
all_items_data = site_settings.data['icon_list'] || {}
|
152
|
+
|
153
|
+
@attributes = attribute_defaults
|
154
|
+
|
155
|
+
parse_input(@raw_input)
|
156
|
+
|
157
|
+
build_html(all_items_data)
|
158
|
+
end
|
159
|
+
end
|
160
|
+
end
|
161
|
+
|
162
|
+
Liquid::Template.register_tag('icon_list', JekyllIconList::IconList)
|
metadata
ADDED
@@ -0,0 +1,96 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: jekyll_icon_list
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Robert Buchberger
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2018-09-22 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.16'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.16'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: jekyll-inline-svg
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
description:
|
56
|
+
email:
|
57
|
+
- robert@robert-buchberger.com
|
58
|
+
executables: []
|
59
|
+
extensions: []
|
60
|
+
extra_rdoc_files: []
|
61
|
+
files:
|
62
|
+
- ".gitignore"
|
63
|
+
- Gemfile
|
64
|
+
- LICENSE.txt
|
65
|
+
- README.md
|
66
|
+
- Rakefile
|
67
|
+
- bin/console
|
68
|
+
- bin/setup
|
69
|
+
- jekyll_icon_list.gemspec
|
70
|
+
- lib/jekyll_icon_list.rb
|
71
|
+
- lib/jekyll_icon_list/version.rb
|
72
|
+
homepage: https://github.com/rbuchberger/jekyll_icon_list
|
73
|
+
licenses:
|
74
|
+
- MIT
|
75
|
+
metadata: {}
|
76
|
+
post_install_message:
|
77
|
+
rdoc_options: []
|
78
|
+
require_paths:
|
79
|
+
- lib
|
80
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
81
|
+
requirements:
|
82
|
+
- - ">="
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
version: '0'
|
85
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
requirements: []
|
91
|
+
rubyforge_project:
|
92
|
+
rubygems_version: 2.7.3
|
93
|
+
signing_key:
|
94
|
+
specification_version: 4
|
95
|
+
summary: Builds lists of Icons and labels
|
96
|
+
test_files: []
|