sumcli 0.4.0 → 0.6.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
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