briefbag 0.0.1 → 0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 24c807fdac63eab78442377c2b2765ae65bb6e0f3436a3cc8ff6b20b5de6ef6c
4
- data.tar.gz: 9adb0fe34b1d23af84ee18d75fb1813a5ae4d8e52b7d2987ff1df5bbd0e0cd0c
3
+ metadata.gz: 68e10b6d355cb0b452cb927ec9f1689d7a3e76e152bb59bc54a786c62acf375f
4
+ data.tar.gz: ab6a9f6f66dd9d113548e7fc4ea5acf416a0170d25d7b87a8549235d209143c0
5
5
  SHA512:
6
- metadata.gz: b9436d0adc2e01f38710bfc6c0ecb1a6dd1bddc27c296e3ad3b54d23c06543a51cb83cbeb8a86251a141d6ee642a7550e5f7148e39e8a5b15afcba84aa4290b6
7
- data.tar.gz: b24fa250adb528144c68e6f1fdc04bda1170e85ba6980032d67993a2a40c123f9e46baf54323ee83e013337da258de383c8fce420243ba5fc9a8efe8eb384fc6
6
+ metadata.gz: 4650dac950a542f19e54409b3aceba096800b54a366f0e00097d08a5d71ded3711d7d9b8b2de8f1a9176c109be1724124b8f5d5fb01ac92585d390f67b55b560
7
+ data.tar.gz: a431b31e3018502b6ae027a10fda069df8dee905ee2a1607d069164a416d99e1278effd726ab64130fd986354ea33d546cdc01e57d952ea0921c919226bd0c22
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --format documentation
2
+ --color
3
+ --require spec_helper
data/.rubocop.yml ADDED
@@ -0,0 +1,20 @@
1
+ AllCops:
2
+ TargetRubyVersion: 3.1.2
3
+ SuggestExtensions: false
4
+
5
+ Style/StringLiterals:
6
+ Enabled: true
7
+ EnforcedStyle: single_quotes
8
+
9
+ Style/StringLiteralsInInterpolation:
10
+ Enabled: true
11
+ EnforcedStyle: single_quotes
12
+
13
+ Layout/LineLength:
14
+ Max: 120
15
+ Metrics/MethodLength:
16
+ Max: 20
17
+ Metrics/AbcSize:
18
+ Enabled: false
19
+ Style/Documentation:
20
+ Enabled: false
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.4.2@briefbag
1
+ 2.7.5@briefbag
data/CHANGELOG.md CHANGED
@@ -3,3 +3,8 @@
3
3
  ## 0.0.1 - 2023-01-22
4
4
 
5
5
  * Briefbag was born
6
+
7
+ ## 0.0.1 - 2023-03-15
8
+
9
+ * fix config
10
+
data/Gemfile CHANGED
@@ -6,8 +6,3 @@ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
6
6
 
7
7
  # Specify your gem's dependencies in briefbag.gemspec
8
8
  gemspec
9
-
10
- gem 'anyway_config'
11
- gem 'diplomat'
12
- gem 'hash_to_struct'
13
- gem 'rainbow'
data/README.md CHANGED
@@ -0,0 +1,135 @@
1
+ # Briefbag
2
+
3
+ [![Gem Version](https://badge.fury.io/rb/briefbag.svg)](https://badge.fury.io/rb/dadatas)
4
+ [![Gem](https://img.shields.io/gem/dt/briefbag.svg)](https://rubygems.org/gems/briefbag)
5
+
6
+
7
+ ## Application config management library.
8
+
9
+ ### What's Briefbag for?
10
+
11
+ Briefbag allows any ruby application to assemble configs `.yml` files, into single `.yml` file for the `development` environment
12
+ or use interact with [Consul's](http://www.consul.io/) distributed key value store
13
+
14
+ ### Does it work in rails?
15
+ Yup! In fact, we're using it in all of our rails production apps instead
16
+
17
+ ### How it is work
18
+ #### Overview
19
+ It works quite easily,
20
+ you are a developer and work in the `development` environment, it is more convenient for you to use one `.yml` file with configuration.
21
+ No more `.yml` zoos, or ENV variables - all in one place.
22
+ You just create constant (for example usage) in your application `APPLICATION_CONFIG` and forward.
23
+ refer to the desired config as an object. To do this, under the hood, I use [Struct](https://ruby-doc.org/core-2.7.5/Struct.html)
24
+ therefore, the appeal becomes simpler: `APPLICATION_CONFIG.database.port`
25
+
26
+ And what if you need to share the configuration file with colleagues, or use this design at other stands - `production` environment.
27
+ Consul comes to the rescue. Thanks to him, you can act config and undress in different stands.
28
+ Generation `.yml` file there are 2 rake tasks: rake
29
+
30
+ - **rake settings:consul2yml** - Get key/value variables from consul to `.yml` file
31
+ - **rake settings:template2yml** - Generate basic `.yml` for your app. Based on it, you can fill it with any values
32
+
33
+
34
+ Need add to you Rakefile
35
+ ```ruby
36
+
37
+ require 'briefbag'
38
+
39
+ spec = Gem::Specification.find_by_name 'briefbag'
40
+ load "#{spec.gem_dir}/lib/tasks/settings.rake"
41
+ ```
42
+
43
+ #### Notifications:
44
+ If you use `.yml` .You will see:
45
+ > NOTICE! Your app using configs from yml file
46
+
47
+ If you use Consul. You will see:
48
+
49
+ > NOTICE! Your app using configs from consul now
50
+ If you want to use local configs need to create config file. Just run `rake settings:consul2yml`
51
+
52
+
53
+ If you don't have access to consul (for example VPN or bad connections)
54
+ You will see:
55
+ >ALARM! You try are get consul config, but not connection to consul.
56
+ Please! connect to VPN or check consul configuration
57
+
58
+ ## Installation
59
+ Adding to your project:
60
+
61
+ ```ruby
62
+ gem 'briefbag'
63
+ ```
64
+ Then run `bundle install`
65
+
66
+ or
67
+
68
+ Or install it yourself as:
69
+ `gem install briefbag`
70
+
71
+ # Usage
72
+ > params to input:
73
+ - **consul_host(string)** - *(required)* Consul service ip or host.
74
+ - **consul_port(integer)** - *(optional)* Default value ${443}. Consul service port.
75
+ - **consul_token(string)** - *(optional)* If you use ACL Token.
76
+ - **consul_folder(string)** *(required)* Name config folder in consul.
77
+ - **environment(string)** - *(optional)* Default value ${development}. Environment in consul.
78
+ - **config_name(string)** - *(optional)* Default value ${application}. Config name in your application for example path to yml file: 'config/application.yml' you need use name 'application'.
79
+
80
+ ```ruby
81
+ require 'briefbag'
82
+
83
+ params_config = {
84
+ consul_host: 'consul.example.com',
85
+ consul_port: 8500,
86
+ consul_token: '233b604b-b92e-48c8-a253-5f11514e4b50',
87
+ consul_folder: 'briefbag',
88
+ environment: 'test',
89
+ config_name: 'some_config'
90
+ }
91
+ configs = Briefbag::Configuration.new(params_config).call
92
+ => #<struct database=#<struct adapter="postgresql", host="localhost", port=5432, database="tets_dev", username="postgres", password=""...
93
+ > configs.database
94
+ => #<struct adapter="postgresql", host="localhost", port=5432, database="tets_dev", username="postgres", password=""...
95
+ > configs.database.username
96
+ => "postgres"
97
+
98
+ ```
99
+ example yml file:
100
+
101
+ ```yml
102
+ ---
103
+ development:
104
+ database:
105
+ adapter: postgresql
106
+ host: localhost
107
+ port: 5432
108
+ database: tets_dev
109
+ username: postgres
110
+ password: ''
111
+ schema_search_path: public
112
+ encoding: utf8
113
+ pool: 30
114
+ puma:
115
+ port: 3000
116
+ workers: 0
117
+ min_threads: 1
118
+ max_threads: 4
119
+ max_ram: 4048
120
+ restart_frequency: 21600
121
+ sidekiq:
122
+ login: admin
123
+ password: admin
124
+ queues:
125
+ default: 2
126
+ concurrency: 2
127
+ ```
128
+
129
+ ## Contributions
130
+
131
+ Bug reports and pull requests are welcome on GitHub at https://github.com/MichaelHitchens/briefbag.
132
+
133
+ ## License
134
+
135
+ The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
data/briefbag.gemspec CHANGED
@@ -35,13 +35,14 @@ Gem::Specification.new do |spec|
35
35
  # Requires Ruby faraday to http request
36
36
  spec.add_dependency 'anyway_config', '~> 1.4.4'
37
37
  spec.add_dependency 'diplomat', '~> 2.4.4'
38
- spec.add_dependency 'hash_to_struct', '~> 1.0.0'
39
- spec.add_dependency 'rainbow', '~> 3.1.1'
38
+ spec.add_dependency 'hash_to_struct', '>=1.0.0'
39
+ spec.add_dependency 'rainbow', '>= 2.2.2'
40
+ spec.add_dependency 'rake', '>= 13.0.3'
40
41
 
41
- spec.add_development_dependency 'bundler', '~> 1.17.3'
42
- spec.add_development_dependency 'byebug'
42
+ spec.add_development_dependency 'bundler', '~> 2.3.26'
43
+ spec.add_development_dependency 'byebug', '~> 11.1.3'
43
44
  spec.add_development_dependency 'faker', '~> 2.12.0'
44
45
  spec.add_development_dependency 'rake', '~> 13.0.6'
45
46
  spec.add_development_dependency 'rspec', '~> 3.12.0'
46
- spec.add_development_dependency 'rubocop', '~> 1.12.1'
47
+ spec.add_development_dependency 'rubocop', '~> 1.10.0'
47
48
  end
@@ -3,7 +3,6 @@
3
3
  require 'briefbag/diplomat'
4
4
  require 'anyway_config'
5
5
  require 'rainbow'
6
- require 'byebug'
7
6
  require 'hash_to_struct'
8
7
 
9
8
  module Briefbag
@@ -11,12 +10,12 @@ module Briefbag
11
10
  attr_reader :config, :config_name
12
11
 
13
12
  MESSAGES = {
14
- notice_yml: 'NOTICE! Your app using configs from yml file',
15
- notice_consul: 'NOTICE! Your app using configs from consul now
16
- If you want to use local configs need to create config file. Just run `rake settings:consul2yml`',
17
- error_consul: 'ALARM! You try are get consul config, but not connection to consul.
13
+ notice_yml: 'NOTICE! Your app is using configs from yml file',
14
+ notice_consul: 'NOTICE! Your app is using configs from consul now
15
+ If you want to use local configs. you need to create config file. Just run `rake settings:consul2yml`',
16
+ error_consul: 'ALARM! You are trying to get consul config, but you have no consul connection.
18
17
  Please! connect to VPN or check consul configuration',
19
- error_yml: "ALARM! You try are using local schema connection! But file configuration doesn't exist!
18
+ error_yml: "ALARM! You are trying to use local schema connection! But file configuration doesn't exist!
20
19
  Just run `rake settings:consul2yml`"
21
20
  }.freeze
22
21
 
@@ -26,12 +25,12 @@ module Briefbag
26
25
  end
27
26
 
28
27
  def call
29
- diplomat = Briefbag::Diplomat.new(config).call
30
-
31
- return file_config if file_exist? && config[:environment].eql?('development')
28
+ return file_config if file_exist?
32
29
 
33
- return diplomat_config(diplomat[:consul_data]) if diplomat.success?
30
+ diplomat = Briefbag::Diplomat.new(config).call
34
31
  return Briefbag.aborting_message(MESSAGES[:error_consul]) unless diplomat.success?
32
+
33
+ diplomat_config(diplomat[:consul_data])
35
34
  rescue StandardError
36
35
  return Briefbag.aborting_message(MESSAGES[:error_yml]) unless file_exist?
37
36
 
@@ -45,22 +44,31 @@ module Briefbag
45
44
 
46
45
  def file_config
47
46
  Briefbag.warning_message(MESSAGES[:notice_yml])
48
- data = Anyway::Config.for(:application)[config[:environment]]
49
- HashToStruct.struct(data)
47
+ data = Anyway::Config.for(config_name.to_sym)
48
+
49
+ return HashToStruct.struct(data.deep_symbolize_keys) if defined?(Rails)
50
+
51
+ HashToStruct.struct(symbolize_all_keys(data))[config[:environment]]
50
52
  end
51
53
 
52
54
  def file_exist?
53
- return true if File.exist?(yaml_file)
54
-
55
- false
55
+ @file_exist ||= File.exist?(yaml_file)
56
56
  end
57
57
 
58
58
  def yaml_file
59
59
  @yaml_file ||= "./config/#{config_name}.yml"
60
60
  end
61
61
 
62
- def local_keys
63
- @local_keys ||= YAML.safe_load(File.read(yaml_file))[environment].keys
62
+
63
+ def symbolize_all_keys(h) # rubocop:disable Naming/MethodParameterName
64
+ if h.is_a? Hash
65
+ h.transform_keys!(&:to_sym)
66
+ h.each_value do |val|
67
+ val.each { |v| symbolize_all_keys(v) } if val.is_a? Array
68
+ symbolize_all_keys(val)
69
+ end
70
+ end
71
+ h
64
72
  end
65
73
  end
66
74
  end
@@ -1,16 +1,17 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'diplomat'
4
- require 'byebug'
5
4
  require 'socket'
6
5
 
7
6
  module Briefbag
8
7
  class Diplomat
9
8
  Result = Struct.new(:success?, :errors, :consul_data)
10
- attr_reader :config, :consul_folder
9
+ attr_reader :config, :consul_folder, :host, :port
11
10
 
12
11
  def initialize(config)
13
12
  @config = config
13
+ @host = config[:consul_host]
14
+ @port = config[:consul_port].nil? ? 443 : config[:consul_port]
14
15
  @consul_folder = "#{config[:environment]}/#{config[:consul_folder]}"
15
16
  end
16
17
 
@@ -22,7 +23,9 @@ module Briefbag
22
23
  def configuration
23
24
  ::Diplomat.configure do |conf|
24
25
  # Set up a custom Consul URL
25
- conf.url = url_build(config[:consul_host], config[:consul_port])
26
+ conf.url = url_build
27
+ break if config[:consul_token].nil?
28
+
26
29
  conf.options = {
27
30
  ssl: { version: :TLSv1_2 }, # rubocop:disable Naming/VariableNumber
28
31
  headers: { 'X-Consul-Token' => config[:consul_token] }
@@ -63,12 +66,12 @@ module Briefbag
63
66
  Result.new(false, [e], nil)
64
67
  end
65
68
 
66
- def url_build(host, port)
69
+ def url_build
67
70
  Object.const_get("URI::HTTP#{port.eql?(443) ? 'S' : ''}").build(host: host, port: port)
68
71
  end
69
72
 
70
73
  def check_consul
71
- Timeout.timeout(1) { TCPSocket.new(config[:consul_host], config[:consul_port]) }
74
+ Timeout.timeout(1) { TCPSocket.new(host, port) }
72
75
  Result.new(true, nil, nil)
73
76
  rescue Timeout::Error => e
74
77
  Result.new(false, [e], nil)
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Briefbag
4
+ class Railtie < Rails::Railtie
5
+ railtie_name :briefbag
6
+ rake_tasks do
7
+ path = File.expand_path(__dir__)
8
+ Dir.glob("#{path}/lib/tasks/**/*.rake").each { |f| load f }
9
+ end
10
+ end
11
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Briefbag
4
- VERSION = '0.0.1'
4
+ VERSION = '0.0.2'
5
5
  end
data/lib/briefbag.rb CHANGED
@@ -2,9 +2,9 @@
2
2
 
3
3
  require 'briefbag/version'
4
4
  require 'briefbag/configuration'
5
- require 'multipart/post'
6
5
 
7
6
  module Briefbag
7
+ require 'briefbag/railtie' if defined?(Rails::Railtie)
8
8
  class << self
9
9
  def warning_message(message, color: nil)
10
10
  color ||= :yellow
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ namespace :settings do
4
+ desc 'create application.yml from consul data'
5
+
6
+ # task :consul2yml [:consul_host, :consul_port, :consul_token, :consul_folder, :environment] do |_t, args|
7
+ # ss = Briefbag::Diplomat.new(consul_host: args[:consul_host],
8
+ # consul_port: args[:consul_port],
9
+ # consul_token: args[:consul_token],
10
+ # consul_folder: args[:consul_folder],
11
+ # environment: args[:environment]).call
12
+ # puts ss
13
+ # end
14
+
15
+ task consul2yml: :environment do
16
+ p 'ya rake task'
17
+ end
18
+
19
+ desc 'create application.yml from template'
20
+ task template2yml: :environment do
21
+ p 'ya rake task'
22
+ end
23
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: briefbag
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Hitchens
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-02-03 00:00:00.000000000 Z
11
+ date: 2023-03-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: anyway_config
@@ -42,58 +42,72 @@ dependencies:
42
42
  name: hash_to_struct
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: 1.0.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
54
  version: 1.0.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rainbow
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: 3.1.1
61
+ version: 2.2.2
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: 2.2.2
69
+ - !ruby/object:Gem::Dependency
70
+ name: rake
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: 13.0.3
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
67
81
  - !ruby/object:Gem::Version
68
- version: 3.1.1
82
+ version: 13.0.3
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: bundler
71
85
  requirement: !ruby/object:Gem::Requirement
72
86
  requirements:
73
87
  - - "~>"
74
88
  - !ruby/object:Gem::Version
75
- version: 1.17.3
89
+ version: 2.3.26
76
90
  type: :development
77
91
  prerelease: false
78
92
  version_requirements: !ruby/object:Gem::Requirement
79
93
  requirements:
80
94
  - - "~>"
81
95
  - !ruby/object:Gem::Version
82
- version: 1.17.3
96
+ version: 2.3.26
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: byebug
85
99
  requirement: !ruby/object:Gem::Requirement
86
100
  requirements:
87
- - - ">="
101
+ - - "~>"
88
102
  - !ruby/object:Gem::Version
89
- version: '0'
103
+ version: 11.1.3
90
104
  type: :development
91
105
  prerelease: false
92
106
  version_requirements: !ruby/object:Gem::Requirement
93
107
  requirements:
94
- - - ">="
108
+ - - "~>"
95
109
  - !ruby/object:Gem::Version
96
- version: '0'
110
+ version: 11.1.3
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: faker
99
113
  requirement: !ruby/object:Gem::Requirement
@@ -142,14 +156,14 @@ dependencies:
142
156
  requirements:
143
157
  - - "~>"
144
158
  - !ruby/object:Gem::Version
145
- version: 1.12.1
159
+ version: 1.10.0
146
160
  type: :development
147
161
  prerelease: false
148
162
  version_requirements: !ruby/object:Gem::Requirement
149
163
  requirements:
150
164
  - - "~>"
151
165
  - !ruby/object:Gem::Version
152
- version: 1.12.1
166
+ version: 1.10.0
153
167
  description:
154
168
  email:
155
169
  - mmseleznev@gmail.com
@@ -157,22 +171,24 @@ executables: []
157
171
  extensions: []
158
172
  extra_rdoc_files: []
159
173
  files:
174
+ - ".rspec"
175
+ - ".rubocop.yml"
160
176
  - ".ruby-version"
161
177
  - CHANGELOG.md
162
178
  - CODE_OF_CONDUCT.md
163
179
  - Gemfile
164
- - Gemfile.lock
165
180
  - LICENSE.txt
166
181
  - README.md
167
182
  - Rakefile
168
183
  - bin/console
169
184
  - bin/setup
170
185
  - briefbag.gemspec
171
- - config/application.yml
172
186
  - lib/briefbag.rb
173
187
  - lib/briefbag/configuration.rb
174
188
  - lib/briefbag/diplomat.rb
189
+ - lib/briefbag/railtie.rb
175
190
  - lib/briefbag/version.rb
191
+ - lib/tasks/settings.rake
176
192
  homepage: https://github.com/MichaelHitchens/briefbag
177
193
  licenses:
178
194
  - MIT
data/Gemfile.lock DELETED
@@ -1,81 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- briefbag (0.0.1)
5
- anyway_config (~> 1.4.4)
6
- diplomat (~> 2.4.4)
7
- hash_to_struct (~> 1.0.0)
8
- rainbow (~> 3.1.1)
9
-
10
- GEM
11
- remote: https://rubygems.org/
12
- specs:
13
- anyway_config (1.4.4)
14
- ast (2.4.2)
15
- byebug (11.1.3)
16
- concurrent-ruby (1.2.0)
17
- deep_merge (1.2.2)
18
- diff-lcs (1.5.0)
19
- diplomat (2.4.4)
20
- deep_merge (~> 1.0, >= 1.0.1)
21
- faraday (>= 0.9, < 1.1.0)
22
- faker (2.12.0)
23
- i18n (>= 1.6, < 2)
24
- faraday (1.0.1)
25
- multipart-post (>= 1.2, < 3)
26
- hash_to_struct (1.0.0)
27
- i18n (1.12.0)
28
- concurrent-ruby (~> 1.0)
29
- multipart-post (2.3.0)
30
- parallel (1.20.1)
31
- parser (3.2.0.0)
32
- ast (~> 2.4.1)
33
- rainbow (3.1.1)
34
- rake (13.0.6)
35
- regexp_parser (2.6.2)
36
- rexml (3.2.5)
37
- rspec (3.12.0)
38
- rspec-core (~> 3.12.0)
39
- rspec-expectations (~> 3.12.0)
40
- rspec-mocks (~> 3.12.0)
41
- rspec-core (3.12.0)
42
- rspec-support (~> 3.12.0)
43
- rspec-expectations (3.12.2)
44
- diff-lcs (>= 1.2.0, < 2.0)
45
- rspec-support (~> 3.12.0)
46
- rspec-mocks (3.12.3)
47
- diff-lcs (>= 1.2.0, < 2.0)
48
- rspec-support (~> 3.12.0)
49
- rspec-support (3.12.0)
50
- rubocop (1.12.1)
51
- parallel (~> 1.10)
52
- parser (>= 3.0.0.0)
53
- rainbow (>= 2.2.2, < 4.0)
54
- regexp_parser (>= 1.8, < 3.0)
55
- rexml
56
- rubocop-ast (>= 1.2.0, < 2.0)
57
- ruby-progressbar (~> 1.7)
58
- unicode-display_width (>= 1.4.0, < 3.0)
59
- rubocop-ast (1.4.1)
60
- parser (>= 2.7.1.5)
61
- ruby-progressbar (1.11.0)
62
- unicode-display_width (2.4.2)
63
-
64
- PLATFORMS
65
- ruby
66
-
67
- DEPENDENCIES
68
- anyway_config
69
- briefbag!
70
- bundler (~> 1.17.3)
71
- byebug
72
- diplomat
73
- faker (~> 2.12.0)
74
- hash_to_struct
75
- rainbow
76
- rake (~> 13.0.6)
77
- rspec (~> 3.12.0)
78
- rubocop (~> 1.12.1)
79
-
80
- BUNDLED WITH
81
- 1.17.3
@@ -1,2 +0,0 @@
1
- development:
2
- test: 'i am file'