orchestration 0.6.8 → 0.6.9

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: 4d60dd6a324c493308690336d31236ab4e25ff8d6def5b54c77c5d8f1f77186f
4
- data.tar.gz: 642a8a710f2b7a6989fba3e6146768d521ceb0c35d0cee693601824e2d43029e
3
+ metadata.gz: 12e2e03dddf05c889b4938735bb407532671c958ad7e1e39ce37ad7ee07a4eec
4
+ data.tar.gz: 1a0fc371d1230959b7869094cb4cc13a59f9c8e2129c1f62b295d954218a1d75
5
5
  SHA512:
6
- metadata.gz: 7d4f6dc1c456af1cf954699dc9fed1a1990622aea6e220cfec88dd0ebe56576b75f5574cde538c1688b7f724eecc7da616a1d58c844e6ba09f479fa3b2254b05
7
- data.tar.gz: 596b42d049cabec555f8b13cfeaf728d9780f0cfd90138b93a887f4271e25ea5286dbfd2c57bf1c33032ac561c4ec5716dc7294e5c788b342bc99a28cc18918f
6
+ metadata.gz: 73d3df8af18ce92fce2e837bab16ca6f9be03051240a6f89e9e3e549aad659ec5bdb0d03eb11ca3f4ba8ae2ab839ddbf121ab14abf1d63e13267faac4672b325
7
+ data.tar.gz: 9779cef3d3d921dfc34ba41bdb29ef94642c08d7c92967c742bd52ca8d6527826bf3e040504228a4dd4dfc53c6a8d1e7334af4ebf6f98c247bbb06a820e6e0f8
data/Gemfile.lock CHANGED
@@ -1,8 +1,9 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- orchestration (0.6.7)
4
+ orchestration (0.6.9)
5
5
  database_url (~> 0.1.2)
6
+ dotenv-rails (~> 2.8)
6
7
  erubis (~> 2.7)
7
8
  i18n (>= 0.5)
8
9
  paint (~> 2.0)
@@ -71,13 +72,13 @@ GEM
71
72
  minitest (>= 5.1)
72
73
  tzinfo (~> 2.0)
73
74
  zeitwerk (~> 2.3)
74
- addressable (2.8.0)
75
- public_suffix (>= 2.0.2, < 5.0)
75
+ addressable (2.8.1)
76
+ public_suffix (>= 2.0.2, < 6.0)
76
77
  amq-protocol (2.3.2)
77
78
  ast (2.4.2)
78
79
  bson (4.15.0)
79
80
  builder (3.2.4)
80
- bunny (2.19.0)
81
+ bunny (2.20.1)
81
82
  amq-protocol (~> 2.3, >= 2.3.1)
82
83
  sorted_set (~> 1, >= 1.0.2)
83
84
  concurrent-ruby (1.1.10)
@@ -85,44 +86,62 @@ GEM
85
86
  rexml
86
87
  crass (1.0.6)
87
88
  database_url (0.1.2)
89
+ date (3.3.3)
88
90
  devpack (0.3.3)
89
91
  diff-lcs (1.5.0)
90
- erubi (1.10.0)
92
+ dotenv (2.8.1)
93
+ dotenv-rails (2.8.1)
94
+ dotenv (= 2.8.1)
95
+ railties (>= 3.2)
96
+ erubi (1.12.0)
91
97
  erubis (2.7.0)
92
98
  globalid (1.0.0)
93
99
  activesupport (>= 5.0)
94
100
  hashdiff (1.0.1)
95
- i18n (1.10.0)
101
+ i18n (1.12.0)
96
102
  concurrent-ruby (~> 1.0)
97
- loofah (2.18.0)
103
+ json (2.6.3)
104
+ loofah (2.19.1)
98
105
  crass (~> 1.0.2)
99
106
  nokogiri (>= 1.5.9)
100
- mail (2.7.1)
107
+ mail (2.8.0)
101
108
  mini_mime (>= 0.1.1)
109
+ net-imap
110
+ net-pop
111
+ net-smtp
102
112
  marcel (1.0.2)
103
113
  method_source (1.0.0)
104
114
  mini_mime (1.1.2)
105
- minitest (5.15.0)
106
- mongo (2.17.1)
107
- bson (>= 4.8.2, < 5.0.0)
108
- mongoid (7.4.0)
115
+ minitest (5.17.0)
116
+ mongo (2.18.2)
117
+ bson (>= 4.14.1, < 5.0.0)
118
+ mongoid (7.5.2)
109
119
  activemodel (>= 5.1, < 7.1, != 7.0.0)
110
120
  mongo (>= 2.10.5, < 3.0.0)
111
121
  ruby2_keywords (~> 0.0.5)
112
122
  mysql2 (0.5.4)
123
+ net-imap (0.3.4)
124
+ date
125
+ net-protocol
126
+ net-pop (0.1.2)
127
+ net-protocol
128
+ net-protocol (0.2.1)
129
+ timeout
130
+ net-smtp (0.3.3)
131
+ net-protocol
113
132
  nio4r (2.5.8)
114
- nokogiri (1.13.6-x86_64-linux)
133
+ nokogiri (1.13.10-x86_64-linux)
115
134
  racc (~> 1.4)
116
- paint (2.2.1)
135
+ paint (2.3.0)
117
136
  parallel (1.22.1)
118
- parser (3.1.2.0)
137
+ parser (3.1.3.0)
119
138
  ast (~> 2.4.1)
120
- pg (1.3.5)
121
- public_suffix (4.0.7)
122
- racc (1.6.0)
123
- rack (2.2.3)
124
- rack-test (1.1.0)
125
- rack (>= 1.0, < 3)
139
+ pg (1.4.5)
140
+ public_suffix (5.0.1)
141
+ racc (1.6.2)
142
+ rack (2.2.5)
143
+ rack-test (2.0.2)
144
+ rack (>= 1.3)
126
145
  rails (6.1.4.7)
127
146
  actioncable (= 6.1.4.7)
128
147
  actionmailbox (= 6.1.4.7)
@@ -141,8 +160,8 @@ GEM
141
160
  rails-dom-testing (2.0.3)
142
161
  activesupport (>= 4.2.0)
143
162
  nokogiri (>= 1.6)
144
- rails-html-sanitizer (1.4.2)
145
- loofah (~> 2.3)
163
+ rails-html-sanitizer (1.4.4)
164
+ loofah (~> 2.19, >= 2.19.1)
146
165
  railties (6.1.4.7)
147
166
  actionpack (= 6.1.4.7)
148
167
  activesupport (= 6.1.4.7)
@@ -151,73 +170,75 @@ GEM
151
170
  thor (~> 1.0)
152
171
  rainbow (3.1.1)
153
172
  rake (10.5.0)
154
- rbtree (0.4.5)
155
- regexp_parser (2.4.0)
173
+ rbtree (0.4.6)
174
+ regexp_parser (2.6.1)
156
175
  rexml (3.2.5)
157
- rspec (3.11.0)
158
- rspec-core (~> 3.11.0)
159
- rspec-expectations (~> 3.11.0)
160
- rspec-mocks (~> 3.11.0)
161
- rspec-core (3.11.0)
162
- rspec-support (~> 3.11.0)
163
- rspec-expectations (3.11.0)
176
+ rspec (3.12.0)
177
+ rspec-core (~> 3.12.0)
178
+ rspec-expectations (~> 3.12.0)
179
+ rspec-mocks (~> 3.12.0)
180
+ rspec-core (3.12.0)
181
+ rspec-support (~> 3.12.0)
182
+ rspec-expectations (3.12.1)
164
183
  diff-lcs (>= 1.2.0, < 2.0)
165
- rspec-support (~> 3.11.0)
184
+ rspec-support (~> 3.12.0)
166
185
  rspec-its (1.3.0)
167
186
  rspec-core (>= 3.0.0)
168
187
  rspec-expectations (>= 3.0.0)
169
- rspec-mocks (3.11.1)
188
+ rspec-mocks (3.12.1)
170
189
  diff-lcs (>= 1.2.0, < 2.0)
171
- rspec-support (~> 3.11.0)
172
- rspec-support (3.11.0)
173
- rubocop (1.30.0)
190
+ rspec-support (~> 3.12.0)
191
+ rspec-support (3.12.0)
192
+ rubocop (1.41.1)
193
+ json (~> 2.3)
174
194
  parallel (~> 1.10)
175
- parser (>= 3.1.0.0)
195
+ parser (>= 3.1.2.1)
176
196
  rainbow (>= 2.2.2, < 4.0)
177
197
  regexp_parser (>= 1.8, < 3.0)
178
198
  rexml (>= 3.2.5, < 4.0)
179
- rubocop-ast (>= 1.18.0, < 2.0)
199
+ rubocop-ast (>= 1.23.0, < 2.0)
180
200
  ruby-progressbar (~> 1.7)
181
201
  unicode-display_width (>= 1.4.0, < 3.0)
182
- rubocop-ast (1.18.0)
202
+ rubocop-ast (1.24.1)
183
203
  parser (>= 3.1.1.0)
184
- rubocop-rails (2.14.2)
204
+ rubocop-rails (2.17.4)
185
205
  activesupport (>= 4.2.0)
186
206
  rack (>= 1.1)
187
- rubocop (>= 1.7.0, < 2.0)
207
+ rubocop (>= 1.33.0, < 2.0)
188
208
  rubocop-rake (0.5.1)
189
209
  rubocop
190
- rubocop-rspec (2.11.1)
191
- rubocop (~> 1.19)
210
+ rubocop-rspec (2.16.0)
211
+ rubocop (~> 1.33)
192
212
  ruby-progressbar (1.11.0)
193
213
  ruby2_keywords (0.0.5)
194
- set (1.0.2)
214
+ set (1.0.3)
195
215
  sorted_set (1.0.3)
196
216
  rbtree
197
217
  set (~> 1.0)
198
- sprockets (4.0.3)
218
+ sprockets (4.2.0)
199
219
  concurrent-ruby (~> 1.0)
200
- rack (> 1, < 3)
220
+ rack (>= 2.2.4, < 4)
201
221
  sprockets-rails (3.4.2)
202
222
  actionpack (>= 5.2)
203
223
  activesupport (>= 5.2)
204
224
  sprockets (>= 3.0.0)
205
- sqlite3 (1.4.2)
225
+ sqlite3 (1.5.4-x86_64-linux)
206
226
  strong_versions (0.4.5)
207
227
  i18n (>= 0.5)
208
228
  paint (~> 2.0)
209
229
  thor (1.2.1)
210
- tzinfo (2.0.4)
230
+ timeout (0.3.1)
231
+ tzinfo (2.0.5)
211
232
  concurrent-ruby (~> 1.0)
212
- unicode-display_width (2.1.0)
213
- webmock (3.14.0)
233
+ unicode-display_width (2.3.0)
234
+ webmock (3.18.1)
214
235
  addressable (>= 2.8.0)
215
236
  crack (>= 0.3.2)
216
237
  hashdiff (>= 0.4.0, < 2.0.0)
217
238
  websocket-driver (0.7.5)
218
239
  websocket-extensions (>= 0.1.0)
219
240
  websocket-extensions (0.1.5)
220
- zeitwerk (2.5.4)
241
+ zeitwerk (2.6.6)
221
242
 
222
243
  PLATFORMS
223
244
  x86_64-linux
data/README.md CHANGED
@@ -162,30 +162,15 @@ make push
162
162
 
163
163
  ### Development
164
164
 
165
- An [`.env` file](https://docs.docker.com/compose/env-file/) is created automatically in your project root. This file is _not_ stored in version control. Set all application environment variables in this file.
165
+ A [`.env` file](https://docs.docker.com/compose/env-file/) is created automatically in your project root. This file is _not_ stored in version control. Set all application environment variables in this file.
166
166
 
167
167
  #### Launching a development server
168
168
 
169
- To load all variables from `.env` and launch a development server, run the following command:
169
+ Use vanilla _Rails_ commands to load a server or console. If present, a `.env` file will be read and loaded (via the [dotenv](https://github.com/bkeepers/dotenv) gem) to populate the environment.
170
170
 
171
171
  ```bash
172
- make serve
173
- ```
174
-
175
- To load a _Rails_ console:
176
- ```bash
177
- make console
178
- ```
179
-
180
- The application environment will be output on launch for convenience.
181
-
182
- To pass extra commands to the _Rails_ server:
183
- ```bash
184
- # Custom server, custom port
185
- make serve server='webrick -p 3001'
186
-
187
- # Default server, custom port, custom bind address
188
- make serve server='-p 3001 -b 192.168.0.1'
172
+ bundle exec rails s # Launch a server
173
+ bundle exec rails c # Launch a console
189
174
  ```
190
175
 
191
176
  ### Testing
@@ -6,7 +6,7 @@ module Orchestration
6
6
 
7
7
  def orchestration_dir
8
8
  path = @env.orchestration_root
9
- FileUtils.mkdir(path) unless Dir.exist?(path)
9
+ FileUtils.mkdir_p(path)
10
10
 
11
11
  path
12
12
  end
@@ -47,6 +47,10 @@ module Orchestration
47
47
  @settings.set(setting, read(prompt, default))
48
48
  end
49
49
 
50
+ def print_variable(variable, value)
51
+ $stdout.print "#{Paint[variable, :blue]}#{Paint['=', :white]}#{Paint[value, :cyan]}"
52
+ end
53
+
50
54
  private
51
55
 
52
56
  def prompt(message, default)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Orchestration
4
- VERSION = '0.6.8'
4
+ VERSION = '0.6.9'
5
5
  end
data/lib/orchestration.rb CHANGED
@@ -33,28 +33,67 @@ require 'orchestration/terminal'
33
33
  require 'orchestration/version'
34
34
 
35
35
  module Orchestration
36
- def self.root
37
- Pathname.new(File.dirname(__dir__))
38
- end
36
+ class << self
37
+ def root
38
+ Pathname.new(File.dirname(__dir__))
39
+ end
39
40
 
40
- def self.makefile
41
- root.join('lib', 'orchestration', 'make', 'orchestration.mk')
42
- end
41
+ def makefile
42
+ root.join('lib', 'orchestration', 'make', 'orchestration.mk')
43
+ end
43
44
 
44
- def self.rakefile
45
- root.join('lib', 'Rakefile')
46
- end
45
+ def rakefile
46
+ root.join('lib', 'Rakefile')
47
+ end
47
48
 
48
- def self.error(key, options = {})
49
- warn('# Orchestration Error')
50
- warn("# #{I18n.t("orchestration.#{key}", options)}")
51
- end
49
+ def error(key, options = {})
50
+ warn('# Orchestration Error')
51
+ warn("# #{I18n.t("orchestration.#{key}", options)}")
52
+ end
53
+
54
+ def random_local_port
55
+ socket = Socket.new(:INET, :STREAM, 0)
56
+ socket.bind(Addrinfo.tcp('127.0.0.1', 0))
57
+ port = socket.local_address.ip_port
58
+ socket.close
59
+ port
60
+ end
61
+
62
+ def print_environment
63
+ return unless File.exist?('.env')
52
64
 
53
- def self.random_local_port
54
- socket = Socket.new(:INET, :STREAM, 0)
55
- socket.bind(Addrinfo.tcp('127.0.0.1', 0))
56
- port = socket.local_address.ip_port
57
- socket.close
58
- port
65
+ $stdout.puts
66
+ $stdout.puts("#{prefix} #{Paint['Loading environment from', :cyan]} #{Paint['.env', :green]}")
67
+ $stdout.puts
68
+ environment_variables.each do |variable, value|
69
+ terminal.print_variable(variable, value)
70
+ end
71
+ $stdout.puts
72
+ end
73
+
74
+ private
75
+
76
+ def terminal
77
+ @terminal ||= Terminal.new(Environment.new.settings)
78
+ end
79
+
80
+ def prefix
81
+ "#{Paint['[', :white]}#{Paint['orchestration', :cyan]}#{Paint[']', :white]}"
82
+ end
83
+
84
+ def environment_variables
85
+ File.readlines('.env').reject { |line| line.match(/^\s*#/) }
86
+ .select { |line| line.include?('=') }
87
+ .map do |line|
88
+ variable, _, value = line.partition('=')
89
+ [variable, value]
90
+ end
91
+ end
59
92
  end
60
93
  end
94
+
95
+ if ENV['RAILS_ENV'] == 'development'
96
+ require 'dotenv-rails'
97
+ Dotenv::Railtie.load
98
+ Orchestration.print_environment
99
+ end
@@ -28,6 +28,7 @@ Gem::Specification.new do |spec|
28
28
  spec.require_paths = ['lib']
29
29
 
30
30
  spec.add_runtime_dependency 'database_url', '~> 0.1.2'
31
+ spec.add_runtime_dependency 'dotenv-rails', '~> 2.8'
31
32
  spec.add_runtime_dependency 'erubis', '~> 2.7'
32
33
  spec.add_runtime_dependency 'i18n', '>= 0.5'
33
34
  spec.add_runtime_dependency 'paint', '~> 2.0'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: orchestration
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.8
4
+ version: 0.6.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bob Farrell
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-06-18 00:00:00.000000000 Z
11
+ date: 2023-01-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: database_url
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: 0.1.2
27
+ - !ruby/object:Gem::Dependency
28
+ name: dotenv-rails
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '2.8'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '2.8'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: erubis
29
43
  requirement: !ruby/object:Gem::Requirement