legion-settings 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1e632a79686eed42021f36c2d95cafea8c963bd8afac3ca62cc3eb78eb75557a
4
- data.tar.gz: 92d444574391b074f13d1bf46f7397fc1db204d98121289dba836a6c3e624a0c
3
+ metadata.gz: 88c48b0708d96f97993a42390a6c6d6d17a8e24394dee86b42d876b37ea26698
4
+ data.tar.gz: 04e4a033cb797c6bee0a9e63062ad8a43dc0cbaeeaee4a8a7124f90dee608967
5
5
  SHA512:
6
- metadata.gz: 30a526f2b17b1411df5bf07c317e78b8951f0c8b687d0eddc139c901b77782163c06859f516780f1d2dde862e1c96846dedbe1c250b895dc4daf413e69f69177
7
- data.tar.gz: 8b2675306320ac65631849e9e6ba3a39f3e751c1e110e62bf55b576485dfc1b44d8de5276bbc7caaddd1c5e65ef5c44e9802d66f5e47f751d12029a86dca470a
6
+ metadata.gz: 3f4a84d333b9fda8e729f2090eb68da8a65d79e01a4a17286eb97ebb2dd13836746afcd8ec4ef012857599539b23a5de71d313010178cfc650f862c40e2dddc6
7
+ data.tar.gz: 50afc947274be3acbe9d56fb359f51ee044e93a3c7fcfb8ff53d9c05c2a888ed9d97aa375ff6d4691e8f5ed10a32d0deab66a96cf8ea4d3b3a4cb2def6282e5a
@@ -1,167 +1,61 @@
1
- version: 2.1 # use CircleCI 2.0
1
+ version: 2.1
2
+ orbs:
3
+ ruby: circleci/ruby@0.2.1
4
+
2
5
  jobs:
3
6
  "rubocop":
4
7
  docker:
5
- - image: circleci/ruby:2.4-node
8
+ - image: circleci/ruby:2.5-node
6
9
  steps:
7
10
  - checkout
8
- - run: gem install rubocop
11
+ - ruby/load-cache
12
+ - ruby/install-deps
9
13
  - run:
10
14
  name: Run Rubocop
11
- command: rubocop
12
- - store_test_results:
13
- path: test_results
14
- "ruby-two-zero":
15
- docker:
16
- - image: circleci/ruby:2.0
17
- steps:
18
- - checkout
19
- - run:
20
- name: Bundle Install
21
- command: bundle install
22
- - run:
23
- name: Run RSpec
24
- command: bundle exec rspec --format progress --format RspecJunitFormatter -o test-results/rspec/results.xml
25
- when: always
26
- - store_test_results:
27
- path: test-results
28
- "ruby-two-one":
29
- docker:
30
- - image: circleci/ruby:2.1
31
- steps:
32
- - checkout
33
- - run:
34
- name: Bundle Install
35
- command: bundle install
36
- - run:
37
- name: Run RSpec
38
- command: bundle exec rspec --format progress --format RspecJunitFormatter -o test-results/rspec/results.xml
39
- when: always
40
- - store_test_results:
41
- path: test-results
42
- "ruby-two-two":
43
- docker:
44
- - image: circleci/ruby:2.2
45
- steps:
46
- - checkout
47
- - run:
48
- name: Bundle Install
49
- command: bundle install
50
- - run:
51
- name: Run RSpec
52
- command: bundle exec rspec --format progress --format RspecJunitFormatter -o test-results/rspec/results.xml
53
- when: always
54
- - store_test_results:
55
- path: test-results
56
-
57
- "ruby-two-three":
58
- docker:
59
- - image: circleci/ruby:2.3
60
- steps:
61
- - checkout
62
- - run:
63
- name: Bundle Install
64
- command: bundle install
65
- - run:
66
- name: Run RSpec
67
- command: bundle exec rspec --format progress --format RspecJunitFormatter -o test-results/rspec/results.xml
68
- when: always
69
- - store_test_results:
70
- path: test-results
71
-
72
- "ruby-two-four":
73
- docker:
74
- - image: circleci/ruby:2.4-node
75
- steps:
76
- - checkout
77
- - run:
78
- name: Bundle Install
79
- command: bundle install
80
- - run:
81
- name: Run RSpec
82
- command: bundle exec rspec --format progress --format RspecJunitFormatter -o test-results/rspec/results.xml
83
- when: always
84
- - store_test_results:
85
- path: test-results
15
+ command: bundle exec rubocop
16
+ - ruby/save-cache
86
17
  "ruby-two-five":
87
18
  docker:
88
- - image: circleci/ruby:2.5-node
19
+ - image: circleci/ruby:2.5
20
+ - image: memcached:1.5-alpine
89
21
  steps:
90
22
  - checkout
91
- - run:
92
- name: Bundle Install
93
- command: bundle install
94
- - run:
95
- name: Run RSpec
96
- command: bundle exec rspec --format progress --format RspecJunitFormatter -o test-results/rspec/results.xml
97
- when: always
98
- - store_test_results:
99
- path: test-results
23
+ - ruby/load-cache
24
+ - ruby/install-deps
25
+ - ruby/run-tests
26
+ - ruby/save-cache
100
27
  "ruby-two-six":
101
28
  docker:
102
- - image: circleci/ruby:2.6-node
29
+ - image: circleci/ruby:2.6
30
+ - image: memcached:1.5-alpine
103
31
  steps:
104
32
  - checkout
105
- - run:
106
- name: Bundle Install
107
- command: bundle install
108
- - run:
109
- name: Run RSpec
110
- command: bundle exec rspec --format progress --format RspecJunitFormatter -o test-results/rspec/results.xml
111
- when: always
112
- - store_test_results:
113
- path: test-results
114
- "jruby-nine-two":
33
+ - ruby/load-cache
34
+ - ruby/install-deps
35
+ - ruby/run-tests
36
+ - ruby/save-cache
37
+ "ruby-two-seven":
115
38
  docker:
116
- - image: circleci/jruby:9.2
39
+ - image: circleci/ruby:2.7
40
+ - image: memcached:1.5-alpine
117
41
  steps:
118
42
  - checkout
119
- - run:
120
- name: Bundle Install
121
- command: bundle install
122
- - run:
123
- name: Run RSpec
124
- command: bundle exec rspec --format progress --format RspecJunitFormatter -o test-results/rspec/results.xml
125
- when: always
126
- - store_test_results:
127
- path: test-results
43
+ - ruby/load-cache
44
+ - ruby/install-deps
45
+ - ruby/run-tests
46
+ - ruby/save-cache
128
47
 
129
48
  workflows:
130
49
  version: 2
131
- cop_rake_deploy:
50
+ rubocop-rspec:
132
51
  jobs:
133
52
  - rubocop
134
- # - ruby-two-two:
135
- # requires:
136
- # - ruby-two-four
137
- # filters:
138
- # branches:
139
- # only: /\bdevelop\b|\bmaster\b/
140
- - ruby-two-three:
141
- requires:
142
- - ruby-two-four
143
- filters:
144
- branches:
145
- only: /\bdevelop\b|\bmaster\b/
146
- - ruby-two-four:
147
- requires:
148
- - rubocop
149
53
  - ruby-two-five:
150
54
  requires:
151
- - ruby-two-four
152
- filters:
153
- branches:
154
- only: /\bdevelop\b|\bmaster\b/
55
+ - rubocop
155
56
  - ruby-two-six:
156
57
  requires:
157
- - ruby-two-four
158
- filters:
159
- branches:
160
- only: /\bdevelop\b|\bmaster\b/
161
- # - jruby-nine-two:
162
- # requires:
163
- # - ruby-two-two
164
- # - ruby-two-three
165
- # - ruby-two-four
166
- # - ruby-two-five
167
- # - ruby-two-six
58
+ - ruby-two-five
59
+ - ruby-two-seven:
60
+ requires:
61
+ - ruby-two-five
@@ -1,4 +1,4 @@
1
- Metrics/LineLength:
1
+ Layout/LineLength:
2
2
  Max: 120
3
3
  Metrics/MethodLength:
4
4
  Max: 30
@@ -10,15 +10,13 @@ Layout/SpaceAroundEqualsInParameterDefault:
10
10
  EnforcedStyle: space
11
11
  Style/SymbolArray:
12
12
  Enabled: true
13
- Layout/AlignHash:
13
+ Layout/HashAlignment:
14
14
  EnforcedHashRocketStyle: table
15
15
  EnforcedColonStyle: table
16
- Style/HashSyntax:
17
- EnforcedStyle: ruby19_no_mixed_keys
18
16
  Style/Documentation:
19
17
  Enabled: false
20
18
  AllCops:
21
- TargetRubyVersion: 2.4
19
+ TargetRubyVersion: 2.5
22
20
  Style/FrozenStringLiteralComment:
23
21
  Enabled: false
24
22
  Naming/FileName:
@@ -1,5 +1,9 @@
1
1
  # Legion::Settings Changelog
2
2
 
3
+ ## v0.2.0
4
+ * Adding merge settings method
5
+ * Updating default settings
6
+
3
7
  ## v0.1.1
4
8
  * Updating default hash to include legion:{extensions:{}}
5
9
  * Fixing rubocop errors
@@ -20,11 +20,12 @@ Gem::Specification.new do |spec|
20
20
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
21
21
  spec.require_paths = ['lib']
22
22
 
23
- spec.add_development_dependency 'bundler', '~> 1'
23
+ spec.add_development_dependency 'bundler'
24
24
  # spec.add_development_dependency 'codecov', '~> 0'
25
- spec.add_development_dependency 'rake', '~> 10.0'
26
- spec.add_development_dependency 'rspec', '~> 3.0'
27
- spec.add_development_dependency 'rspec_junit_formatter', '~> 0'
25
+ spec.add_development_dependency 'rake'
26
+ spec.add_development_dependency 'rspec'
27
+ spec.add_development_dependency 'rspec_junit_formatter'
28
+ spec.add_development_dependency 'rubocop'
28
29
  if RUBY_ENGINE == 'jruby'
29
30
  spec.add_dependency('legion-json-jruby', '~> 0.1')
30
31
  else
@@ -26,13 +26,22 @@ module Legion
26
26
  Legion::Logging.info('Legion::Settings was not loading, auto loading now!') if @loader.nil?
27
27
  @loader = load if @loader.nil?
28
28
  @loader[key]
29
+ rescue NoMethodError, TypeError
30
+ Legion::Logging.fatal 'rescue inside [](key)'
31
+ nil
29
32
  end
30
33
 
31
34
  def set_prop(key, value)
32
- Legion::Logging.info('Legion::Settings was not loading, auto loading now!') if @loader.nil?
33
35
  @loader = load if @loader.nil?
34
36
  @loader[key] = value
35
37
  end
38
+
39
+ def merge_settings(key, hash)
40
+ @loader = load if @loader.nil?
41
+ thing = {}
42
+ thing[key.to_sym] = hash
43
+ @loader.load_module_default(thing)
44
+ end
36
45
  end
37
46
  end
38
47
  end
@@ -1,13 +1,14 @@
1
+ require 'socket'
2
+
1
3
  module Legion
2
4
  module Settings
3
- # This is the main settings class, needs refactor
4
5
  class Loader
5
- # This is the standard error
6
6
  class Error < RuntimeError; end
7
7
 
8
8
  attr_reader :warnings
9
9
  attr_reader :errors
10
10
  attr_reader :loaded_files
11
+ attr_reader :settings
11
12
 
12
13
  def initialize
13
14
  @warnings = []
@@ -20,43 +21,35 @@ module Legion
20
21
 
21
22
  def client_defaults
22
23
  {
23
- name: system_hostname,
24
- address: system_address
24
+ hostname: system_hostname,
25
+ address: system_address,
26
+ name: "#{::Socket.gethostname.gsub('.', '_')}.#{::Process.pid}"
25
27
  }
26
28
  end
27
29
 
28
- def default_settings # rubocop:disable Metrics/MethodLength
29
- default = {
30
- client: {},
31
- legion: {
32
- spawn: {
33
- limit: 12
34
- },
35
- extensions: {}
30
+ def default_settings
31
+ {
32
+ client: client_defaults,
33
+ cluster: { public_keys: {} },
34
+ crypt: {
35
+ cluster_secret: nil,
36
+ cluster_secret_timeout: 5,
37
+ vault: { connected: false }
38
+ },
39
+ cache: { enabled: true, connected: false, driver: 'dalli' },
40
+ extensions: {},
41
+ default_extension_settings: {
42
+ logger: { level: 'info', trace: false, extended: false }
36
43
  },
37
- transport: {
38
- rabbitmq: {
39
- user: 'guest',
40
- password: 'guest',
41
- host: '127.0.0.1'
42
- }
44
+ logging: {
45
+ level: 'debug',
46
+ location: 'stdout',
47
+ trace: true,
48
+ backtrace_logging: true
43
49
  },
44
- data: {
45
- mysql: {
46
- user: 'legion',
47
- password: 'legion',
48
- max_connections: 20,
49
- database: 'legion',
50
- host: '127.0.0.1',
51
- debug: false
52
- },
53
- models: {},
54
- connection: {},
55
- migrations: { continue_on_fail: false }
56
- }
50
+ transport: { connected: false },
51
+ data: { connected: false }
57
52
  }
58
- default[:client] = client_defaults if %w[client rspec].include?(legion_service_name)
59
- default
60
53
  end
61
54
 
62
55
  def self.create_category_methods
@@ -103,6 +96,12 @@ module Legion
103
96
  load_api_env
104
97
  end
105
98
 
99
+ def load_module_default(config)
100
+ merged = deep_merge(@settings, config)
101
+ deep_diff(@settings, merged) unless @loaded_files.empty?
102
+ @settings = merged
103
+ end
104
+
106
105
  def load_file(file) # rubocop:disable Metrics/AbcSize
107
106
  Legion::Logging.debug("Trying to load file #{file}")
108
107
  if File.file?(file) && File.readable?(file)
@@ -1,120 +1,62 @@
1
1
  module Legion
2
2
  module Settings
3
3
  module Rules
4
- # Check that a value is a hash.
5
- #
6
- # @param value [Object] to check.
7
- # @return [TrueClass, FalseClass]
8
4
  def must_be_a_hash(value)
9
5
  value.is_a?(Hash)
10
6
  end
11
7
  alias is_a_hash? must_be_a_hash
12
8
 
13
- # Check that a value is a hash, if set (not nil).
14
- #
15
- # @param value [Object] to check.
16
- # @return [TrueClass, FalseClass]
17
9
  def must_be_a_hash_if_set(value)
18
10
  value.nil? ? true : must_be_a_hash(value)
19
11
  end
20
12
 
21
- # Check that a value is an array.
22
- #
23
- # @param value [Object] to check.
24
- # @return [TrueClass, FalseClass]
25
13
  def must_be_an_array(value)
26
14
  value.is_a?(Array)
27
15
  end
28
16
  alias is_an_array? must_be_an_array
29
17
 
30
- # Check that a value is an array, if set (not nil).
31
- #
32
- # @param value [Object] to check.
33
- # @return [TrueClass, FalseClass]
34
18
  def must_be_an_array_if_set(value)
35
19
  value.nil? ? true : must_be_an_array(value)
36
20
  end
37
21
 
38
- # Check that a value is a string.
39
- #
40
- # @param value [Object] to check.
41
- # @return [TrueClass, FalseClass]
42
22
  def must_be_a_string(value)
43
23
  value.is_a?(String)
44
24
  end
45
25
  alias is_a_string? must_be_a_string
46
26
 
47
- # Check that a value is a string, if set (not nil).
48
- #
49
- # @param value [Object] to check.
50
- # @return [TrueClass, FalseClass]
51
27
  def must_be_a_string_if_set(value)
52
28
  value.nil? ? true : must_be_a_string(value)
53
29
  end
54
30
 
55
- # Check that a value is an integer.
56
- #
57
- # @param value [Object] to check.
58
- # @return [TrueClass, FalseClass]
59
31
  def must_be_an_integer(value)
60
32
  value.is_a?(Integer)
61
33
  end
62
34
  alias is_an_integer? must_be_an_integer
63
35
 
64
- # Check that a value is an integer, if set (not nil).
65
- #
66
- # @param value [Object] to check.
67
- # @return [TrueClass, FalseClass]
68
36
  def must_be_an_integer_if_set(value)
69
37
  value.nil? ? true : must_be_an_integer(value)
70
38
  end
71
39
 
72
- # Check that a value is numeric.
73
- #
74
- # @param value [Object] to check.
75
- # @return [TrueClass, FalseClass]
76
40
  def must_be_a_numeric(value)
77
41
  value.is_a?(Numeric)
78
42
  end
79
43
 
80
- # Check that a value is numeric, if set (not nil).
81
- #
82
- # @param value [Object] to check.
83
- # @return [TrueClass, FalseClass]
84
44
  def must_be_a_numeric_if_set(value)
85
45
  value.nil? ? true : must_be_a_numeric(value)
86
46
  end
87
47
 
88
- # Check that a value matches a regular expression.
89
- #
90
- # @param regex [Regexp] pattern to compare with value.
91
- # @param value [Object] to check if matches pattern.
92
- # @return [TrueClass, FalseClass]
93
48
  def must_match_regex(regex, value)
94
49
  (value =~ regex).zero?
95
50
  end
96
51
 
97
- # Check if a value is boolean.
98
- #
99
- # @param value [Object] to check.
100
- # @return [TrueClass, FalseClass]
101
52
  def must_be_boolean(value)
102
53
  !value.nil?
103
54
  end
104
55
 
105
- # Check if a value is boolean, if set (no nil).
106
- #
107
- # @param value [Object] to check.
108
- # @return [TrueClass, FalseClass]
109
56
  def must_be_boolean_if_set(value)
110
57
  value.nil? ? true : must_be_boolean(value)
111
58
  end
112
59
 
113
- # Check that value items are all strings and not empty.
114
- #
115
- # @param value [Array] with items to check.
116
- # @param regex [Regexp] to validate string items with.
117
- # @return [TrueClass, FalseClass]
118
60
  def items_must_be_strings(value, regex = nil)
119
61
  value.all? do |item|
120
62
  item.is_a?(String) && !item.empty? &&
@@ -122,46 +64,26 @@ module Legion
122
64
  end
123
65
  end
124
66
 
125
- # Check if either of the values are set (not nil).
126
- #
127
- # @param values [Array<Object>] to check if not nil.
128
- # @return [TrueClass, FalseClass]
129
67
  def either_are_set?(*values)
130
68
  values.any? do |value|
131
69
  !value.nil?
132
70
  end
133
71
  end
134
72
 
135
- # Check if values are valid times (can be parsed).
136
- #
137
- # @param values [Array<Object>] to check if valid time.
138
- # @return [TrueClass, FalseClass]
139
73
  def must_be_time(*values)
140
74
  values.all? do |value|
141
- begin
142
- Time.parse(value)
143
- rescue StandardError
144
- false
145
- end
75
+ Time.parse(value)
76
+ rescue StandardError
77
+ false
146
78
  end
147
79
  end
148
80
 
149
- # Check if values are allowed.
150
- #
151
- # @param allowed [Array<Object>] allowed values.
152
- # @param values [Array<Object>] to check if allowed.
153
- # @return [TrueClass, FalseClass]
154
81
  def must_be_either(allowed, *values)
155
82
  values.flatten.all? do |value|
156
83
  allowed.include?(value)
157
84
  end
158
85
  end
159
86
 
160
- # Check if values are allowed, if set (not nil).
161
- #
162
- # @param allowed [Array<Object>] allowed values.
163
- # @param values [Array<Object>] to check if allowed.
164
- # @return [TrueClass, FalseClass]
165
87
  def must_be_either_if_set(allowed, *values)
166
88
  values[0].nil? ? true : must_be_either(allowed, values)
167
89
  end
@@ -8,19 +8,12 @@ module Legion
8
8
  include Rules
9
9
  include Validators
10
10
 
11
- # @!attribute [r] failures
12
- # @return [Array] validation failures.
13
11
  attr_reader :failures
14
12
 
15
13
  def initialize
16
14
  @failures = []
17
15
  end
18
16
 
19
- # Run the validator.
20
- #
21
- # @param settings [Hash] legion settings to validate.
22
- # @param service [String] legion service to validate for.
23
- # @return [Array] validation failures.
24
17
  def run(settings, service = nil)
25
18
  validate_legion(settings[:legion])
26
19
  validate_transport(settings[:transport])
@@ -46,10 +39,6 @@ module Legion
46
39
 
47
40
  private
48
41
 
49
- # Validate setting categories: checks, filters, mutators, and
50
- # handlers.
51
- #
52
- # @param settings [Hash] legion settings to validate.
53
42
  def validate_categories(settings)
54
43
  CATEGORIES.each do |category|
55
44
  if is_a_hash?(settings[category])
@@ -63,12 +52,6 @@ module Legion
63
52
  end
64
53
  end
65
54
 
66
- # Record an invalid object with a message.
67
- #
68
- # @param object [Object] invalid object.
69
- # @param message [String] message explaining why the object is
70
- # invalid.
71
- # @return [Array] current validation failures.
72
55
  def invalid(object, message)
73
56
  @failures << {
74
57
  object: object,
@@ -2,10 +2,6 @@ module Legion
2
2
  module Settings
3
3
  module Validators
4
4
  module Legion
5
- # Validate Legion spawn.
6
- # Validates: limit
7
- #
8
- # @param legion [Hash] legion definition.
9
5
  def validate_legion_spawn(legion)
10
6
  spawn = legion[:spawn]
11
7
  if is_a_hash?(spawn)
@@ -20,10 +16,6 @@ module Legion
20
16
  end
21
17
  end
22
18
 
23
- # Validate a Legion definition.
24
- # Validates: spawn
25
- #
26
- # @param legion [Hash] legion definition.
27
19
  def validate_legion(legion)
28
20
  if is_a_hash?(legion)
29
21
  validate_legion_spawn(legion)
@@ -1,5 +1,5 @@
1
1
  module Legion
2
2
  module Settings
3
- VERSION = '0.1.1'.freeze
3
+ VERSION = '0.2.0'.freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,69 +1,83 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: legion-settings
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Esity
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-08-08 00:00:00.000000000 Z
11
+ date: 2020-02-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '1'
19
+ version: '0'
20
20
  type: :development
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: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '10.0'
33
+ version: '0'
34
34
  type: :development
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: '10.0'
40
+ version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '3.0'
47
+ version: '0'
48
48
  type: :development
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: '3.0'
54
+ version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rspec_junit_formatter
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rubocop
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
67
81
  - !ruby/object:Gem::Version
68
82
  version: '0'
69
83
  - !ruby/object:Gem::Dependency