rf-stylez 1.0.0 → 1.0.2
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/.circleci/config.yml +27 -2
- data/.circleci/update-jira.sh +10 -0
- data/.github/workflows/pronto.yml +10 -6
- data/README.md +0 -1
- data/lib/rf/stylez/update_check.rb +11 -10
- data/lib/rf/stylez/version.rb +1 -1
- data/lib/rf/stylez.rb +11 -10
- data/lib/rubocop/cop/lint/no_bang_state_machine_events.rb +3 -3
- data/lib/rubocop/cop/lint/no_grape_api.rb +2 -2
- data/lib/rubocop/cop/lint/no_http_party.rb +2 -2
- data/lib/rubocop/cop/lint/no_json.rb +2 -2
- data/lib/rubocop/cop/lint/no_untyped_raise.rb +2 -2
- data/lib/rubocop/cop/lint/no_vcr_recording.rb +4 -3
- data/lib/rubocop/cop/lint/obscure.rb +2 -2
- data/lib/rubocop/cop/lint/use_positive_int32_validator.rb +3 -3
- data/rf-stylez.gemspec +5 -5
- data/ruby/rubocop.yml +3 -1
- metadata +14 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6eab02f25e22ed5d7365687d436c5f7c6b7e8e036b9d41203b482cb945e573e9
|
4
|
+
data.tar.gz: b0a3163d0569cb82d9024902f2669b78be9bc6f0a8c6541e632212925e05a9ab
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7f8d14ce2b39e35025cb459371df3369e20e0a5120e29323dcd78acc51829a4fcfc1e4efabdb4ecb31d392235c96e23df40f7ef6314a0dd5beaa56b874c2aa8e
|
7
|
+
data.tar.gz: 012adcb6bdc628f820958909f86042a3a8d4e3863baee8afe070c29dfea9f550a1c2d23c90346a5660963fae813837cf5fbc38978361e88031b06a16f06069c3
|
data/.circleci/config.yml
CHANGED
@@ -3,7 +3,7 @@ version: 2.1
|
|
3
3
|
jobs:
|
4
4
|
test:
|
5
5
|
docker:
|
6
|
-
- image: cimg/ruby:3.2.
|
6
|
+
- image: cimg/ruby:3.2.2
|
7
7
|
auth:
|
8
8
|
username: $DOCKERHUB_USERNAME
|
9
9
|
password: $DOCKERHUB_TOKEN
|
@@ -32,7 +32,7 @@ jobs:
|
|
32
32
|
|
33
33
|
push_to_rubygems:
|
34
34
|
docker:
|
35
|
-
- image: cimg/ruby:3.2.
|
35
|
+
- image: cimg/ruby:3.2.2
|
36
36
|
auth:
|
37
37
|
username: $DOCKERHUB_USERNAME
|
38
38
|
password: $DOCKERHUB_TOKEN
|
@@ -52,6 +52,21 @@ jobs:
|
|
52
52
|
gem build rf-stylez
|
53
53
|
gem push rf-stylez-*.gem
|
54
54
|
|
55
|
+
update_jira:
|
56
|
+
docker:
|
57
|
+
- image: alpine:3.8
|
58
|
+
auth:
|
59
|
+
username: $DOCKERHUB_USERNAME
|
60
|
+
password: $DOCKERHUB_TOKEN
|
61
|
+
steps:
|
62
|
+
- run:
|
63
|
+
name: Install dependencies
|
64
|
+
command: apk add --no-cache bash curl git openssh
|
65
|
+
- checkout
|
66
|
+
- run:
|
67
|
+
name: Update JIRA
|
68
|
+
command: .circleci/update-jira.sh
|
69
|
+
|
55
70
|
workflows:
|
56
71
|
version: 2
|
57
72
|
gem_release:
|
@@ -70,3 +85,13 @@ workflows:
|
|
70
85
|
context:
|
71
86
|
- DockerHub
|
72
87
|
- RubyGems
|
88
|
+
- update_jira:
|
89
|
+
requires:
|
90
|
+
- push_to_rubygems
|
91
|
+
filters:
|
92
|
+
branches:
|
93
|
+
only:
|
94
|
+
- master
|
95
|
+
context:
|
96
|
+
- DockerHub
|
97
|
+
- update-jira-webhook
|
@@ -0,0 +1,10 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
|
3
|
+
set -euo pipefail
|
4
|
+
|
5
|
+
# Use JIRA automation webhooks to move issues to SHIPPED:
|
6
|
+
# https://support.atlassian.com/jira-software-cloud/docs/automation-triggers/#Automationtriggers-Incomingwebhook
|
7
|
+
|
8
|
+
git log --max-count=50 --pretty=format:'%s' | grep -Eo '^\w+-[0-9]+' | sort -u | while read i; do
|
9
|
+
curl -X POST "$UPDATE_JIRA_WEBHOOK_URL?issue=$i"
|
10
|
+
done
|
@@ -9,7 +9,9 @@ permissions:
|
|
9
9
|
|
10
10
|
jobs:
|
11
11
|
pronto:
|
12
|
+
|
12
13
|
runs-on: ubuntu-latest
|
14
|
+
|
13
15
|
env:
|
14
16
|
# `MAKE="make --jobs $(nproc)"` is from
|
15
17
|
# https://build.betterup.com/one-weird-trick-that-will-speed-up-your-bundle-install/
|
@@ -20,18 +22,20 @@ jobs:
|
|
20
22
|
|
21
23
|
steps:
|
22
24
|
- name: Checkout code
|
23
|
-
uses: actions/checkout@
|
24
|
-
|
25
|
-
|
26
|
-
|
25
|
+
uses: actions/checkout@v3
|
26
|
+
with:
|
27
|
+
fetch-depth: 100
|
28
|
+
- run: git fetch --no-tags --prune --depth=100 origin "+refs/heads/$GITHUB_BASE_REF:refs/remotes/origin/$GITHUB_BASE_REF"
|
29
|
+
|
27
30
|
- name: Setup Ruby
|
28
31
|
uses: ruby/setup-ruby@v1
|
29
32
|
with:
|
30
|
-
ruby-version: "3.2.
|
31
|
-
# Run `bundle install` with cache when `true`
|
33
|
+
ruby-version: "3.2.2"
|
32
34
|
bundler-cache: true
|
35
|
+
|
33
36
|
- name: Setup pronto
|
34
37
|
run: gem install pronto pronto-rubocop
|
38
|
+
|
35
39
|
- name: Run Pronto
|
36
40
|
run: bundle exec pronto run -f github_status github_pr -c origin/${{ github.base_ref }}
|
37
41
|
env:
|
data/README.md
CHANGED
@@ -9,7 +9,6 @@ This is a place for style configurations for [Rainforest QA](https://www.rainfor
|
|
9
9
|
- pull latest master
|
10
10
|
- run `rake release:source_control_push`
|
11
11
|
- CI/CD will take care of releasing rf-stylez to rubygems
|
12
|
-
- Update circlemator `bundle update rf-stylez`
|
13
12
|
|
14
13
|
## Adding `rf-stylez` to a new project
|
15
14
|
|
@@ -1,32 +1,33 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require
|
4
|
-
require
|
5
|
-
require
|
3
|
+
require "json"
|
4
|
+
require "net/http"
|
5
|
+
require "logger"
|
6
6
|
|
7
7
|
module Rf
|
8
8
|
module Stylez
|
9
|
+
# Check for updates to rf-stylez
|
9
10
|
module UpdateCheck
|
10
|
-
RUBYGEMS_URL = URI(
|
11
|
+
RUBYGEMS_URL = URI("https://rubygems.org/api/v1/gems/rf-stylez.json").freeze
|
11
12
|
|
12
13
|
def self.check
|
13
14
|
logger = Logger.new(STDOUT)
|
14
15
|
current_version = Gem::Version.new(VERSION)
|
15
16
|
|
16
17
|
remote_version = Gem::Version.new(
|
17
|
-
JSON.parse(Net::HTTP.get(RUBYGEMS_URL))[
|
18
|
+
JSON.parse(Net::HTTP.get(RUBYGEMS_URL))["version"] # rubocop:disable Lint/NoJSON
|
18
19
|
)
|
19
20
|
if current_version >= remote_version
|
20
|
-
logger.info(
|
21
|
-
logger.info(
|
21
|
+
logger.info("You are running latest rf-stylez ")
|
22
|
+
logger.info("(•_•) ( •_•)>⌐■-■ (⌐■_■)")
|
22
23
|
else
|
23
|
-
logger.warn(
|
24
|
+
logger.warn("RF Stylez is out of date!")
|
24
25
|
logger.warn("Newest version is: #{remote_version}")
|
25
26
|
logger.warn("You are running: #{current_version}")
|
26
|
-
logger.warn(
|
27
|
+
logger.warn("Please update: `gem update rf-stylez`")
|
27
28
|
end
|
28
29
|
rescue SocketError
|
29
|
-
logger.info(
|
30
|
+
logger.info("Offline, cannot check for rf-stylez updates")
|
30
31
|
end
|
31
32
|
end
|
32
33
|
end
|
data/lib/rf/stylez/version.rb
CHANGED
data/lib/rf/stylez.rb
CHANGED
@@ -1,17 +1,18 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require
|
4
|
-
require
|
5
|
-
require
|
6
|
-
require
|
7
|
-
require
|
8
|
-
require
|
9
|
-
require
|
10
|
-
require
|
11
|
-
require
|
12
|
-
require
|
3
|
+
require "rf/stylez/version"
|
4
|
+
require "rf/stylez/update_check"
|
5
|
+
require "rubocop"
|
6
|
+
require "rubocop/cop/lint/no_json"
|
7
|
+
require "rubocop/cop/lint/no_http_party"
|
8
|
+
require "rubocop/cop/lint/obscure"
|
9
|
+
require "rubocop/cop/lint/no_grape_api"
|
10
|
+
require "rubocop/cop/lint/use_positive_int32_validator"
|
11
|
+
require "rubocop/cop/lint/no_untyped_raise"
|
12
|
+
require "rubocop/cop/lint/no_vcr_recording"
|
13
13
|
|
14
14
|
module Rf
|
15
|
+
# Stylez
|
15
16
|
module Stylez
|
16
17
|
def self.reek_config_path
|
17
18
|
File.expand_path("../../ruby/.reek.yml", __dir__)
|
@@ -18,10 +18,10 @@ module RuboCop
|
|
18
18
|
# end
|
19
19
|
# end
|
20
20
|
class NoBangStateMachineEvents < Cop
|
21
|
-
MSG =
|
21
|
+
MSG = "Event names ending with a `!` define `!`-ended methods that do not raise"
|
22
22
|
|
23
|
-
def_node_matcher :is_state_machine_event?,
|
24
|
-
def_node_matcher :is_state_machine?,
|
23
|
+
def_node_matcher :is_state_machine_event?, "(send nil? :event (sym $_))"
|
24
|
+
def_node_matcher :is_state_machine?, "(block (send nil? :state_machine ...) ...)"
|
25
25
|
|
26
26
|
def on_send(node)
|
27
27
|
return unless (event_name = is_state_machine_event?(node))
|
@@ -13,9 +13,9 @@ module RuboCop
|
|
13
13
|
# # good
|
14
14
|
# class Foo < Api::Base
|
15
15
|
class NoGrapeAPI < Cop
|
16
|
-
MSG =
|
16
|
+
MSG = "Prefer inheriting `Api::AuthBase` or `Api::Base` instead of `Grape::API`."
|
17
17
|
|
18
|
-
def_node_matcher :inherits_Grape_API?,
|
18
|
+
def_node_matcher :inherits_Grape_API?, "(class (const ...) (const (const nil? :Grape) :API) ...)"
|
19
19
|
|
20
20
|
def on_class(node)
|
21
21
|
return unless inherits_Grape_API?(node)
|
@@ -10,9 +10,9 @@ module RuboCop
|
|
10
10
|
# # good
|
11
11
|
# TimedRequest.get(...)
|
12
12
|
class NoHTTParty < Cop
|
13
|
-
MSG =
|
13
|
+
MSG = "Prefer `TimedRequest` instead of raw `HTTParty` calls."
|
14
14
|
|
15
|
-
def_node_matcher :is_HTTParty?,
|
15
|
+
def_node_matcher :is_HTTParty?, "(send (const nil? :HTTParty) ...)"
|
16
16
|
|
17
17
|
def on_send(node)
|
18
18
|
return unless is_HTTParty?(node)
|
@@ -11,9 +11,9 @@ module RuboCop
|
|
11
11
|
# MultiJson.load(...)
|
12
12
|
#
|
13
13
|
class NoJSON < Cop
|
14
|
-
MSG =
|
14
|
+
MSG = "Use `MultiJson` instead of `JSON`."
|
15
15
|
|
16
|
-
def_node_matcher :is_JSON?,
|
16
|
+
def_node_matcher :is_JSON?, "(const nil? :JSON)"
|
17
17
|
|
18
18
|
def on_const(node)
|
19
19
|
return unless is_JSON?(node)
|
@@ -11,9 +11,9 @@ module RuboCop
|
|
11
11
|
# raise ArgumentError, 'foo'
|
12
12
|
#
|
13
13
|
class NoUntypedRaise < Cop
|
14
|
-
MSG =
|
14
|
+
MSG = "Do not raise untyped exceptions, specify the error type so it can be rescued specifically."
|
15
15
|
|
16
|
-
def_node_matcher :is_untyped_raise?,
|
16
|
+
def_node_matcher :is_untyped_raise?, "(send nil? {:raise :fail} (str ...) ...)"
|
17
17
|
|
18
18
|
def on_send(node)
|
19
19
|
return unless is_untyped_raise?(node)
|
@@ -1,5 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
|
2
|
+
|
3
|
+
require "unparser"
|
3
4
|
|
4
5
|
module RuboCop
|
5
6
|
module Cop
|
@@ -15,7 +16,7 @@ module RuboCop
|
|
15
16
|
class NoVCRRecording < RuboCop::Cop::Base
|
16
17
|
extend AutoCorrector
|
17
18
|
|
18
|
-
MSG =
|
19
|
+
MSG = "Do not set :record option in VCR"
|
19
20
|
|
20
21
|
def_node_search :is_only_setting_record_option?, <<~PATTERN
|
21
22
|
(pair
|
@@ -48,7 +49,7 @@ module RuboCop
|
|
48
49
|
|
49
50
|
add_offense(node) do |corrector|
|
50
51
|
if is_only_setting_record_option?(node)
|
51
|
-
corrector.replace(node,
|
52
|
+
corrector.replace(node, "vcr: true")
|
52
53
|
elsif is_setting_record_option?(node)
|
53
54
|
corrector.replace(node, remove_record_option(node))
|
54
55
|
end
|
@@ -20,7 +20,7 @@ module RuboCop
|
|
20
20
|
#
|
21
21
|
# https://ruby-doc.org/core-2.4.0/String.html#method-i-25
|
22
22
|
class Obscure < Cop
|
23
|
-
MSG =
|
23
|
+
MSG = "Do not use the flipflop operator"
|
24
24
|
|
25
25
|
def_node_matcher :is_stringformat?, <<-PATTERN
|
26
26
|
(send {str dstr} $:% ...)
|
@@ -36,7 +36,7 @@ module RuboCop
|
|
36
36
|
|
37
37
|
def on_send(node)
|
38
38
|
return unless is_stringformat?(node)
|
39
|
-
add_offense(node, message:
|
39
|
+
add_offense(node, message: "Do not use String#%")
|
40
40
|
end
|
41
41
|
end
|
42
42
|
end
|
@@ -14,7 +14,7 @@ module RuboCop
|
|
14
14
|
# requires :id, type: Integer, positive_int32: true
|
15
15
|
# end
|
16
16
|
class UsePositiveInt32Validator < Cop
|
17
|
-
MSG =
|
17
|
+
MSG = "If this Integer maps to a postgres Integer column, validate with `positive_int32: true`"
|
18
18
|
|
19
19
|
# check if the param is `requires` / `optional`
|
20
20
|
def_node_search :find_params_hashes, <<~PATTERN
|
@@ -23,9 +23,9 @@ module RuboCop
|
|
23
23
|
$(hash ...) ...)
|
24
24
|
PATTERN
|
25
25
|
# check if hash contains `type: Integer`
|
26
|
-
def_node_search :is_type_integer?,
|
26
|
+
def_node_search :is_type_integer?, "(pair (sym :type) (const nil? :Integer))"
|
27
27
|
# check if the hash contains the `positive_int32` validator
|
28
|
-
def_node_search :validates_integer?,
|
28
|
+
def_node_search :validates_integer?, "(pair (sym :positive_int32) {{true false} (int _)})"
|
29
29
|
|
30
30
|
def on_block(node)
|
31
31
|
return unless (hash = find_params_hashes(node))
|
data/rf-stylez.gemspec
CHANGED
@@ -21,16 +21,16 @@ Gem::Specification.new do |spec|
|
|
21
21
|
spec.executables = ["rf-stylez"]
|
22
22
|
spec.require_paths = ["lib"]
|
23
23
|
|
24
|
-
spec.add_runtime_dependency "rubocop", "1.
|
25
|
-
spec.add_runtime_dependency "rubocop-rails", "2.
|
26
|
-
spec.add_runtime_dependency "rubocop-rspec", "2.
|
24
|
+
spec.add_runtime_dependency "rubocop", "1.54.1"
|
25
|
+
spec.add_runtime_dependency "rubocop-rails", "2.20.2"
|
26
|
+
spec.add_runtime_dependency "rubocop-rspec", "2.22.0"
|
27
27
|
spec.add_runtime_dependency "reek", "~> 6.1"
|
28
28
|
spec.add_runtime_dependency "get_env", "~> 0.2.0"
|
29
29
|
spec.add_runtime_dependency "unparser", "~> 0.6"
|
30
30
|
spec.add_runtime_dependency "pronto", "~> 0.11.1"
|
31
|
-
spec.add_runtime_dependency "pronto-rubocop", "~> 0.11.
|
31
|
+
spec.add_runtime_dependency "pronto-rubocop", "~> 0.11.5"
|
32
32
|
|
33
|
-
spec.add_development_dependency "bundler", "~> 2.
|
33
|
+
spec.add_development_dependency "bundler", "~> 2.4"
|
34
34
|
spec.add_development_dependency "rake", "~> 13.0"
|
35
35
|
spec.add_development_dependency "rspec", ">= 3.4"
|
36
36
|
spec.add_development_dependency "byebug"
|
data/ruby/rubocop.yml
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
AllCops:
|
2
|
-
TargetRubyVersion: 2
|
2
|
+
TargetRubyVersion: 3.2
|
3
3
|
DisabledByDefault: true
|
4
4
|
Include:
|
5
5
|
- '**/*.rb'
|
@@ -180,6 +180,8 @@ Style/Documentation:
|
|
180
180
|
Enabled: true
|
181
181
|
Style/DocumentationMethod:
|
182
182
|
Enabled: false
|
183
|
+
Style/OpenStructUse:
|
184
|
+
Enabled: true
|
183
185
|
|
184
186
|
Layout/LineLength:
|
185
187
|
Enabled: true
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rf-stylez
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Emanuel Evans
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-07-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rubocop
|
@@ -16,42 +16,42 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 1.
|
19
|
+
version: 1.54.1
|
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
|
-
version: 1.
|
26
|
+
version: 1.54.1
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rubocop-rails
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - '='
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 2.
|
33
|
+
version: 2.20.2
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - '='
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 2.
|
40
|
+
version: 2.20.2
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rubocop-rspec
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - '='
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 2.
|
47
|
+
version: 2.22.0
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - '='
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 2.
|
54
|
+
version: 2.22.0
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: reek
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -114,28 +114,28 @@ dependencies:
|
|
114
114
|
requirements:
|
115
115
|
- - "~>"
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version: 0.11.
|
117
|
+
version: 0.11.5
|
118
118
|
type: :runtime
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
122
|
- - "~>"
|
123
123
|
- !ruby/object:Gem::Version
|
124
|
-
version: 0.11.
|
124
|
+
version: 0.11.5
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
name: bundler
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
128
128
|
requirements:
|
129
129
|
- - "~>"
|
130
130
|
- !ruby/object:Gem::Version
|
131
|
-
version: '2.
|
131
|
+
version: '2.4'
|
132
132
|
type: :development
|
133
133
|
prerelease: false
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
136
|
- - "~>"
|
137
137
|
- !ruby/object:Gem::Version
|
138
|
-
version: '2.
|
138
|
+
version: '2.4'
|
139
139
|
- !ruby/object:Gem::Dependency
|
140
140
|
name: rake
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
@@ -201,6 +201,7 @@ extensions: []
|
|
201
201
|
extra_rdoc_files: []
|
202
202
|
files:
|
203
203
|
- ".circleci/config.yml"
|
204
|
+
- ".circleci/update-jira.sh"
|
204
205
|
- ".github/dependabot.yml"
|
205
206
|
- ".github/workflows/pronto.yml"
|
206
207
|
- ".gitignore"
|
@@ -247,7 +248,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
247
248
|
- !ruby/object:Gem::Version
|
248
249
|
version: '0'
|
249
250
|
requirements: []
|
250
|
-
rubygems_version: 3.4.
|
251
|
+
rubygems_version: 3.4.10
|
251
252
|
signing_key:
|
252
253
|
specification_version: 4
|
253
254
|
summary: Styles for Rainforest code
|