sumcli 0.4.0 → 0.6.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: 1fb17357faf9b0a79218491f726464b6ed260d22f959873cefaed9a99e981174
4
- data.tar.gz: 70c9974d8181fe817cf2a5dfc139d8454b66678e10870a75de6478bf986f4a8a
3
+ metadata.gz: '09a207990ae733a8efe4d5f7195c4fb905cb4718decae5392e3fd9293f91dda4'
4
+ data.tar.gz: 7bb8bddb6984af728e933535a6514c276699dff4131e48073e919b1a5ec35f66
5
5
  SHA512:
6
- metadata.gz: 21e9b27cf7ade308bd38a1939695dfb3dd026d7b5c50ca20ff3333ce1b531adbf5f9252544996d4b97c05e1918ab8bfae6c79c896e3700b1e55fba22b48f9c55
7
- data.tar.gz: 7f2ff870eb6d5248879ff34636eae35bf48ca797669c89eb7ec2f96f529abc191215a6832bd61e4d9e50a5ab1640a3ed2fb823a1ce8415fa82a5062a5f411701
6
+ metadata.gz: bbfbdd87117410d331a1b0e5c122a2c3e92a354fe845100bfdfb8a55a9123cecf01f56e48bc7fb992d7cd25f20402494df5aedef9defeacb20810ec1e56259b1
7
+ data.tar.gz: 5ff41f5f67ae647617885027d3d601e6d33fd1c59f94095c3b4fb1bc9916c5d8da331938c564d13fc4cae1a21bb6e8b4616ac5b1c598854cdf9b12cf0c029c4b
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- sumcli (0.4.0)
4
+ sumcli (0.5.0)
5
5
  activesupport (~> 5.0)
6
6
  pastel (~> 0.7.2)
7
7
  thor (~> 0.20.0)
@@ -18,6 +18,18 @@ module Sumcli
18
18
  end
19
19
  map %w(--version -v) => :version
20
20
 
21
+ desc 'start', 'Command description...'
22
+ method_option :help, aliases: '-h', type: :boolean,
23
+ desc: 'Display usage information'
24
+ def start(*)
25
+ if options[:help]
26
+ invoke :help, ['start']
27
+ else
28
+ require_relative 'commands/start'
29
+ Sumcli::Commands::Start.new(options).execute
30
+ end
31
+ end
32
+
21
33
  require_relative 'commands/new'
22
34
  require_relative 'commands/add'
23
35
  register Sumcli::Commands::Add, 'add', 'add [SUBCOMMAND]', 'Adds services to your project'
@@ -8,6 +8,18 @@ module Sumcli
8
8
 
9
9
  namespace :add
10
10
 
11
+ desc 'migration NAME', 'Create migration'
12
+ method_option :help, aliases: '-h', type: :boolean,
13
+ desc: 'Display usage information'
14
+ def migration(name)
15
+ if options[:help]
16
+ invoke :help, ['migration']
17
+ else
18
+ require_relative 'add/migration'
19
+ Sumcli::Commands::Add::Migration.new(name, options).execute
20
+ end
21
+ end
22
+
11
23
  desc 'service NAME', 'Installs infrastructure components and their initializers'
12
24
  method_option :help, aliases: '-h', type: :boolean,
13
25
  desc: 'Display usage information'
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+ require 'pastel'
2
3
  require 'ostruct'
3
4
  require 'active_support/inflector'
4
5
  require_relative '../../command'
@@ -23,6 +24,15 @@ module Sumcli
23
24
  end
24
25
 
25
26
  def execute(input: $stdin, output: $stdout)
27
+ unless File.file?(".sumcli")
28
+ pastel = Pastel.new
29
+ output.puts pastel.red("ERROR!\nYou are no in a sumcli app directory.")
30
+ output.puts <<-OUT.strip
31
+ You can execute #{pastel.green('sumcli help new')} to get more info.
32
+ OUT
33
+ return
34
+ end
35
+
26
36
  create_entity unless File.file?("#{ENTITIES_PATH}/#{@name.underscore}.rb")
27
37
  create_test unless File.file?("#{TESTS_PATH}/#{@name.underscore}.rb")
28
38
  create_endpoint unless File.file?("#{ENDPOINT_PATH}/#{@name.underscore}.rb")
@@ -38,7 +48,7 @@ module Sumcli
38
48
 
39
49
  def inject_route
40
50
  generator.inject_into_file("#{ENDPOINT_PATH}/#{@name.underscore}.rb", after: "# ENDPOINTS\n") do <<-RB
41
-
51
+
42
52
  desc 'Describe your endpoint'
43
53
  params do
44
54
  # requires :id, type: Integer
@@ -52,24 +62,24 @@ module Sumcli
52
62
 
53
63
  def create_test
54
64
  generator.copy_file(
55
- "#{TEMPLATES_PATH}/test.rb.erb",
56
- "#{TESTS_PATH}/#{@name.underscore}_spec.rb",
65
+ "#{TEMPLATES_PATH}/test.rb.erb",
66
+ "#{TESTS_PATH}/#{@name.underscore}_spec.rb",
57
67
  context: @variables
58
68
  )
59
69
  end
60
70
 
61
71
  def create_entity
62
72
  generator.copy_file(
63
- "#{TEMPLATES_PATH}/entity.rb.erb",
64
- "#{ENTITIES_PATH}/#{@name.underscore}.rb",
73
+ "#{TEMPLATES_PATH}/entity.rb.erb",
74
+ "#{ENTITIES_PATH}/#{@name.underscore}.rb",
65
75
  context: @variables
66
76
  )
67
77
  end
68
78
 
69
79
  def create_endpoint
70
80
  generator.copy_file(
71
- "#{TEMPLATES_PATH}/new.rb.erb",
72
- "#{ENDPOINT_PATH}/#{@name.underscore}.rb",
81
+ "#{TEMPLATES_PATH}/new.rb.erb",
82
+ "#{ENDPOINT_PATH}/#{@name.underscore}.rb",
73
83
  context: @variables
74
84
  )
75
85
 
@@ -78,8 +88,8 @@ module Sumcli
78
88
 
79
89
  def create_model
80
90
  generator.copy_file(
81
- "#{TEMPLATES_PATH}/model.rb.erb",
82
- "#{MODELS_PATH}/#{@name.underscore}.rb",
91
+ "#{TEMPLATES_PATH}/model.rb.erb",
92
+ "#{MODELS_PATH}/#{@name.underscore}.rb",
83
93
  context: @variables
84
94
  )
85
95
  end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../../command'
4
+
5
+ module Sumcli
6
+ module Commands
7
+ class Add
8
+ class Migration < Sumcli::Command
9
+ def initialize(name, options)
10
+ @name = name
11
+ @options = options
12
+ end
13
+
14
+ def execute(input: $stdin, output: $stdout)
15
+ command.run("rake db:create_migration[#{@name}]")
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -10,9 +10,11 @@ module Sumcli
10
10
  DOCKER_FILE = 'docker-compose.yml'
11
11
  TEMPLATES_PATH = File.expand_path('../../templates/add/service', __dir__)
12
12
  CONFIGS_PATH = 'config'
13
+ WORKERS_PATH = 'app/workers'
14
+ BIN_PATH = 'bin'
13
15
 
14
16
  def initialize(name, version, options)
15
- @name = name
17
+ @name = name.downcase
16
18
  @version = version
17
19
  @options = options
18
20
  end
@@ -20,14 +22,15 @@ module Sumcli
20
22
  def execute(input: $stdin, output: $stdout)
21
23
  if !service_exists?
22
24
  self.send("add_#{@name}")
25
+ command.run("bundle install")
23
26
  output.puts "\n #{@name} added to docker-compose"
24
27
  else
25
- output.puts "\n #{@name} already added to docker-compose"
28
+ output.puts " #{@name} already added to docker-compose"
26
29
  end
27
30
  end
28
31
 
29
32
  def copy_database_files
30
- generator.inject_into_file('Gemfile', after: "# GEMS\n\n") do <<~RUBY
33
+ generator.safe_inject_into_file('Gemfile', after: "# GEMS\n\n") do <<~RUBY
31
34
  gem 'pg', '~> 1.1'
32
35
  gem "otr-activerecord", '~> 1.3.0'
33
36
  RUBY
@@ -35,10 +38,10 @@ module Sumcli
35
38
  generator.copy_file("#{TEMPLATES_PATH}/database.yml", "#{CONFIGS_PATH}/database.yml")
36
39
  generator.copy_file("#{TEMPLATES_PATH}/database.yml.ctmpl", "#{CONFIGS_PATH}/database.yml.ctmpl")
37
40
  generator.copy_file("#{TEMPLATES_PATH}/database.rb", "#{CONFIGS_PATH}/initializers/database.rb")
38
- generator.inject_into_file("#{CONFIGS_PATH}/application.rb", after: "require_rel '../api'\n") do
41
+ generator.safe_inject_into_file("#{CONFIGS_PATH}/application.rb", after: "require_rel '../api'\n") do
39
42
  'require_rel \'initializers\''
40
43
  end
41
- generator.inject_into_file('Rakefile', after: "# TASKS\n") do <<~RUBY.strip
44
+ generator.safe_inject_into_file('Rakefile', after: "# TASKS\n") do <<~RUBY.strip
42
45
  load "tasks/otr-activerecord.rake"
43
46
 
44
47
  namespace :db do
@@ -50,6 +53,24 @@ module Sumcli
50
53
  end
51
54
  end
52
55
 
56
+ def copy_messaging_files
57
+ generator.safe_inject_into_file('Gemfile', after: "# GEMS\n\n") do <<~RUBY
58
+ gem 'sneakers', '~> 2.11'
59
+ gem 'sneakers_handlers', '~> 0.0.6'
60
+ RUBY
61
+ end
62
+ generator.copy_file("#{TEMPLATES_PATH}/rabbitmq.yml", "#{CONFIGS_PATH}/rabbitmq.yml")
63
+ generator.copy_file("#{TEMPLATES_PATH}/rabbitmq.yml.ctmpl", "#{CONFIGS_PATH}/rabbitmq.yml.ctmpl")
64
+ generator.copy_file("#{TEMPLATES_PATH}/sneakers.rb", "#{CONFIGS_PATH}/initializers/sneakers.rb")
65
+ generator.safe_inject_into_file("#{CONFIGS_PATH}/application.rb", after: "require_rel '../api'\n") do
66
+ 'require_rel \'initializers\''
67
+ end
68
+ generator.copy_file("#{TEMPLATES_PATH}/sample_worker.rb", "#{WORKERS_PATH}/sample_worker.rb")
69
+
70
+ generator.copy_file("#{TEMPLATES_PATH}/sneakers", "#{BIN_PATH}/sneakers")
71
+ File.chmod(0744, 'bin/sneakers')
72
+ end
73
+
53
74
  def require_exists?
54
75
  File.readlines(APPLICATION_FILE).grep(/#{INITIALIZERS_REQUIRE}/).any?
55
76
  end
@@ -64,23 +85,29 @@ module Sumcli
64
85
  db:
65
86
  image: 'postgres:#{ver}'
66
87
  ports:
67
- - '5432'
88
+ - '5432:5432'
68
89
  TEXT
69
90
 
70
91
  generator.safe_inject_into_file DOCKER_FILE, content, after: "services:\n"
71
92
  copy_database_files
72
93
  end
73
94
 
74
- def add_redis
95
+ def add_rabbitmq
96
+ ver = '3-management'
97
+ response = ask_to_set(ver) if ver != @version && !@version.nil?
98
+ ver = @version if response
99
+
75
100
  content =
76
101
  <<-TEXT
77
- redis:
78
- image: 'redis:#{@version}'
102
+ rabbitmq:
103
+ image: 'rabbitmq:#{ver}'
79
104
  ports:
80
- - '6379'
105
+ - '15672:15672'
106
+ - '5672:5672'
81
107
  TEXT
82
108
 
83
109
  generator.safe_inject_into_file DOCKER_FILE, content, after: "services:\n"
110
+ copy_messaging_files
84
111
  end
85
112
 
86
113
  def service_exists?
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../command'
4
+
5
+ module Sumcli
6
+ module Commands
7
+ class Start < Sumcli::Command
8
+ def initialize(options)
9
+ @options = options
10
+ end
11
+
12
+ def execute(input: $stdin, output: $stdout)
13
+ command.run("bundle exec guard")
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,5 @@
1
+ development:
2
+ host: localhost
3
+ port: 5672
4
+ username: guest
5
+ password: guest
@@ -0,0 +1,5 @@
1
+ production:
2
+ host: {{ key "secret/app/rabbitmq/host" }}{{ .Data.value }}{{ end }}
3
+ port: {{ keyOrDefault "service/app/rabbitmq/port" "5672" }}
4
+ username: {{ with secret "secret/app/rabbitmq/username" }}{{ .Data.value }}{{ end }}
5
+ password: {{ with secret "secret/app/rabbitmq/password" }}{{ .Data.value }}{{ end }}
@@ -0,0 +1,17 @@
1
+ module Worker
2
+ class Sample
3
+ include Sneakers::Worker
4
+ from_queue :my_samples,
5
+ exchange: 'my_exchange',
6
+ exchange_type: :topic,
7
+ routing_key: 'my_exchange.my_routing_key',
8
+ arguments: {
9
+ 'x-dead-letter-exchange' => 'my_samples.dlx',
10
+ 'x-dead-letter-routing-key' => 'my_samples'
11
+ }
12
+
13
+ def work(msg)
14
+ # Write stuff here...
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.expand_path('../../config/environment', __FILE__)
4
+ require 'sneakers/runner'
5
+
6
+ workers = Worker.constants.map { |w| "Worker::#{w}".constantize }
7
+ runner = Sneakers::Runner.new(workers)
8
+ runner.run
@@ -0,0 +1,12 @@
1
+ require 'sneakers/metrics/logging_metrics'
2
+
3
+ amqp_conn = "amqp://#{Global.rabbitmq.username}:#{Global.rabbitmq.password}@#{Global.rabbitmq.host}:#{Global.rabbitmq.port}"
4
+
5
+ Sneakers.configure amqp: amqp_conn,
6
+ metrics: Sneakers::Metrics::LoggingMetrics.new,
7
+ handler: SneakersHandlers::ExponentialBackoffHandler,
8
+ max_retries: 50,
9
+ workers: 4,
10
+ daemonize: false
11
+
12
+ Sneakers.logger.level = Logger::INFO
File without changes
@@ -1,3 +1,3 @@
1
1
  module Sumcli
2
- VERSION = "0.4.0"
2
+ VERSION = "0.6.0"
3
3
  end
@@ -24,25 +24,8 @@ Gem::Specification.new do |spec|
24
24
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
25
25
  spec.require_paths = ["lib"]
26
26
 
27
- spec.add_dependency "tty-box", "~> 0.3.0"
28
- spec.add_dependency "tty-color", "~> 0.4"
29
27
  spec.add_dependency "tty-command", "~> 0.8.0"
30
- spec.add_dependency "tty-config", "~> 0.3.0"
31
- spec.add_dependency "tty-cursor", "~> 0.6"
32
- spec.add_dependency "tty-editor", "~> 0.5.0"
33
28
  spec.add_dependency "tty-file", "~> 0.7.0"
34
- spec.add_dependency "tty-font", "~> 0.2.0"
35
- spec.add_dependency "tty-markdown", "~> 0.5.0"
36
- spec.add_dependency "tty-pager", "~> 0.12.0"
37
- spec.add_dependency "tty-pie", "~> 0.1.0"
38
- spec.add_dependency "tty-platform", "~> 0.2.0"
39
- spec.add_dependency "tty-progressbar", "~> 0.16.0"
40
- spec.add_dependency "tty-prompt", "~> 0.18.0"
41
- spec.add_dependency "tty-screen", "~> 0.6"
42
- spec.add_dependency "tty-spinner", "~> 0.9.0"
43
- spec.add_dependency "tty-table", "~> 0.10.0"
44
- spec.add_dependency "tty-tree", "~> 0.2.0"
45
- spec.add_dependency "tty-which", "~> 0.4"
46
29
  spec.add_dependency "pastel", "~> 0.7.2"
47
30
  spec.add_dependency "thor", "~> 0.20.0"
48
31
  spec.add_dependency 'activesupport', '~> 5.0'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sumcli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rodrigo Alves
@@ -12,34 +12,6 @@ bindir: exe
12
12
  cert_chain: []
13
13
  date: 2019-06-05 00:00:00.000000000 Z
14
14
  dependencies:
15
- - !ruby/object:Gem::Dependency
16
- name: tty-box
17
- requirement: !ruby/object:Gem::Requirement
18
- requirements:
19
- - - "~>"
20
- - !ruby/object:Gem::Version
21
- version: 0.3.0
22
- type: :runtime
23
- prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- requirements:
26
- - - "~>"
27
- - !ruby/object:Gem::Version
28
- version: 0.3.0
29
- - !ruby/object:Gem::Dependency
30
- name: tty-color
31
- requirement: !ruby/object:Gem::Requirement
32
- requirements:
33
- - - "~>"
34
- - !ruby/object:Gem::Version
35
- version: '0.4'
36
- type: :runtime
37
- prerelease: false
38
- version_requirements: !ruby/object:Gem::Requirement
39
- requirements:
40
- - - "~>"
41
- - !ruby/object:Gem::Version
42
- version: '0.4'
43
15
  - !ruby/object:Gem::Dependency
44
16
  name: tty-command
45
17
  requirement: !ruby/object:Gem::Requirement
@@ -54,48 +26,6 @@ dependencies:
54
26
  - - "~>"
55
27
  - !ruby/object:Gem::Version
56
28
  version: 0.8.0
57
- - !ruby/object:Gem::Dependency
58
- name: tty-config
59
- requirement: !ruby/object:Gem::Requirement
60
- requirements:
61
- - - "~>"
62
- - !ruby/object:Gem::Version
63
- version: 0.3.0
64
- type: :runtime
65
- prerelease: false
66
- version_requirements: !ruby/object:Gem::Requirement
67
- requirements:
68
- - - "~>"
69
- - !ruby/object:Gem::Version
70
- version: 0.3.0
71
- - !ruby/object:Gem::Dependency
72
- name: tty-cursor
73
- requirement: !ruby/object:Gem::Requirement
74
- requirements:
75
- - - "~>"
76
- - !ruby/object:Gem::Version
77
- version: '0.6'
78
- type: :runtime
79
- prerelease: false
80
- version_requirements: !ruby/object:Gem::Requirement
81
- requirements:
82
- - - "~>"
83
- - !ruby/object:Gem::Version
84
- version: '0.6'
85
- - !ruby/object:Gem::Dependency
86
- name: tty-editor
87
- requirement: !ruby/object:Gem::Requirement
88
- requirements:
89
- - - "~>"
90
- - !ruby/object:Gem::Version
91
- version: 0.5.0
92
- type: :runtime
93
- prerelease: false
94
- version_requirements: !ruby/object:Gem::Requirement
95
- requirements:
96
- - - "~>"
97
- - !ruby/object:Gem::Version
98
- version: 0.5.0
99
29
  - !ruby/object:Gem::Dependency
100
30
  name: tty-file
101
31
  requirement: !ruby/object:Gem::Requirement
@@ -110,174 +40,6 @@ dependencies:
110
40
  - - "~>"
111
41
  - !ruby/object:Gem::Version
112
42
  version: 0.7.0
113
- - !ruby/object:Gem::Dependency
114
- name: tty-font
115
- requirement: !ruby/object:Gem::Requirement
116
- requirements:
117
- - - "~>"
118
- - !ruby/object:Gem::Version
119
- version: 0.2.0
120
- type: :runtime
121
- prerelease: false
122
- version_requirements: !ruby/object:Gem::Requirement
123
- requirements:
124
- - - "~>"
125
- - !ruby/object:Gem::Version
126
- version: 0.2.0
127
- - !ruby/object:Gem::Dependency
128
- name: tty-markdown
129
- requirement: !ruby/object:Gem::Requirement
130
- requirements:
131
- - - "~>"
132
- - !ruby/object:Gem::Version
133
- version: 0.5.0
134
- type: :runtime
135
- prerelease: false
136
- version_requirements: !ruby/object:Gem::Requirement
137
- requirements:
138
- - - "~>"
139
- - !ruby/object:Gem::Version
140
- version: 0.5.0
141
- - !ruby/object:Gem::Dependency
142
- name: tty-pager
143
- requirement: !ruby/object:Gem::Requirement
144
- requirements:
145
- - - "~>"
146
- - !ruby/object:Gem::Version
147
- version: 0.12.0
148
- type: :runtime
149
- prerelease: false
150
- version_requirements: !ruby/object:Gem::Requirement
151
- requirements:
152
- - - "~>"
153
- - !ruby/object:Gem::Version
154
- version: 0.12.0
155
- - !ruby/object:Gem::Dependency
156
- name: tty-pie
157
- requirement: !ruby/object:Gem::Requirement
158
- requirements:
159
- - - "~>"
160
- - !ruby/object:Gem::Version
161
- version: 0.1.0
162
- type: :runtime
163
- prerelease: false
164
- version_requirements: !ruby/object:Gem::Requirement
165
- requirements:
166
- - - "~>"
167
- - !ruby/object:Gem::Version
168
- version: 0.1.0
169
- - !ruby/object:Gem::Dependency
170
- name: tty-platform
171
- requirement: !ruby/object:Gem::Requirement
172
- requirements:
173
- - - "~>"
174
- - !ruby/object:Gem::Version
175
- version: 0.2.0
176
- type: :runtime
177
- prerelease: false
178
- version_requirements: !ruby/object:Gem::Requirement
179
- requirements:
180
- - - "~>"
181
- - !ruby/object:Gem::Version
182
- version: 0.2.0
183
- - !ruby/object:Gem::Dependency
184
- name: tty-progressbar
185
- requirement: !ruby/object:Gem::Requirement
186
- requirements:
187
- - - "~>"
188
- - !ruby/object:Gem::Version
189
- version: 0.16.0
190
- type: :runtime
191
- prerelease: false
192
- version_requirements: !ruby/object:Gem::Requirement
193
- requirements:
194
- - - "~>"
195
- - !ruby/object:Gem::Version
196
- version: 0.16.0
197
- - !ruby/object:Gem::Dependency
198
- name: tty-prompt
199
- requirement: !ruby/object:Gem::Requirement
200
- requirements:
201
- - - "~>"
202
- - !ruby/object:Gem::Version
203
- version: 0.18.0
204
- type: :runtime
205
- prerelease: false
206
- version_requirements: !ruby/object:Gem::Requirement
207
- requirements:
208
- - - "~>"
209
- - !ruby/object:Gem::Version
210
- version: 0.18.0
211
- - !ruby/object:Gem::Dependency
212
- name: tty-screen
213
- requirement: !ruby/object:Gem::Requirement
214
- requirements:
215
- - - "~>"
216
- - !ruby/object:Gem::Version
217
- version: '0.6'
218
- type: :runtime
219
- prerelease: false
220
- version_requirements: !ruby/object:Gem::Requirement
221
- requirements:
222
- - - "~>"
223
- - !ruby/object:Gem::Version
224
- version: '0.6'
225
- - !ruby/object:Gem::Dependency
226
- name: tty-spinner
227
- requirement: !ruby/object:Gem::Requirement
228
- requirements:
229
- - - "~>"
230
- - !ruby/object:Gem::Version
231
- version: 0.9.0
232
- type: :runtime
233
- prerelease: false
234
- version_requirements: !ruby/object:Gem::Requirement
235
- requirements:
236
- - - "~>"
237
- - !ruby/object:Gem::Version
238
- version: 0.9.0
239
- - !ruby/object:Gem::Dependency
240
- name: tty-table
241
- requirement: !ruby/object:Gem::Requirement
242
- requirements:
243
- - - "~>"
244
- - !ruby/object:Gem::Version
245
- version: 0.10.0
246
- type: :runtime
247
- prerelease: false
248
- version_requirements: !ruby/object:Gem::Requirement
249
- requirements:
250
- - - "~>"
251
- - !ruby/object:Gem::Version
252
- version: 0.10.0
253
- - !ruby/object:Gem::Dependency
254
- name: tty-tree
255
- requirement: !ruby/object:Gem::Requirement
256
- requirements:
257
- - - "~>"
258
- - !ruby/object:Gem::Version
259
- version: 0.2.0
260
- type: :runtime
261
- prerelease: false
262
- version_requirements: !ruby/object:Gem::Requirement
263
- requirements:
264
- - - "~>"
265
- - !ruby/object:Gem::Version
266
- version: 0.2.0
267
- - !ruby/object:Gem::Dependency
268
- name: tty-which
269
- requirement: !ruby/object:Gem::Requirement
270
- requirements:
271
- - - "~>"
272
- - !ruby/object:Gem::Version
273
- version: '0.4'
274
- type: :runtime
275
- prerelease: false
276
- version_requirements: !ruby/object:Gem::Requirement
277
- requirements:
278
- - - "~>"
279
- - !ruby/object:Gem::Version
280
- version: '0.4'
281
43
  - !ruby/object:Gem::Dependency
282
44
  name: pastel
283
45
  requirement: !ruby/object:Gem::Requirement
@@ -391,26 +153,34 @@ files:
391
153
  - lib/sumcli/commands/.gitkeep
392
154
  - lib/sumcli/commands/add.rb
393
155
  - lib/sumcli/commands/add/endpoint.rb
156
+ - lib/sumcli/commands/add/migration.rb
394
157
  - lib/sumcli/commands/add/service.rb
395
- - lib/sumcli/commands/add/service/postgres.rb
396
158
  - lib/sumcli/commands/new.rb
159
+ - lib/sumcli/commands/start.rb
397
160
  - lib/sumcli/templates/.gitkeep
398
161
  - lib/sumcli/templates/add/endpoint/.gitkeep
399
162
  - lib/sumcli/templates/add/endpoint/entity.rb.erb
400
163
  - lib/sumcli/templates/add/endpoint/model.rb.erb
401
164
  - lib/sumcli/templates/add/endpoint/new.rb.erb
402
165
  - lib/sumcli/templates/add/endpoint/test.rb.erb
166
+ - lib/sumcli/templates/add/migration/.gitkeep
403
167
  - lib/sumcli/templates/add/service/.gitkeep
404
168
  - lib/sumcli/templates/add/service/database.rb
405
169
  - lib/sumcli/templates/add/service/database.rb.erb
406
170
  - lib/sumcli/templates/add/service/database.yml
407
171
  - lib/sumcli/templates/add/service/database.yml.ctmpl
408
172
  - lib/sumcli/templates/add/service/database.yml.erb
173
+ - lib/sumcli/templates/add/service/rabbitmq.yml
174
+ - lib/sumcli/templates/add/service/rabbitmq.yml.ctmpl
175
+ - lib/sumcli/templates/add/service/sample_worker.rb
176
+ - lib/sumcli/templates/add/service/sneakers
177
+ - lib/sumcli/templates/add/service/sneakers.rb
409
178
  - lib/sumcli/templates/new/.gitkeep
410
179
  - lib/sumcli/templates/new/app/.editorconfig
411
180
  - lib/sumcli/templates/new/app/.gitignore
412
181
  - lib/sumcli/templates/new/app/.rspec
413
182
  - lib/sumcli/templates/new/app/.ruby-version
183
+ - lib/sumcli/templates/new/app/.sumcli
414
184
  - lib/sumcli/templates/new/app/Dockerfile
415
185
  - lib/sumcli/templates/new/app/Gemfile
416
186
  - lib/sumcli/templates/new/app/Guardfile
@@ -426,6 +196,7 @@ files:
426
196
  - lib/sumcli/templates/new/app/config/environment.rb
427
197
  - lib/sumcli/templates/new/app/docker-compose.yml
428
198
  - lib/sumcli/templates/new/app/spec/spec_helper.rb
199
+ - lib/sumcli/templates/start/.gitkeep
429
200
  - lib/sumcli/version.rb
430
201
  - sumcli.gemspec
431
202
  homepage: https://rubygems.org/gems/sumcli
@@ -447,8 +218,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
447
218
  - !ruby/object:Gem::Version
448
219
  version: '0'
449
220
  requirements: []
450
- rubyforge_project:
451
- rubygems_version: 2.7.9
221
+ rubygems_version: 3.0.3
452
222
  signing_key:
453
223
  specification_version: 4
454
224
  summary: Scaffolds SumUp microservices code.
@@ -1,48 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative '../../command'
4
-
5
- module Sumcli
6
- module Commands
7
- class Add
8
- class Service
9
- class Postgres < Sumcli::Command
10
-
11
- DOCKER_FILE = 'docker-compose.yml'
12
-
13
- def initialize(name, version, options)
14
- @name = name
15
- @version = version
16
- @options = options
17
- end
18
-
19
- def execute(input: $stdin, output: $stdout)
20
- generator.copy_file 'lib/sumcli/templates/add/service/database.yml.erb',
21
- 'config/database.yml'
22
- generator.copy_file 'lib/sumcli/templates/add/service/database.yml.ctmpl.erb',
23
- 'config/database.yml.ctmpl'
24
-
25
- output.puts "\n #{@name} added to docker-compose" if self.send("add_#{@name}")
26
- end
27
-
28
- def add_postgres
29
- content =
30
- <<-TEXT
31
- db:
32
- image: 'postgres:#{@version}'
33
- ports:
34
- - '5432'
35
- TEXT
36
-
37
- generator.safe_inject_into_file DOCKER_FILE, content, after: "services:\n"
38
- end
39
-
40
- def ask_to_set(ver)
41
- prompt.yes?("The default version of #{@name} is #{ver}." +
42
- "\n\nDo you want to add with version #{@version}?")
43
- end
44
- end
45
- end
46
- end
47
- end
48
- end