psenv 0.3.0 → 0.8.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 22c36df5755de3776968d07be71a0d52516dd735
4
- data.tar.gz: 640960bf9362a799a8fb9949e254ce1e8ba0170b
2
+ SHA256:
3
+ metadata.gz: 95068b4608673d5fbdf66f5a71969f7caf4ed2c1a9c96055afe728e9e4873a49
4
+ data.tar.gz: 61ff9ffd8ebde74cf8bcaf7a03f1dbc71981d93fb1702b0e44ec2f0f9f91df13
5
5
  SHA512:
6
- metadata.gz: b5af830d42d9d7439de2fc669d1f4e1cf6cb71179f423bae3045e97c9a2a686fd14c9bb1d3170302be0ff49093938d76080e2766957b5afaa93c910036273ca5
7
- data.tar.gz: 59cf8d38ed1633b8bd617597a2c510af40b0e67c06dac909137ea51507925f38e71cf635b01646872251152124e4a6ff03ca5284e22d08d04fb3be10a6545fa7
6
+ metadata.gz: 2fab2133154b2cae69583ca13ff7c888cd3ff2d4c52730ab39ce2561dfcd76f3a74683d16902244b01c122aebf55683358184cd58b50feade49388309c56201a
7
+ data.tar.gz: f04c8b12451ce63a948eb3db9c9b07a67b662bd4a8ae18a4fbdef2c5642c5e440a18e06d9dff2d936e459706a2c35c4ccf69cb4b53b316c4ea93e74ed1781510
@@ -0,0 +1,59 @@
1
+ name: Ruby
2
+
3
+ on: [push]
4
+
5
+ jobs:
6
+ lint:
7
+ runs-on: ubuntu-latest
8
+ steps:
9
+ - uses: actions/checkout@v1
10
+ - name: Set up Ruby 2.7
11
+ uses: ruby/setup-ruby@v1
12
+ with:
13
+ ruby-version: 2.7
14
+ - name: Build and test with Rake
15
+ run: |
16
+ gem install bundler
17
+ bundle install --jobs 4 --retry 3
18
+ bundle exec standardrb
19
+
20
+ test:
21
+ runs-on: ubuntu-latest
22
+ strategy:
23
+ matrix:
24
+ ruby_version: [2.4, 2.5, 2.6, 2.7, 3.0]
25
+
26
+ steps:
27
+ - uses: actions/checkout@v1
28
+ - name: Set up Ruby ${{ matrix.ruby_version }}
29
+ uses: ruby/setup-ruby@v1
30
+ with:
31
+ ruby-version: ${{ matrix.ruby_version }}
32
+ - name: Build and test with Rake
33
+ run: |
34
+ gem install bundler
35
+ bundle install --jobs 4 --retry 3
36
+ bundle exec rspec
37
+
38
+ rails:
39
+ runs-on: ubuntu-latest
40
+ strategy:
41
+ matrix:
42
+ ruby_version: [2.5, 2.6, 2.7, 3.0]
43
+ steps:
44
+ - uses: actions/checkout@v1
45
+ - name: Set up Ruby ${{ matrix.ruby_version }}
46
+ uses: ruby/setup-ruby@v1
47
+ with:
48
+ ruby-version: ${{ matrix.ruby_version }}
49
+ - name: Test gem in Rails application
50
+ run: |
51
+ cd spec/rails
52
+ gem install bundler
53
+ bundle install --jobs 4 --retry 3
54
+ bundle exec rails test
55
+ env:
56
+ AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
57
+ AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
58
+ AWS_DEFAULT_REGION: us-east-2
59
+ PARAMETER_STORE_PATH: /psenv/test/
data/.gitignore CHANGED
@@ -9,3 +9,5 @@
9
9
 
10
10
  # rspec failure tracking
11
11
  .rspec_status
12
+
13
+ Gemfile.lock
data/README.md CHANGED
@@ -1,10 +1,8 @@
1
1
  # Psenv
2
2
 
3
- **Work in progress**
4
-
5
3
  Shim to load environment variables from [AWS Systems Manager Parameter Store](https://aws.amazon.com/systems-manager/features/#Parameter_Store) into ENV.
6
4
 
7
- Psenv currently heavily borrows from [Dotenv](https://github.com/bkeepers/dotenv), mainly because I use it in roughly every project so it made since for the APIs to match.
5
+ Psenv currently heavily borrows from [Dotenv](https://github.com/bkeepers/dotenv), mainly because I use it in roughly every project so it made sense for the APIs to match.
8
6
 
9
7
  ## Installation
10
8
 
@@ -23,6 +21,26 @@ And then execute:
23
21
  Set the `PARAMETER_STORE_PATH` environment variable with the AWS Parameter
24
22
  Store path that you wish to load.
25
23
 
24
+ #### Spring preloader
25
+
26
+ The Spring preloader does not detect environment variable changes as
27
+ application changes. This means that when using Spring, new or changed
28
+ environment variables from AWS SSM Parameter Store will not become available
29
+ immediately. This also applies to any change to `PARAMETER_STORE_PATH`.
30
+
31
+ There are two work-arounds. You can force Spring to restart by killing it with
32
+ `bundle exec spring stop`.
33
+
34
+ Alternatively, you can update your Spring configuration to reload variables
35
+ using Psenv after the process forks. To do this, add the following configuration
36
+ to `config/spring.rb`:
37
+
38
+ ```
39
+ Spring.after_fork do
40
+ Psenv.load
41
+ end
42
+ ```
43
+
26
44
  ### Plain Ruby
27
45
 
28
46
  Add this line to your application's Gemfile:
data/Rakefile CHANGED
@@ -1,17 +1,20 @@
1
1
  require "bundler/gem_helper"
2
2
  require "rspec/core/rake_task"
3
+ require "rubocop/rake_task"
4
+
5
+ class ParameterStoreEnvRailsGemHelper < Bundler::GemHelper
6
+ def guard_already_tagged
7
+ end
8
+
9
+ def tag_version
10
+ end
11
+ end
3
12
 
4
13
  namespace "psenv" do
5
14
  Bundler::GemHelper.install_tasks name: "psenv"
6
15
  end
7
16
 
8
17
  namespace "psenv-rails" do
9
- class ParameterStoreEnvRailsGemHelper < Bundler::GemHelper
10
- def guard_already_tagged; end
11
-
12
- def tag_version; end
13
- end
14
-
15
18
  ParameterStoreEnvRailsGemHelper.install_tasks name: "psenv-rails"
16
19
  end
17
20
 
@@ -20,5 +23,6 @@ task install: ["psenv:install", "psenv-rails:install"]
20
23
  task release: ["psenv:release", "psenv-rails:release"]
21
24
 
22
25
  RSpec::Core::RakeTask.new(:spec)
26
+ RuboCop::RakeTask.new(:rubocop)
23
27
 
24
- task default: :spec
28
+ task default: %i[rubocop spec]
@@ -6,7 +6,7 @@ module Psenv
6
6
 
7
7
  def apply
8
8
  @variables.each do |k, v|
9
- ENV.store(k.to_s, v) unless ENV.has_key?(k.to_s)
9
+ ENV.store(k.to_s, v) unless ENV.key?(k.to_s)
10
10
  end
11
11
  end
12
12
 
@@ -20,11 +20,10 @@ module Psenv
20
20
  end
21
21
 
22
22
  def call
23
- Hash[
24
- parameters.
25
- map { |parameter| Parameter.new(parameter) }.
26
- map { |parameter| [parameter.name, parameter.value] }
27
- ]
23
+ parameters
24
+ .map { |parameter| Parameter.new(parameter) }
25
+ .map { |parameter| [parameter.name, parameter.value] }
26
+ .to_h
28
27
  end
29
28
 
30
29
  def self.call(path)
@@ -38,10 +37,17 @@ module Psenv
38
37
  end
39
38
 
40
39
  def parameters
41
- ssm.
42
- get_parameters_by_path(path: @path, with_decryption: true).
43
- parameters
44
- rescue StandardError => error
40
+ parameters = []
41
+ response = ssm.get_parameters_by_path(path: @path, with_decryption: true)
42
+ parameters << response.parameters
43
+
44
+ while response.next_page?
45
+ response = response.next_page
46
+ parameters << response.parameters
47
+ end
48
+
49
+ parameters.flatten
50
+ rescue => error
45
51
  raise RetrieveError, error
46
52
  end
47
53
  end
data/lib/psenv/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Psenv
2
- VERSION = "0.3.0".freeze
2
+ VERSION = "0.8.0".freeze
3
3
  end
data/psenv-rails.gemspec CHANGED
@@ -1,27 +1,26 @@
1
-
2
1
  lib = File.expand_path("lib", __dir__)
3
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
3
  require "psenv/version"
5
4
 
6
5
  Gem::Specification.new do |spec|
7
- spec.name = "psenv-rails"
8
- spec.version = Psenv::VERSION
9
- spec.authors = ["Andrew Tomaka"]
10
- spec.email = ["atomaka@gmail.com"]
6
+ spec.name = "psenv-rails"
7
+ spec.version = Psenv::VERSION
8
+ spec.authors = ["Andrew Tomaka"]
9
+ spec.email = ["atomaka@gmail.com"]
11
10
 
12
- spec.summary = "Load AWS SSM Parameter Store values into your Rails environment."
13
- spec.homepage = "https://github.com/atomaka/psenv"
14
- spec.license = "MIT"
11
+ spec.summary = "Load AWS SSM Parameter Store values into your Rails environment."
12
+ spec.homepage = "https://github.com/atomaka/psenv"
13
+ spec.license = "MIT"
15
14
 
16
- spec.files = `git ls-files lib | grep rails`.
17
- split($OUTPUT_RECORD_SEPARATOR).
18
- reject do |f|
15
+ spec.files = `git ls-files lib | grep rails`
16
+ .split($OUTPUT_RECORD_SEPARATOR)
17
+ .reject do |f|
19
18
  f.match(%r{^(test|spec|features)/})
20
19
  end + ["README.md", "LICENSE.txt"]
21
- spec.bindir = "exe"
22
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
+ spec.bindir = "exe"
21
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
23
22
  spec.require_paths = ["lib"]
24
23
 
25
24
  spec.add_dependency "psenv", Psenv::VERSION
26
- spec.add_dependency "railties", ">= 3.2", "< 5.3"
25
+ spec.add_dependency "railties", ">= 3.2", "< 6.2"
27
26
  end
data/psenv.gemspec CHANGED
@@ -1,30 +1,28 @@
1
-
2
1
  lib = File.expand_path("lib", __dir__)
3
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
3
  require "psenv/version"
5
4
 
6
5
  Gem::Specification.new do |spec|
7
- spec.name = "psenv"
8
- spec.version = Psenv::VERSION
9
- spec.authors = ["Andrew Tomaka"]
10
- spec.email = ["atomaka@gmail.com"]
6
+ spec.name = "psenv"
7
+ spec.version = Psenv::VERSION
8
+ spec.authors = ["Andrew Tomaka"]
9
+ spec.email = ["atomaka@gmail.com"]
11
10
 
12
- spec.summary = "Load AWS SSM Parameter Store values into your environment."
13
- spec.homepage = "https://github.com/atomaka/psenv"
14
- spec.license = "MIT"
11
+ spec.summary = "Load AWS SSM Parameter Store values into your environment."
12
+ spec.homepage = "https://github.com/atomaka/psenv"
13
+ spec.license = "MIT"
15
14
 
16
- spec.files = `git ls-files -z`.split("\x0").reject do |f|
15
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
17
16
  f.match(%r{^(test|spec|features)/})
18
17
  end
19
- spec.bindir = "exe"
20
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
18
+ spec.bindir = "exe"
19
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
21
20
  spec.require_paths = ["lib"]
22
21
 
23
- spec.add_development_dependency "bundler", "~> 1.16"
24
22
  spec.add_development_dependency "pry"
25
- spec.add_development_dependency "rake", "~> 10.0"
26
- spec.add_development_dependency "rspec", "~> 3.0"
27
- spec.add_development_dependency "rubocop", "0.54"
23
+ spec.add_development_dependency "rake", ">= 12.3.3"
24
+ spec.add_development_dependency "rspec", "~> 3"
25
+ spec.add_development_dependency "standard"
28
26
  spec.add_development_dependency "webmock", "~> 3.3"
29
27
 
30
28
  spec.add_dependency "aws-sdk-ssm", "~> 1"
metadata CHANGED
@@ -1,29 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: psenv
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Tomaka
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-04-10 00:00:00.000000000 Z
11
+ date: 2021-10-23 00:00:00.000000000 Z
12
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
13
  - !ruby/object:Gem::Dependency
28
14
  name: pry
29
15
  requirement: !ruby/object:Gem::Requirement
@@ -42,44 +28,44 @@ dependencies:
42
28
  name: rake
43
29
  requirement: !ruby/object:Gem::Requirement
44
30
  requirements:
45
- - - "~>"
31
+ - - ">="
46
32
  - !ruby/object:Gem::Version
47
- version: '10.0'
33
+ version: 12.3.3
48
34
  type: :development
49
35
  prerelease: false
50
36
  version_requirements: !ruby/object:Gem::Requirement
51
37
  requirements:
52
- - - "~>"
38
+ - - ">="
53
39
  - !ruby/object:Gem::Version
54
- version: '10.0'
40
+ version: 12.3.3
55
41
  - !ruby/object:Gem::Dependency
56
42
  name: rspec
57
43
  requirement: !ruby/object:Gem::Requirement
58
44
  requirements:
59
45
  - - "~>"
60
46
  - !ruby/object:Gem::Version
61
- version: '3.0'
47
+ version: '3'
62
48
  type: :development
63
49
  prerelease: false
64
50
  version_requirements: !ruby/object:Gem::Requirement
65
51
  requirements:
66
52
  - - "~>"
67
53
  - !ruby/object:Gem::Version
68
- version: '3.0'
54
+ version: '3'
69
55
  - !ruby/object:Gem::Dependency
70
- name: rubocop
56
+ name: standard
71
57
  requirement: !ruby/object:Gem::Requirement
72
58
  requirements:
73
- - - '='
59
+ - - ">="
74
60
  - !ruby/object:Gem::Version
75
- version: '0.54'
61
+ version: '0'
76
62
  type: :development
77
63
  prerelease: false
78
64
  version_requirements: !ruby/object:Gem::Requirement
79
65
  requirements:
80
- - - '='
66
+ - - ">="
81
67
  - !ruby/object:Gem::Version
82
- version: '0.54'
68
+ version: '0'
83
69
  - !ruby/object:Gem::Dependency
84
70
  name: webmock
85
71
  requirement: !ruby/object:Gem::Requirement
@@ -108,19 +94,17 @@ dependencies:
108
94
  - - "~>"
109
95
  - !ruby/object:Gem::Version
110
96
  version: '1'
111
- description:
97
+ description:
112
98
  email:
113
99
  - atomaka@gmail.com
114
100
  executables: []
115
101
  extensions: []
116
102
  extra_rdoc_files: []
117
103
  files:
104
+ - ".github/workflows/ruby.yml"
118
105
  - ".gitignore"
119
106
  - ".rspec"
120
- - ".rubocop.yml"
121
- - ".travis.yml"
122
107
  - Gemfile
123
- - Gemfile.lock
124
108
  - LICENSE.txt
125
109
  - README.md
126
110
  - Rakefile
@@ -137,7 +121,7 @@ homepage: https://github.com/atomaka/psenv
137
121
  licenses:
138
122
  - MIT
139
123
  metadata: {}
140
- post_install_message:
124
+ post_install_message:
141
125
  rdoc_options: []
142
126
  require_paths:
143
127
  - lib
@@ -152,9 +136,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
152
136
  - !ruby/object:Gem::Version
153
137
  version: '0'
154
138
  requirements: []
155
- rubyforge_project:
156
- rubygems_version: 2.6.13
157
- signing_key:
139
+ rubygems_version: 3.2.22
140
+ signing_key:
158
141
  specification_version: 4
159
142
  summary: Load AWS SSM Parameter Store values into your environment.
160
143
  test_files: []
data/.rubocop.yml DELETED
@@ -1,654 +0,0 @@
1
- AllCops:
2
- Exclude:
3
- - db/schema.rb
4
- - vendor/**/*
5
-
6
- Metrics/LineLength:
7
- Description: 'Limit lines to 80 characters.'
8
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#80-character-limits'
9
- Max: 80
10
- Exclude:
11
- - ./*.gemspec
12
-
13
-
14
- Naming/AccessorMethodName:
15
- Description: Check the naming of accessor methods for get_/set_.
16
- Enabled: false
17
-
18
- Style/Alias:
19
- Description: 'Use alias_method instead of alias.'
20
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#alias-method'
21
- Enabled: false
22
-
23
- Style/ArrayJoin:
24
- Description: 'Use Array#join instead of Array#*.'
25
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#array-join'
26
- Enabled: false
27
-
28
- Style/AsciiComments:
29
- Description: 'Use only ascii symbols in comments.'
30
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#english-comments'
31
- Enabled: false
32
-
33
- Naming/AsciiIdentifiers:
34
- Description: 'Use only ascii symbols in identifiers.'
35
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#english-identifiers'
36
- Enabled: false
37
-
38
- Style/Attr:
39
- Description: 'Checks for uses of Module#attr.'
40
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#attr'
41
- Enabled: false
42
-
43
- Metrics/BlockNesting:
44
- Description: 'Avoid excessive block nesting'
45
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#three-is-the-number-thou-shalt-count'
46
- Enabled: false
47
-
48
- Style/CaseEquality:
49
- Description: 'Avoid explicit use of the case equality operator(===).'
50
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-case-equality'
51
- Enabled: false
52
-
53
- Style/CharacterLiteral:
54
- Description: 'Checks for uses of character literals.'
55
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-character-literals'
56
- Enabled: false
57
-
58
- Style/ClassAndModuleChildren:
59
- Description: 'Checks style of children classes and modules.'
60
- Enabled: true
61
- EnforcedStyle: nested
62
-
63
- Metrics/ClassLength:
64
- Description: 'Avoid classes longer than 100 lines of code.'
65
- Enabled: false
66
-
67
- Metrics/ModuleLength:
68
- Description: 'Avoid modules longer than 100 lines of code.'
69
- Enabled: false
70
-
71
- Style/ClassVars:
72
- Description: 'Avoid the use of class variables.'
73
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-class-vars'
74
- Enabled: false
75
-
76
- Style/CollectionMethods:
77
- Enabled: true
78
- PreferredMethods:
79
- find: detect
80
- inject: reduce
81
- collect: map
82
- find_all: select
83
-
84
- Style/ColonMethodCall:
85
- Description: 'Do not use :: for method call.'
86
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#double-colons'
87
- Enabled: false
88
-
89
- Style/CommentAnnotation:
90
- Description: >-
91
- Checks formatting of special comments
92
- (TODO, FIXME, OPTIMIZE, HACK, REVIEW).
93
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#annotate-keywords'
94
- Enabled: false
95
-
96
- Metrics/AbcSize:
97
- Description: >-
98
- A calculated magnitude based on number of assignments,
99
- branches, and conditions.
100
- Enabled: false
101
-
102
- Metrics/BlockLength:
103
- CountComments: true # count full line comments?
104
- Max: 25
105
- ExcludedMethods: []
106
- Exclude:
107
- - "spec/**/*"
108
-
109
- Metrics/CyclomaticComplexity:
110
- Description: >-
111
- A complexity metric that is strongly correlated to the number
112
- of test cases needed to validate a method.
113
- Enabled: false
114
-
115
- Rails/Delegate:
116
- Description: 'Prefer delegate method for delegations.'
117
- Enabled: false
118
-
119
- Style/PreferredHashMethods:
120
- Description: 'Checks use of `has_key?` and `has_value?` Hash methods.'
121
- StyleGuide: '#hash-key'
122
- Enabled: false
123
-
124
- Style/Documentation:
125
- Description: 'Document classes and non-namespace modules.'
126
- Enabled: false
127
-
128
- Style/DoubleNegation:
129
- Description: 'Checks for uses of double negation (!!).'
130
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-bang-bang'
131
- Enabled: false
132
-
133
- Style/EachWithObject:
134
- Description: 'Prefer `each_with_object` over `inject` or `reduce`.'
135
- Enabled: false
136
-
137
- Style/EmptyLiteral:
138
- Description: 'Prefer literals to Array.new/Hash.new/String.new.'
139
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#literal-array-hash'
140
- Enabled: false
141
-
142
- # Checks whether the source file has a utf-8 encoding comment or not
143
- # AutoCorrectEncodingComment must match the regex
144
- # /#.*coding\s?[:=]\s?(?:UTF|utf)-8/
145
- Style/Encoding:
146
- Enabled: false
147
-
148
- Style/EvenOdd:
149
- Description: 'Favor the use of Fixnum#even? && Fixnum#odd?'
150
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#predicate-methods'
151
- Enabled: false
152
-
153
- Naming/FileName:
154
- Description: 'Use snake_case for source file names.'
155
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#snake-case-files'
156
- Enabled: false
157
-
158
- Style/FrozenStringLiteralComment:
159
- Description: >-
160
- Add the frozen_string_literal comment to the top of files
161
- to help transition from Ruby 2.3.0 to Ruby 3.0.
162
- Enabled: false
163
-
164
- Style/FlipFlop:
165
- Description: 'Checks for flip flops'
166
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-flip-flops'
167
- Enabled: false
168
-
169
- Style/FormatString:
170
- Description: 'Enforce the use of Kernel#sprintf, Kernel#format or String#%.'
171
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#sprintf'
172
- Enabled: false
173
-
174
- Style/GlobalVars:
175
- Description: 'Do not introduce global variables.'
176
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#instance-vars'
177
- Reference: 'http://www.zenspider.com/Languages/Ruby/QuickRef.html'
178
- Enabled: false
179
-
180
- Style/GuardClause:
181
- Description: 'Check for conditionals that can be replaced with guard clauses'
182
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-nested-conditionals'
183
- Enabled: false
184
-
185
- Style/IfUnlessModifier:
186
- Description: >-
187
- Favor modifier if/unless usage when you have a
188
- single-line body.
189
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#if-as-a-modifier'
190
- Enabled: false
191
-
192
- Style/IfWithSemicolon:
193
- Description: 'Do not use if x; .... Use the ternary operator instead.'
194
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-semicolon-ifs'
195
- Enabled: false
196
-
197
- Style/InlineComment:
198
- Description: 'Avoid inline comments.'
199
- Enabled: false
200
-
201
- Style/Lambda:
202
- Description: 'Use the new lambda literal syntax for single-line blocks.'
203
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#lambda-multi-line'
204
- Enabled: false
205
-
206
- Style/LambdaCall:
207
- Description: 'Use lambda.call(...) instead of lambda.(...).'
208
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#proc-call'
209
- Enabled: false
210
-
211
- Style/LineEndConcatenation:
212
- Description: >-
213
- Use \ instead of + or << to concatenate two string literals at
214
- line end.
215
- Enabled: false
216
-
217
- Metrics/MethodLength:
218
- Description: 'Avoid methods longer than 10 lines of code.'
219
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#short-methods'
220
- Enabled: false
221
-
222
- Style/ModuleFunction:
223
- Description: 'Checks for usage of `extend self` in modules.'
224
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#module-function'
225
- Enabled: false
226
-
227
- Style/MultilineBlockChain:
228
- Description: 'Avoid multi-line chains of blocks.'
229
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#single-line-blocks'
230
- Enabled: false
231
-
232
- Style/NegatedIf:
233
- Description: >-
234
- Favor unless over if for negative conditions
235
- (or control flow or).
236
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#unless-for-negatives'
237
- Enabled: false
238
-
239
- Style/NegatedWhile:
240
- Description: 'Favor until over while for negative conditions.'
241
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#until-for-negatives'
242
- Enabled: false
243
-
244
- Style/Next:
245
- Description: 'Use `next` to skip iteration instead of a condition at the end.'
246
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-nested-conditionals'
247
- Enabled: false
248
-
249
- Style/NilComparison:
250
- Description: 'Prefer x.nil? to x == nil.'
251
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#predicate-methods'
252
- Enabled: false
253
-
254
- Style/Not:
255
- Description: 'Use ! instead of not.'
256
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#bang-not-not'
257
- Enabled: false
258
-
259
- Style/NumericLiterals:
260
- Description: >-
261
- Add underscores to large numeric literals to improve their
262
- readability.
263
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#underscores-in-numerics'
264
- Enabled: false
265
-
266
- Style/OneLineConditional:
267
- Description: >-
268
- Favor the ternary operator(?:) over
269
- if/then/else/end constructs.
270
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#ternary-operator'
271
- Enabled: false
272
-
273
- Naming/BinaryOperatorParameterName:
274
- Description: 'When defining binary operators, name the argument other.'
275
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#other-arg'
276
- Enabled: false
277
-
278
- Metrics/ParameterLists:
279
- Description: 'Avoid parameter lists longer than three or four parameters.'
280
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#too-many-params'
281
- Enabled: false
282
-
283
- Style/PercentLiteralDelimiters:
284
- Description: 'Use `%`-literal delimiters consistently'
285
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-literal-braces'
286
- Enabled: false
287
-
288
- Style/PerlBackrefs:
289
- Description: 'Avoid Perl-style regex back references.'
290
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-perl-regexp-last-matchers'
291
- Enabled: false
292
-
293
- Naming/PredicateName:
294
- Description: 'Check the names of predicate methods.'
295
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#bool-methods-qmark'
296
- NamePrefixBlacklist:
297
- - is_
298
- Exclude:
299
- - spec/**/*
300
-
301
- Style/Proc:
302
- Description: 'Use proc instead of Proc.new.'
303
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#proc'
304
- Enabled: false
305
-
306
- Style/RaiseArgs:
307
- Description: 'Checks the arguments passed to raise/fail.'
308
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#exception-class-messages'
309
- Enabled: false
310
-
311
- Style/RegexpLiteral:
312
- Description: 'Use / or %r around regular expressions.'
313
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-r'
314
- Enabled: false
315
-
316
- Style/SelfAssignment:
317
- Description: >-
318
- Checks for places where self-assignment shorthand should have
319
- been used.
320
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#self-assignment'
321
- Enabled: false
322
-
323
- Style/SingleLineBlockParams:
324
- Description: 'Enforces the names of some block params.'
325
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#reduce-blocks'
326
- Enabled: false
327
-
328
- Style/SingleLineMethods:
329
- Description: 'Avoid single-line methods.'
330
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-single-line-methods'
331
- Enabled: false
332
-
333
- Style/SignalException:
334
- Description: 'Checks for proper usage of fail and raise.'
335
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#fail-method'
336
- Enabled: false
337
-
338
- Style/SpecialGlobalVars:
339
- Description: 'Avoid Perl-style global variables.'
340
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-cryptic-perlisms'
341
- Enabled: false
342
-
343
- Style/StringLiterals:
344
- Description: 'Checks if uses of quotes match the configured preference.'
345
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#consistent-string-literals'
346
- EnforcedStyle: double_quotes
347
- Enabled: true
348
-
349
- Style/TrailingCommaInArguments:
350
- Description: 'Checks for trailing comma in argument lists.'
351
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-array-commas'
352
- EnforcedStyleForMultiline: comma
353
- SupportedStylesForMultiline:
354
- - comma
355
- - consistent_comma
356
- - no_comma
357
- Enabled: true
358
-
359
- Style/TrailingCommaInArrayLiteral:
360
- Description: 'Checks for trailing comma in array literals.'
361
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-array-commas'
362
- EnforcedStyleForMultiline: comma
363
- SupportedStylesForMultiline:
364
- - comma
365
- - consistent_comma
366
- - no_comma
367
- Enabled: true
368
-
369
- Style/TrailingCommaInHashLiteral:
370
- Description: 'Checks for trailing comma in hash literals.'
371
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-array-commas'
372
- EnforcedStyleForMultiline: comma
373
- SupportedStylesForMultiline:
374
- - comma
375
- - consistent_comma
376
- - no_comma
377
- Enabled: true
378
-
379
- Style/TrivialAccessors:
380
- Description: 'Prefer attr_* methods to trivial readers/writers.'
381
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#attr_family'
382
- Enabled: false
383
-
384
- Style/VariableInterpolation:
385
- Description: >-
386
- Don't interpolate global, instance and class variables
387
- directly in strings.
388
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#curlies-interpolate'
389
- Enabled: false
390
-
391
- Style/WhenThen:
392
- Description: 'Use when x then ... for one-line cases.'
393
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#one-line-cases'
394
- Enabled: false
395
-
396
- Style/WhileUntilModifier:
397
- Description: >-
398
- Favor modifier while/until usage when you have a
399
- single-line body.
400
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#while-as-a-modifier'
401
- Enabled: false
402
-
403
- Style/WordArray:
404
- Description: 'Use %w or %W for arrays of words.'
405
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-w'
406
- Enabled: false
407
-
408
- # Layout
409
-
410
- Layout/AlignParameters:
411
- Description: 'Here we check if the parameters on a multi-line method call or definition are aligned.'
412
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-double-indent'
413
- Enabled: false
414
-
415
- Layout/ConditionPosition:
416
- Description: >-
417
- Checks for condition placed in a confusing position relative to
418
- the keyword.
419
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#same-line-condition'
420
- Enabled: false
421
-
422
- Layout/DotPosition:
423
- Description: 'Checks the position of the dot in multi-line method calls.'
424
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#consistent-multi-line-chains'
425
- EnforcedStyle: trailing
426
-
427
- Layout/ExtraSpacing:
428
- Description: 'Do not use unnecessary spacing.'
429
- Enabled: true
430
-
431
- Layout/MultilineOperationIndentation:
432
- Description: >-
433
- Checks indentation of binary operations that span more than
434
- one line.
435
- Enabled: true
436
- EnforcedStyle: indented
437
-
438
- Layout/MultilineMethodCallIndentation:
439
- Description: >-
440
- Checks indentation of method calls with the dot operator
441
- that span more than one line.
442
- Enabled: true
443
- EnforcedStyle: indented
444
-
445
- Layout/InitialIndentation:
446
- Description: >-
447
- Checks the indentation of the first non-blank non-comment line in a file.
448
- Enabled: false
449
-
450
- # Lint
451
-
452
- Lint/AmbiguousOperator:
453
- Description: >-
454
- Checks for ambiguous operators in the first argument of a
455
- method invocation without parentheses.
456
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#parens-as-args'
457
- Enabled: false
458
-
459
- Lint/AmbiguousRegexpLiteral:
460
- Description: >-
461
- Checks for ambiguous regexp literals in the first argument of
462
- a method invocation without parenthesis.
463
- Enabled: false
464
-
465
- Lint/AssignmentInCondition:
466
- Description: "Don't use assignment in conditions."
467
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#safe-assignment-in-condition'
468
- Enabled: false
469
-
470
- Lint/CircularArgumentReference:
471
- Description: "Don't refer to the keyword argument in the default value."
472
- Enabled: false
473
-
474
- Lint/DeprecatedClassMethods:
475
- Description: 'Check for deprecated class method calls.'
476
- Enabled: false
477
-
478
- Lint/DuplicatedKey:
479
- Description: 'Check for duplicate keys in hash literals.'
480
- Enabled: false
481
-
482
- Lint/EachWithObjectArgument:
483
- Description: 'Check for immutable argument given to each_with_object.'
484
- Enabled: false
485
-
486
- Lint/ElseLayout:
487
- Description: 'Check for odd code arrangement in an else block.'
488
- Enabled: false
489
-
490
- Lint/FormatParameterMismatch:
491
- Description: 'The number of parameters to format/sprint must match the fields.'
492
- Enabled: false
493
-
494
- Lint/HandleExceptions:
495
- Description: "Don't suppress exception."
496
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#dont-hide-exceptions'
497
- Enabled: false
498
-
499
- Lint/LiteralAsCondition:
500
- Description: 'Checks of literals used in conditions.'
501
- Enabled: false
502
-
503
- Lint/LiteralInInterpolation:
504
- Description: 'Checks for literals used in interpolation.'
505
- Enabled: false
506
-
507
- Lint/Loop:
508
- Description: >-
509
- Use Kernel#loop with break rather than begin/end/until or
510
- begin/end/while for post-loop tests.
511
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#loop-with-break'
512
- Enabled: false
513
-
514
- Lint/NestedMethodDefinition:
515
- Description: 'Do not use nested method definitions.'
516
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-nested-methods'
517
- Enabled: false
518
-
519
- Lint/NonLocalExitFromIterator:
520
- Description: 'Do not use return in iterator to cause non-local exit.'
521
- Enabled: false
522
-
523
- Lint/ParenthesesAsGroupedExpression:
524
- Description: >-
525
- Checks for method calls with a space before the opening
526
- parenthesis.
527
- StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#parens-no-spaces'
528
- Enabled: false
529
-
530
- Lint/RequireParentheses:
531
- Description: >-
532
- Use parentheses in the method call to avoid confusion
533
- about precedence.
534
- Enabled: false
535
-
536
- Lint/UnderscorePrefixedVariableName:
537
- Description: 'Do not use prefix `_` for a variable that is used.'
538
- Enabled: false
539
-
540
- Lint/UnneededCopDisableDirective:
541
- Description: >-
542
- Checks for rubocop:disable comments that can be removed.
543
- Note: this cop is not disabled when disabling all cops.
544
- It must be explicitly disabled.
545
- Enabled: false
546
-
547
- Lint/Void:
548
- Description: 'Possible use of operator/literal/variable in void context.'
549
- Enabled: false
550
-
551
- # Performance
552
-
553
- Performance/CaseWhenSplat:
554
- Description: >-
555
- Place `when` conditions that use splat at the end
556
- of the list of `when` branches.
557
- Enabled: false
558
-
559
- Performance/Count:
560
- Description: >-
561
- Use `count` instead of `select...size`, `reject...size`,
562
- `select...count`, `reject...count`, `select...length`,
563
- and `reject...length`.
564
- Enabled: false
565
-
566
- Performance/Detect:
567
- Description: >-
568
- Use `detect` instead of `select.first`, `find_all.first`,
569
- `select.last`, and `find_all.last`.
570
- Reference: 'https://github.com/JuanitoFatas/fast-ruby#enumerabledetect-vs-enumerableselectfirst-code'
571
- Enabled: false
572
-
573
- Performance/FlatMap:
574
- Description: >-
575
- Use `Enumerable#flat_map`
576
- instead of `Enumerable#map...Array#flatten(1)`
577
- or `Enumberable#collect..Array#flatten(1)`
578
- Reference: 'https://github.com/JuanitoFatas/fast-ruby#enumerablemaparrayflatten-vs-enumerableflat_map-code'
579
- Enabled: false
580
-
581
- Performance/ReverseEach:
582
- Description: 'Use `reverse_each` instead of `reverse.each`.'
583
- Reference: 'https://github.com/JuanitoFatas/fast-ruby#enumerablereverseeach-vs-enumerablereverse_each-code'
584
- Enabled: false
585
-
586
- Performance/Sample:
587
- Description: >-
588
- Use `sample` instead of `shuffle.first`,
589
- `shuffle.last`, and `shuffle[Fixnum]`.
590
- Reference: 'https://github.com/JuanitoFatas/fast-ruby#arrayshufflefirst-vs-arraysample-code'
591
- Enabled: false
592
-
593
- Performance/Size:
594
- Description: >-
595
- Use `size` instead of `count` for counting
596
- the number of elements in `Array` and `Hash`.
597
- Reference: 'https://github.com/JuanitoFatas/fast-ruby#arraycount-vs-arraysize-code'
598
- Enabled: false
599
-
600
- Performance/StringReplacement:
601
- Description: >-
602
- Use `tr` instead of `gsub` when you are replacing the same
603
- number of characters. Use `delete` instead of `gsub` when
604
- you are deleting characters.
605
- Reference: 'https://github.com/JuanitoFatas/fast-ruby#stringgsub-vs-stringtr-code'
606
- Enabled: false
607
-
608
- # Rails
609
-
610
- Rails/ActionFilter:
611
- Description: 'Enforces consistent use of action filter methods.'
612
- Enabled: false
613
-
614
- Rails/Date:
615
- Description: >-
616
- Checks the correct usage of date aware methods,
617
- such as Date.today, Date.current etc.
618
- Enabled: false
619
-
620
- Rails/FindBy:
621
- Description: 'Prefer find_by over where.first.'
622
- Enabled: false
623
-
624
- Rails/FindEach:
625
- Description: 'Prefer all.find_each over all.find.'
626
- Enabled: false
627
-
628
- Rails/HasAndBelongsToMany:
629
- Description: 'Prefer has_many :through to has_and_belongs_to_many.'
630
- Enabled: false
631
-
632
- Rails/Output:
633
- Description: 'Checks for calls to puts, print, etc.'
634
- Enabled: false
635
-
636
- Rails/ReadWriteAttribute:
637
- Description: >-
638
- Checks for read_attribute(:attr) and
639
- write_attribute(:attr, val).
640
- Enabled: false
641
-
642
- Rails/ScopeArgs:
643
- Description: 'Checks the arguments of ActiveRecord scopes.'
644
- Enabled: false
645
-
646
- Rails/TimeZone:
647
- Description: 'Checks the correct usage of time zone aware methods.'
648
- StyleGuide: 'https://github.com/bbatsov/rails-style-guide#time'
649
- Reference: 'http://danilenko.org/2012/7/6/rails_timezones'
650
- Enabled: false
651
-
652
- Rails/Validation:
653
- Description: 'Use validates :attribute, hash of validations.'
654
- Enabled: false
data/.travis.yml DELETED
@@ -1,13 +0,0 @@
1
- sudo: false
2
- cache: bundler
3
- language: ruby
4
- rvm:
5
- - 2.4.2
6
- before_install: gem install bundler -v 1.16.1
7
-
8
- jobs:
9
- include:
10
- - stage: analyze
11
- script: bundle exec rubocop
12
- - stage: test
13
- script: bundle exec rspec
data/Gemfile.lock DELETED
@@ -1,133 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- psenv (0.3.0)
5
- aws-sdk-ssm (~> 1)
6
- psenv-rails (0.3.0)
7
- psenv (= 0.3.0)
8
- railties (>= 3.2, < 5.3)
9
-
10
- GEM
11
- remote: https://rubygems.org/
12
- specs:
13
- actionpack (5.2.0)
14
- actionview (= 5.2.0)
15
- activesupport (= 5.2.0)
16
- rack (~> 2.0)
17
- rack-test (>= 0.6.3)
18
- rails-dom-testing (~> 2.0)
19
- rails-html-sanitizer (~> 1.0, >= 1.0.2)
20
- actionview (5.2.0)
21
- activesupport (= 5.2.0)
22
- builder (~> 3.1)
23
- erubi (~> 1.4)
24
- rails-dom-testing (~> 2.0)
25
- rails-html-sanitizer (~> 1.0, >= 1.0.3)
26
- activesupport (5.2.0)
27
- concurrent-ruby (~> 1.0, >= 1.0.2)
28
- i18n (>= 0.7, < 2)
29
- minitest (~> 5.1)
30
- tzinfo (~> 1.1)
31
- addressable (2.5.2)
32
- public_suffix (>= 2.0.2, < 4.0)
33
- ast (2.4.0)
34
- aws-partitions (1.79.0)
35
- aws-sdk-core (3.19.0)
36
- aws-partitions (~> 1.0)
37
- aws-sigv4 (~> 1.0)
38
- jmespath (~> 1.0)
39
- aws-sdk-ssm (1.10.0)
40
- aws-sdk-core (~> 3)
41
- aws-sigv4 (~> 1.0)
42
- aws-sigv4 (1.0.2)
43
- builder (3.2.3)
44
- coderay (1.1.2)
45
- concurrent-ruby (1.0.5)
46
- crack (0.4.3)
47
- safe_yaml (~> 1.0.0)
48
- crass (1.0.4)
49
- diff-lcs (1.3)
50
- erubi (1.7.1)
51
- hashdiff (0.3.7)
52
- i18n (1.0.0)
53
- concurrent-ruby (~> 1.0)
54
- jmespath (1.4.0)
55
- loofah (2.2.2)
56
- crass (~> 1.0.2)
57
- nokogiri (>= 1.5.9)
58
- method_source (0.9.0)
59
- mini_portile2 (2.3.0)
60
- minitest (5.11.3)
61
- nokogiri (1.8.2)
62
- mini_portile2 (~> 2.3.0)
63
- parallel (1.12.1)
64
- parser (2.5.0.5)
65
- ast (~> 2.4.0)
66
- powerpack (0.1.1)
67
- pry (0.11.3)
68
- coderay (~> 1.1.0)
69
- method_source (~> 0.9.0)
70
- public_suffix (3.0.2)
71
- rack (2.0.4)
72
- rack-test (1.0.0)
73
- rack (>= 1.0, < 3)
74
- rails-dom-testing (2.0.3)
75
- activesupport (>= 4.2.0)
76
- nokogiri (>= 1.6)
77
- rails-html-sanitizer (1.0.4)
78
- loofah (~> 2.2, >= 2.2.2)
79
- railties (5.2.0)
80
- actionpack (= 5.2.0)
81
- activesupport (= 5.2.0)
82
- method_source
83
- rake (>= 0.8.7)
84
- thor (>= 0.18.1, < 2.0)
85
- rainbow (3.0.0)
86
- rake (10.5.0)
87
- rspec (3.7.0)
88
- rspec-core (~> 3.7.0)
89
- rspec-expectations (~> 3.7.0)
90
- rspec-mocks (~> 3.7.0)
91
- rspec-core (3.7.1)
92
- rspec-support (~> 3.7.0)
93
- rspec-expectations (3.7.0)
94
- diff-lcs (>= 1.2.0, < 2.0)
95
- rspec-support (~> 3.7.0)
96
- rspec-mocks (3.7.0)
97
- diff-lcs (>= 1.2.0, < 2.0)
98
- rspec-support (~> 3.7.0)
99
- rspec-support (3.7.1)
100
- rubocop (0.54.0)
101
- parallel (~> 1.10)
102
- parser (>= 2.5)
103
- powerpack (~> 0.1)
104
- rainbow (>= 2.2.2, < 4.0)
105
- ruby-progressbar (~> 1.7)
106
- unicode-display_width (~> 1.0, >= 1.0.1)
107
- ruby-progressbar (1.9.0)
108
- safe_yaml (1.0.4)
109
- thor (0.20.0)
110
- thread_safe (0.3.6)
111
- tzinfo (1.2.5)
112
- thread_safe (~> 0.1)
113
- unicode-display_width (1.3.0)
114
- webmock (3.3.0)
115
- addressable (>= 2.3.6)
116
- crack (>= 0.3.2)
117
- hashdiff
118
-
119
- PLATFORMS
120
- ruby
121
-
122
- DEPENDENCIES
123
- bundler (~> 1.16)
124
- pry
125
- psenv!
126
- psenv-rails!
127
- rake (~> 10.0)
128
- rspec (~> 3.0)
129
- rubocop (= 0.54)
130
- webmock (~> 3.3)
131
-
132
- BUNDLED WITH
133
- 1.16.1