jekyll-shields_io 0.1.0 → 0.1.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f1cbdcd86f96276054df32441aa54069c49f7cb4a3a6726bc9590054cdec87dd
4
- data.tar.gz: 04002f19e6937e6db93ec182e1103b277b37c1648ae752ca254dbd568117b7b2
3
+ metadata.gz: 0cdfb519e88b7ea828926072a6dc4cca8e4597de5c7a5beda7be9def4e950f96
4
+ data.tar.gz: dba38e0c77372579fffcb82489f6fbb5f77d8dc0ca6a7cb4237e0fbbca4128a8
5
5
  SHA512:
6
- metadata.gz: 97fbf33a96dc445cd1e27f69008db09e05685ef31212aabb65d8b21fb2f73ae89474a3cd8e2cf033ed086aed3a2c2510d7ca41e5b93d109b82026e1893f42a6d
7
- data.tar.gz: 4268bd92876e71d790e8966d7fd287af6a2ed4b364b693cc00534c4fcf9a203b5c740110d574b7198570810f39b8bc248538b41d3c3cc47036168e0909716312
6
+ metadata.gz: cee91d48bd6363219da448526b009a70f7bd74e59b4f8cdec0e61d03f21ba0ac3f4049e3f320fcb9d6c2d3f738bd1b8fc1f378d777c6975418c8e4d9c64f6130
7
+ data.tar.gz: 146afeaa59f4a378e25200fcfd2feff8325514477c70c0a88acdd421cf85c7fceb6d1d60563a5aaf76e42994d53dc88e96db2ea342e7eadf083da5ece9204c9f
@@ -0,0 +1,22 @@
1
+ name: Check code style
2
+
3
+ on:
4
+ push:
5
+ branches: [ base ]
6
+ pull_request:
7
+ branches: [ base ]
8
+
9
+ jobs:
10
+ code_style:
11
+ runs-on: ubuntu-latest
12
+ steps:
13
+ - uses: actions/checkout@v3
14
+ - name: Set up Ruby
15
+ uses: ruby/setup-ruby@359bebbc29cbe6c87da6bc9ea3bc930432750108
16
+ with:
17
+ ruby-version: '2.7'
18
+ bundler-cache: true
19
+ - name: Install dependencies
20
+ run: bundle install
21
+ - name: Run tests
22
+ run: bundle exec rake standard
@@ -0,0 +1,23 @@
1
+ name: Check functionality
2
+
3
+ on:
4
+ push:
5
+ branches: [ base ]
6
+ pull_request:
7
+ branches: [ base ]
8
+
9
+ jobs:
10
+ test:
11
+ runs-on: ubuntu-latest
12
+ steps:
13
+ - uses: actions/checkout@v3
14
+ - name: Set up Ruby
15
+ uses: ruby/setup-ruby@359bebbc29cbe6c87da6bc9ea3bc930432750108
16
+ with:
17
+ ruby-version: '2.7'
18
+ bundler-cache: true
19
+ - name: Install dependencies
20
+ run: bundle install
21
+ - name: Run tests
22
+ run: bundle exec rake spec
23
+
data/.gitignore CHANGED
@@ -4,6 +4,12 @@
4
4
  # Tests will mess with this directory
5
5
  _cache/
6
6
 
7
+ # Since this is a Ruby Gem, lockfiles causes all sorts of problems when running CI.
8
+ Gemfile.lock
9
+
10
+ # Also if somebody wants to install dependencies locally, we need to prevent them being checked in
11
+ vendor/
12
+
7
13
  # Created by https://www.toptal.com/developers/gitignore/api/ruby,rubymine,macos
8
14
  # Edit at https://www.toptal.com/developers/gitignore?templates=ruby,rubymine,macos
9
15
 
@@ -23,7 +23,7 @@
23
23
  <orderEntry type="library" scope="PROVIDED" name="eventmachine (v1.2.7, RVM: ruby-2.7.6) [gem]" level="application" />
24
24
  <orderEntry type="library" scope="PROVIDED" name="ffi (v1.15.5, RVM: ruby-2.7.6) [gem]" level="application" />
25
25
  <orderEntry type="library" scope="PROVIDED" name="forwardable-extended (v2.6.0, RVM: ruby-2.7.6) [gem]" level="application" />
26
- <orderEntry type="library" scope="PROVIDED" name="google-protobuf (v3.21.12, RVM: ruby-2.7.6) [gem]" level="application" />
26
+ <orderEntry type="library" scope="PROVIDED" name="google-protobuf (v3.22.0, RVM: ruby-2.7.6) [gem]" level="application" />
27
27
  <orderEntry type="library" scope="PROVIDED" name="http_parser.rb (v0.8.0, RVM: ruby-2.7.6) [gem]" level="application" />
28
28
  <orderEntry type="library" scope="PROVIDED" name="httparty (v0.21.0, RVM: ruby-2.7.6) [gem]" level="application" />
29
29
  <orderEntry type="library" scope="PROVIDED" name="i18n (v1.12.0, RVM: ruby-2.7.6) [gem]" level="application" />
@@ -46,23 +46,23 @@
46
46
  <orderEntry type="library" scope="PROVIDED" name="public_suffix (v5.0.1, RVM: ruby-2.7.6) [gem]" level="application" />
47
47
  <orderEntry type="library" scope="PROVIDED" name="racc (v1.6.2, RVM: ruby-2.7.6) [gem]" level="application" />
48
48
  <orderEntry type="library" scope="PROVIDED" name="rainbow (v3.1.1, RVM: ruby-2.7.6) [gem]" level="application" />
49
- <orderEntry type="library" scope="PROVIDED" name="rake (v13.0.1, RVM: ruby-2.7.6) [gem]" level="application" />
49
+ <orderEntry type="library" scope="PROVIDED" name="rake (v13.0.6, RVM: ruby-2.7.6) [gem]" level="application" />
50
50
  <orderEntry type="library" scope="PROVIDED" name="rb-fsevent (v0.11.2, RVM: ruby-2.7.6) [gem]" level="application" />
51
51
  <orderEntry type="library" scope="PROVIDED" name="rb-inotify (v0.10.1, RVM: ruby-2.7.6) [gem]" level="application" />
52
52
  <orderEntry type="library" scope="PROVIDED" name="regexp_parser (v2.7.0, RVM: ruby-2.7.6) [gem]" level="application" />
53
53
  <orderEntry type="library" scope="PROVIDED" name="rexml (v3.2.5, RVM: ruby-2.7.6) [gem]" level="application" />
54
54
  <orderEntry type="library" scope="PROVIDED" name="rouge (v4.1.0, RVM: ruby-2.7.6) [gem]" level="application" />
55
55
  <orderEntry type="library" scope="PROVIDED" name="rspec (v3.12.0, RVM: ruby-2.7.6) [gem]" level="application" />
56
- <orderEntry type="library" scope="PROVIDED" name="rspec-core (v3.12.0, RVM: ruby-2.7.6) [gem]" level="application" />
57
- <orderEntry type="library" scope="PROVIDED" name="rspec-expectations (v3.12.0, RVM: ruby-2.7.6) [gem]" level="application" />
58
- <orderEntry type="library" scope="PROVIDED" name="rspec-mocks (v3.12.0, RVM: ruby-2.7.6) [gem]" level="application" />
56
+ <orderEntry type="library" scope="PROVIDED" name="rspec-core (v3.12.1, RVM: ruby-2.7.6) [gem]" level="application" />
57
+ <orderEntry type="library" scope="PROVIDED" name="rspec-expectations (v3.12.2, RVM: ruby-2.7.6) [gem]" level="application" />
58
+ <orderEntry type="library" scope="PROVIDED" name="rspec-mocks (v3.12.3, RVM: ruby-2.7.6) [gem]" level="application" />
59
59
  <orderEntry type="library" scope="PROVIDED" name="rspec-support (v3.12.0, RVM: ruby-2.7.6) [gem]" level="application" />
60
60
  <orderEntry type="library" scope="PROVIDED" name="rubocop (v1.44.1, RVM: ruby-2.7.6) [gem]" level="application" />
61
61
  <orderEntry type="library" scope="PROVIDED" name="rubocop-ast (v1.26.0, RVM: ruby-2.7.6) [gem]" level="application" />
62
62
  <orderEntry type="library" scope="PROVIDED" name="rubocop-performance (v1.15.2, RVM: ruby-2.7.6) [gem]" level="application" />
63
63
  <orderEntry type="library" scope="PROVIDED" name="ruby-progressbar (v1.11.0, RVM: ruby-2.7.6) [gem]" level="application" />
64
64
  <orderEntry type="library" scope="PROVIDED" name="safe_yaml (v1.0.5, RVM: ruby-2.7.6) [gem]" level="application" />
65
- <orderEntry type="library" scope="PROVIDED" name="sass-embedded (v1.58.0, RVM: ruby-2.7.6) [gem]" level="application" />
65
+ <orderEntry type="library" scope="PROVIDED" name="sass-embedded (v1.58.2, RVM: ruby-2.7.6) [gem]" level="application" />
66
66
  <orderEntry type="library" scope="PROVIDED" name="standard (v1.24.3, RVM: ruby-2.7.6) [gem]" level="application" />
67
67
  <orderEntry type="library" scope="PROVIDED" name="terminal-table (v3.0.2, RVM: ruby-2.7.6) [gem]" level="application" />
68
68
  <orderEntry type="library" scope="PROVIDED" name="unicode-display_width (v2.4.2, RVM: ruby-2.7.6) [gem]" level="application" />
data/README.md CHANGED
@@ -17,7 +17,7 @@ This plugin exists because this URL was too long for me to debug.
17
17
  Instead, this plugin accepts parameters structured as a JSON:
18
18
 
19
19
  ```liquid
20
- <!-- If used in Liquid / HTML file, this will do -->
20
+ <!-- When using in Markdown, you need to use `{%- tag -%}` syntax - see "Usage" section -->
21
21
  {% shields_io {
22
22
  "label": "Find me on",
23
23
  "message": "GitHub",
@@ -26,7 +26,52 @@ Instead, this plugin accepts parameters structured as a JSON:
26
26
  "logo": "github",
27
27
  }
28
28
  %}
29
- <!-- When using in Markdown, you need to use `{%- tag -%}` syntax otherwise the tag will be escaped -->
29
+ ```
30
+
31
+ ## Installation
32
+
33
+ 1. Introduce this gem in your Gemfile
34
+ ```ruby
35
+ group :jekyll_plugins do
36
+ # Latest release
37
+ gem "jekyll-shields_io"
38
+ # "HEAD" version
39
+ gem "jekyll-shields_io", git: "https://github.com/clpsplug/jekyll-shields_io", branch: "base"
40
+ end
41
+ ```
42
+ 2. `bundle install`
43
+ 3. Add the plugin to your `_config.yml`
44
+ ```yaml
45
+ plugins:
46
+ - jekyll-shields_io
47
+ ```
48
+
49
+ ## Usage
50
+
51
+ The tag name is `shields_io`.
52
+ The JSON payload for your shield follows the tag name.
53
+ You can put newlines in your JSON for readability.
54
+
55
+ Depending on where you use the tag, you need to use one of the following tag syntaxes:
56
+
57
+ ### Using the tag in Liquid template / HTML
58
+ (i.e., the file name is either `*.html` or `*.liquid`)
59
+ ```liquid
60
+ {% shields_io {
61
+ "label": "Find me on",
62
+ "message": "GitHub",
63
+ "color": "181717",
64
+ "style": "flat",
65
+ "logo": "github",
66
+ }
67
+ %}
68
+ ```
69
+
70
+ ### Using the tag in Markdown
71
+ (i.e., the file name is `*.md`)
72
+ For markdown files, this syntax is required because the other one causes the shields `<img>` tags to be escaped.
73
+ ```liquid
74
+ <!-- Note the "hyphen" (-) after the percentage sign (%) -->
30
75
  {%- shields_io {
31
76
  "label": "Find me on",
32
77
  "message": "GitHub",
@@ -37,13 +82,17 @@ Instead, this plugin accepts parameters structured as a JSON:
37
82
  -%}
38
83
  ```
39
84
 
40
- ## Installation
41
-
42
- ```
43
- gem "jekyll-shields_io", git: "https://github.com/clpsplug/jekyll-shields_io", branch: "base"
44
- ```
85
+ ## Supported parameters
45
86
 
46
- RubyGems TBA
87
+ | key | content | required? |
88
+ |:--------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-----------------------------|
89
+ | message | The right-side text of the shield. | YES |
90
+ | alt | The alternative text for the image. This _should_ be specified for accessibility reasons and when the service fails for any reason. | NO, but strongly recommended |
91
+ | label | The left-side text of the shield. If left, it will be "static" | NO |
92
+ | color | The color of the right side (some styles may ignore this value.) This can be color name (see [Shields.io](https://shields.io/) for supported names) or hex color code. Hex color codes _must not_ contain `#`. If left, 'inactive' is used. | NO |
93
+ | style | The shield style, see [Shields.io](https://shields.io) for valid values. If left, 'plastic' is used. | NO |
94
+ | logo | Service name or Simple Icons icon name; display on the left of the leftside text. | NO |
95
+ | href | A URL. Specifying this key will turn the shield into a clickable link | NO |
47
96
 
48
97
  ## Features
49
98
 
@@ -100,18 +149,6 @@ this plugin has an extended parameter `alt` for that purpose.
100
149
  %}
101
150
  ```
102
151
 
103
- ## Supported parameters
104
-
105
- | key | content | required? |
106
- |:--------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-----------------------------|
107
- | message | The right-side text of the shield. | YES |
108
- | alt | The alternative text for the image. This _should_ be specified for accessibility reasons and when the service fails for any reason. | NO, but strongly recommended |
109
- | label | The left-side text of the shield. If left, it will be "static" | NO |
110
- | color | The color of the right side (some styles may ignore this value.) This can be color name (see [Shields.io](https://shields.io/) for supported names) or hex color code. Hex color codes _must not_ contain `#`. If left, 'inactive' is used. | NO |
111
- | style | The shield style, see [Shields.io](https://shields.io) for valid values. If left, 'plastic' is used. | NO |
112
- | logo | Service name or Simple Icons icon name; display on the left of the leftside text. | NO |
113
- | href | A URL. Specifying this key will turn the shield into a clickable link | NO |
114
-
115
152
  ## NOTE: i18n plugin compatibility
116
153
 
117
154
  This plugin tries to detect i18n plugin [Polyglot](https://github.com/untra/polyglot) when deploying shields to the assets folder;
@@ -1,5 +1,5 @@
1
1
  module Jekyll
2
2
  module ShieldsIO
3
- VERSION = "0.1.0"
3
+ VERSION = "0.1.1"
4
4
  end
5
5
  end
@@ -12,11 +12,15 @@ module Jekyll
12
12
  def initialize(context)
13
13
  # @type [Jekyll::Site]
14
14
  @site = context.registers[:site]
15
+ # This Jekyll site's "source" config
15
16
  # @type [String]
16
17
  @source_dir = File.absolute_path context.registers[:site].config["source"], Dir.pwd
17
18
  end
18
19
 
19
- # @param [Hash] config
20
+ # Fetches the shields from the service or retrieves one from cache
21
+ # @param [Hash] config User-supplied configuration (parsed from JSON)
22
+ # @return [Shield]
23
+ # @raise [ShieldFetchError] If Shields.IO service returns non-200 codes
20
24
  def get_shield(config)
21
25
  href = config[:href]
22
26
  alt = config[:alt]
@@ -40,9 +44,8 @@ module Jekyll
40
44
  log "Cache missed for query: #{query}"
41
45
  # If the cache does not exist, we need to get the file.
42
46
  response = HTTParty.get "https://img.shields.io/static/v1?#{query}"
43
- unless response.code == 200
44
- warn "Shields.io refused our request with Response Code #{response.code}."
45
- return nil
47
+ unless response.code.div(100) == 2
48
+ raise ShieldFetchError.new "Shields.io refused our request with response code #{response.code}"
46
49
  end
47
50
  img = response.body
48
51
  File.write cache_path, img
@@ -55,12 +58,11 @@ module Jekyll
55
58
  end
56
59
 
57
60
  # Queue given Shield for this Jekyll site's static files
58
- #
59
- # shield - Shield to queue for this Jekyll site's Jekyll::StaticFile.
61
+ # @param [Shield] shield Shield to queue for this Jekyll site's Jekyll::StaticFile.
62
+ # @raise [ShieldFileError] when specified cache file does not exist
60
63
  def queue_shield(shield)
61
64
  unless File.exist? shield.path
62
- warn "Cached shield image file was not found, maybe we failed to fetch it?"
63
- return
65
+ raise ShieldFileError.new
64
66
  end
65
67
  if @site.static_files.select { |f|
66
68
  f.is_a? StaticShieldFile
@@ -102,9 +104,13 @@ module Jekyll
102
104
  }.join "&"
103
105
  end
104
106
 
105
- def log(mes)
106
- unless @site.config["verbose"] != true
107
- warn mes
107
+ # Same as warn but will print an identifying tag ([Shields.IO Plugin]) and
108
+ # will not print unless verbose mode is on, or the message is marked important
109
+ # @param [String] mes
110
+ # @param [TrueClass, FalseClass] important
111
+ def log(mes, important = false)
112
+ unless @site.config["verbose"] != true || important
113
+ warn "[Shields.IO Plugin] #{mes}"
108
114
  end
109
115
  end
110
116
  end
@@ -166,10 +172,14 @@ module Jekyll
166
172
  end
167
173
  end
168
174
 
169
- class ShieldError < StandardError
170
- def initialize(msg = "Failed to fetch the shield.")
171
- super
172
- end
175
+ # Thrown when the plugin fails to fetch the shield image.
176
+ class ShieldFetchError < StandardError
177
+ end
178
+
179
+ # Thrown when the plugin fails to access the cached shield file.
180
+ # Realistically, if this happens something must be very wrong with the disk the cache is written to
181
+ # because the plugin would've crashed with IO errors well before this is thrown.
182
+ class ShieldFileError < StandardError
173
183
  end
174
184
 
175
185
  # Jekyll Liquid Tag for Shields.io
@@ -180,14 +190,14 @@ module Jekyll
180
190
  super
181
191
  # @type [Hash]
182
192
  @payload = JSON.parse(input.strip, {symbolize_names: true})
193
+ # This only appears if there is an error trying to fetch the shield.
194
+ # @type [String]
195
+ @last_ditch_alt = "<p>#{@payload[:label]} #{@payload[:message]}</p>"
183
196
  end
184
197
 
185
198
  def render(context)
186
199
  fct = ShieldFactory.new context
187
200
  shield = fct.get_shield @payload
188
- if shield.nil?
189
- raise ShieldError.new
190
- end
191
201
  fct.queue_shield shield
192
202
 
193
203
  shield_tag = <<HTML
@@ -207,6 +217,12 @@ HTML
207
217
  else
208
218
  shield_tag
209
219
  end
220
+ rescue ShieldFetchError
221
+ warn "[Shields.IO Plugin] Failed to fetch shields! (input: #{JSON.dump @payload})"
222
+ @last_ditch_alt
223
+ rescue ShieldFileError
224
+ warn "[Shields.IO Plugin] Failed to access cached shields!"
225
+ @last_ditch_alt
210
226
  end
211
227
  end
212
228
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-shields_io
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - C. Plug
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-02-17 00:00:00.000000000 Z
11
+ date: 2023-02-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll
@@ -79,6 +79,8 @@ extensions: []
79
79
  extra_rdoc_files: []
80
80
  files:
81
81
  - ".editorconfig"
82
+ - ".github/workflows/code_style.yml"
83
+ - ".github/workflows/test.yml"
82
84
  - ".gitignore"
83
85
  - ".idea/.gitignore"
84
86
  - ".idea/codeStyles/codeStyleConfig.xml"
@@ -88,7 +90,6 @@ files:
88
90
  - ".idea/vcs.xml"
89
91
  - ".rspec"
90
92
  - Gemfile
91
- - Gemfile.lock
92
93
  - LICENSE.txt
93
94
  - README.md
94
95
  - Rakefile
data/Gemfile.lock DELETED
@@ -1,132 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- jekyll-shields_io (0.1.0)
5
- httparty (~> 0.17, < 1.0)
6
- jekyll (>= 3.5, < 5.0)
7
- nokogiri (~> 1.4, < 2.0)
8
-
9
- GEM
10
- remote: https://rubygems.org/
11
- specs:
12
- addressable (2.8.1)
13
- public_suffix (>= 2.0.2, < 6.0)
14
- ast (2.4.2)
15
- colorator (1.1.0)
16
- concurrent-ruby (1.2.0)
17
- diff-lcs (1.5.0)
18
- em-websocket (0.5.3)
19
- eventmachine (>= 0.12.9)
20
- http_parser.rb (~> 0)
21
- eventmachine (1.2.7)
22
- ffi (1.15.5)
23
- forwardable-extended (2.6.0)
24
- google-protobuf (3.21.12-x86_64-darwin)
25
- http_parser.rb (0.8.0)
26
- httparty (0.21.0)
27
- mini_mime (>= 1.0.0)
28
- multi_xml (>= 0.5.2)
29
- i18n (1.12.0)
30
- concurrent-ruby (~> 1.0)
31
- jekyll (4.3.2)
32
- addressable (~> 2.4)
33
- colorator (~> 1.0)
34
- em-websocket (~> 0.5)
35
- i18n (~> 1.0)
36
- jekyll-sass-converter (>= 2.0, < 4.0)
37
- jekyll-watch (~> 2.0)
38
- kramdown (~> 2.3, >= 2.3.1)
39
- kramdown-parser-gfm (~> 1.0)
40
- liquid (~> 4.0)
41
- mercenary (>= 0.3.6, < 0.5)
42
- pathutil (~> 0.9)
43
- rouge (>= 3.0, < 5.0)
44
- safe_yaml (~> 1.0)
45
- terminal-table (>= 1.8, < 4.0)
46
- webrick (~> 1.7)
47
- jekyll-sass-converter (3.0.0)
48
- sass-embedded (~> 1.54)
49
- jekyll-watch (2.2.1)
50
- listen (~> 3.0)
51
- json (2.6.3)
52
- kramdown (2.4.0)
53
- rexml
54
- kramdown-parser-gfm (1.1.0)
55
- kramdown (~> 2.0)
56
- language_server-protocol (3.17.0.3)
57
- liquid (4.0.4)
58
- listen (3.8.0)
59
- rb-fsevent (~> 0.10, >= 0.10.3)
60
- rb-inotify (~> 0.9, >= 0.9.10)
61
- mercenary (0.4.0)
62
- mini_mime (1.1.2)
63
- multi_xml (0.6.0)
64
- nokogiri (1.14.2-x86_64-darwin)
65
- racc (~> 1.4)
66
- parallel (1.22.1)
67
- parser (3.2.1.0)
68
- ast (~> 2.4.1)
69
- pathutil (0.16.2)
70
- forwardable-extended (~> 2.6)
71
- public_suffix (5.0.1)
72
- racc (1.6.2)
73
- rainbow (3.1.1)
74
- rake (13.0.1)
75
- rb-fsevent (0.11.2)
76
- rb-inotify (0.10.1)
77
- ffi (~> 1.0)
78
- regexp_parser (2.7.0)
79
- rexml (3.2.5)
80
- rouge (4.1.0)
81
- rspec (3.12.0)
82
- rspec-core (~> 3.12.0)
83
- rspec-expectations (~> 3.12.0)
84
- rspec-mocks (~> 3.12.0)
85
- rspec-core (3.12.0)
86
- rspec-support (~> 3.12.0)
87
- rspec-expectations (3.12.0)
88
- diff-lcs (>= 1.2.0, < 2.0)
89
- rspec-support (~> 3.12.0)
90
- rspec-mocks (3.12.0)
91
- diff-lcs (>= 1.2.0, < 2.0)
92
- rspec-support (~> 3.12.0)
93
- rspec-support (3.12.0)
94
- rubocop (1.44.1)
95
- json (~> 2.3)
96
- parallel (~> 1.10)
97
- parser (>= 3.2.0.0)
98
- rainbow (>= 2.2.2, < 4.0)
99
- regexp_parser (>= 1.8, < 3.0)
100
- rexml (>= 3.2.5, < 4.0)
101
- rubocop-ast (>= 1.24.1, < 2.0)
102
- ruby-progressbar (~> 1.7)
103
- unicode-display_width (>= 2.4.0, < 3.0)
104
- rubocop-ast (1.26.0)
105
- parser (>= 3.2.1.0)
106
- rubocop-performance (1.15.2)
107
- rubocop (>= 1.7.0, < 2.0)
108
- rubocop-ast (>= 0.4.0)
109
- ruby-progressbar (1.11.0)
110
- safe_yaml (1.0.5)
111
- sass-embedded (1.58.0-x86_64-darwin)
112
- google-protobuf (~> 3.21)
113
- standard (1.24.3)
114
- language_server-protocol (~> 3.17.0.2)
115
- rubocop (= 1.44.1)
116
- rubocop-performance (= 1.15.2)
117
- terminal-table (3.0.2)
118
- unicode-display_width (>= 1.1.1, < 3)
119
- unicode-display_width (2.4.2)
120
- webrick (1.8.1)
121
-
122
- PLATFORMS
123
- x86_64-darwin-21
124
-
125
- DEPENDENCIES
126
- jekyll-shields_io!
127
- rake
128
- rspec
129
- standard
130
-
131
- BUNDLED WITH
132
- 2.2.2