souls 0.24.5 → 0.24.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: 67f7e7198ec3b50441d76d83f17500df4a1f92f7c49e23143626a6229279aaae
4
- data.tar.gz: c20d8e26c040f6132a06e854f30c9c5ea2f15c87945407df1e0d8effac427c88
3
+ metadata.gz: b1eddf3455b6b592a0b5869a295150fe848d62d4c395b73abed0b7520822d1c7
4
+ data.tar.gz: 4fed41cea680904ce08806eddaad728ed5bb29275f65f6548f58d85cf8f38b63
5
5
  SHA512:
6
- metadata.gz: e5790b5cde1a9f507df76250ec89896b43b747eaaffdf17c3a7c8533bdca27a50afe2185585f37fbdca34cdfc48a1add8a4b42f0069f41ab867352ed836d7c74
7
- data.tar.gz: 63d1cb575a722d2e045039bf6e7f091c48dfff4a57b76cbf3752009250c87d090ec31c48fa17607c3782aabc148ac12c0509b365cd1d7c27fb424ede32541c62
6
+ metadata.gz: a745a0786ab85cb9aeaf47dd3250c9c725177263adf2aa01d2f3b7daf94f964ba86b6857a44bd99b6a1b364b59f55daabf07a8d61631b8c2777966f4c0dd92c8
7
+ data.tar.gz: c73802b5be44d1d38b9b57c7c880fc86b0e8b1a1a37e00188f00ba72a129d029bc8a4d08a097c3dae9f01609d779f12c5cb7b199881734014b18883d6c44b3c8
data/README.md CHANGED
@@ -102,9 +102,7 @@ souls gem:update
102
102
  Souls.configure do |config|
103
103
  config.app = "souls-api"
104
104
  config.project_id = "souls-api"
105
- config.strain = "worker"
106
- config.api_repo = "elsoul/souls_api"
107
- config.worker_repo = "elsoul/souls_worker"
105
+ config.strain = "api"
108
106
  config.worker_endpoint = "https://worker.com"
109
107
  config.fixed_gems = ["selenium-webdriver", "pg"]
110
108
  end
data/exe/souls CHANGED
@@ -32,8 +32,9 @@ begin
32
32
  strain = $stdin.gets.chomp.to_i
33
33
  case strain
34
34
  when 1, 2
35
- Souls::Init.download_souls(app_name: app_name, service_name: (STRAINS[strain.to_i - 1]).to_s)
36
- Souls::Init.initial_config_init(app_name: app_name, strain: STRAINS[strain.to_i - 1])
35
+ service_name = (STRAINS[strain.to_i - 1]).to_s
36
+ Souls::Init.download_souls(app_name: app_name, service_name: service_name)
37
+ Souls::Init.initial_config_init(app_name: app_name, service_name: service_name)
37
38
  else
38
39
  puts(Paint["Coming Soon...", :blue])
39
40
  end
@@ -94,17 +95,34 @@ begin
94
95
  Souls.update_gemfile
95
96
  Whirly.status = "Done!"
96
97
  end
97
- when "update"
98
- service_name = ARGV[1]
99
- permit_services = %w[api worker console admin media]
100
- raise(StandardError, "Wrong Service Name!") unless permit_services.include?(service_name)
98
+ when "release"
99
+ current_souls_ver = Souls::VERSION.strip.split(".").map(&:to_i)
100
+ prompt = TTY::Prompt.new
101
+ choices = [
102
+ "1. Patch(#{Souls.version_detector(current_ver: current_souls_ver, update_kind: 'patch')})",
103
+ "2. Minor(#{Souls.version_detector(current_ver: current_souls_ver, update_kind: 'minor')})",
104
+ "3. Major(#{Souls.version_detector(current_ver: current_souls_ver, update_kind: 'major')})"
105
+ ]
106
+ choice_num = prompt.select("Select Version: ", choices)[0].to_i
107
+ update_kinds = %w[patch minor major]
108
+ update_kind = update_kinds[choice_num - 1]
109
+ souls_new_ver = Souls.version_detector(current_ver: current_souls_ver, update_kind: update_kind)
101
110
 
102
111
  status = Paint["Saving Repo...", :yellow]
103
112
  Whirly.start(spinner: "clock", interval: 420, stop: "🎉") do
104
113
  Whirly.status = status
105
- result = Paint[Souls.update_repo(service_name: service_name), :green]
106
- Whirly.status = result
114
+ %w[api worker].each do |s_name|
115
+ result = Paint[Souls.update_repo(service_name: s_name, update_kind: update_kind), :green]
116
+ Whirly.status = result
117
+ end
118
+ Souls.overwrite_version(new_version: souls_new_ver)
119
+ system("git add . && git commit -m 'souls update v#{souls_new_ver}'")
120
+ system("rake build")
121
+ system("rake release")
122
+ Whirly.status = Paint["soul-v#{souls_new_ver} successfully updated!"]
107
123
  end
124
+ when "update"
125
+ puts(Paint["Coming soon..", :cyan])
108
126
  when "add"
109
127
  graphql_class = ARGV[1]
110
128
  case graphql_class
@@ -233,4 +251,5 @@ begin
233
251
  end
234
252
  rescue StandardError => e
235
253
  puts(Paint[e, :red])
254
+ puts(e.backtrace)
236
255
  end
data/lib/souls.rb CHANGED
@@ -10,6 +10,7 @@ require "net/http"
10
10
  require "paint"
11
11
  require "whirly"
12
12
  require "google/cloud/firestore"
13
+ require "tty-prompt"
13
14
 
14
15
  module Souls
15
16
  SOULS_METHODS = %w[
@@ -167,37 +168,73 @@ module Souls
167
168
  end
168
169
  end
169
170
 
170
- def update_repo(service_name: "api")
171
+ def update_repo(service_name: "api", update_kind: "patch")
171
172
  current_dir_name = FileUtils.pwd.to_s.match(%r{/([^/]+)/?$})[1]
172
- latest_gem = get_latest_version(service_name: service_name)
173
- new_ver = latest_gem[:version_counter] + 1
173
+ current_ver = get_latest_version_txt(service_name: service_name)
174
+ new_ver = version_detector(current_ver: current_ver, update_kind: update_kind)
174
175
  bucket_url = "gs://souls-bucket/boilerplates"
175
176
  file_name = "#{service_name}-v#{new_ver}.tgz"
177
+ release_name = "#{service_name}-latest.tgz"
176
178
 
177
179
  case current_dir_name
178
180
  when "souls"
179
- system("echo 'v#{new_ver}' > apps/#{service_name}/.souls_version")
181
+ system("echo 'v#{new_ver}' > lib/souls/versions/.souls_#{service_name}_version")
180
182
  system("cd apps/ && tar -czf ../#{service_name}.tgz #{service_name}/ && cd ..")
181
183
  when "api", "worker", "console", "admin", "media"
182
- system("echo 'v#{new_ver}' > .souls_version")
184
+ system("echo 'v#{new_ver}' > lib/souls/versions/.souls_#{service_name}_version")
183
185
  system("cd .. && tar -czf ../#{service_name}.tgz #{service_name}/ && cd #{service_name}")
184
186
  else
185
187
  raise(StandardError, "You are at wrong directory!")
186
188
  end
187
189
 
188
190
  system("gsutil cp #{service_name}.tgz #{bucket_url}/#{service_name.pluralize}/#{file_name}")
189
- file_url = "https://storage.googleapis.com/souls-bucket/boilerplates/#{service_name.pluralize}/#{file_name}"
190
- version_log(service_name: service_name, version_counter: new_ver, file_url: file_url)
191
+ system("gsutil cp #{service_name}.tgz #{bucket_url}/#{service_name.pluralize}/#{release_name}")
191
192
  FileUtils.rm("#{service_name}.tgz")
192
193
  "#{service_name}-v#{new_ver} Succefully Stored to GCS! "
193
194
  end
194
195
 
195
- def version_log(service_name: "api", version_counter: 1, file_url: "")
196
- version = "v#{version_counter}"
197
- time = Time.now.strftime("%F-%H-%M-%S")
198
- firestore = Google::Cloud::Firestore.new(project_id: ENV["FIRESTORE_PID"])
199
- doc_ref = firestore.doc("#{service_name}/#{version_counter}")
200
- doc_ref.set({ version: version, version_counter: version_counter, file_url: file_url, created_at: time })
196
+ def version_detector(current_ver: [0, 0, 1], update_kind: "patch")
197
+ case update_kind
198
+ when "patch"
199
+ "#{current_ver[0]}.#{current_ver[1]}.#{current_ver[2] + 1}"
200
+ when "minor"
201
+ "#{current_ver[0]}.#{current_ver[1] + 1}.0"
202
+ when "major"
203
+ "#{current_ver[0] + 1}.0.0"
204
+ else
205
+ raise(StandardError, "Wrong version!")
206
+ end
207
+ end
208
+
209
+ def overwrite_version(new_version: "0.1.1")
210
+ FileUtils.rm("./lib/souls/version.rb")
211
+ file_path = "./lib/souls/version.rb"
212
+ File.open(file_path, "w") do |f|
213
+ f.write(<<~TEXT)
214
+ module Souls
215
+ VERSION = "#{new_version}".freeze
216
+ public_constant :VERSION
217
+ end
218
+ TEXT
219
+ end
220
+ true
221
+ rescue StandardError, e
222
+ raise(StandardError, e)
223
+ end
224
+
225
+ def get_latest_version_txt(service_name: "api")
226
+ current_dir_name = FileUtils.pwd.to_s.match(%r{/([^/]+)/?$})[1]
227
+ case current_dir_name
228
+ when "souls"
229
+ return Souls::VERSION.split(".").map(&:to_i)
230
+ when "api", "worker", "console", "admin", "media"
231
+ file_path = ".../lib/souls/versions/.souls_#{service_name}_version"
232
+ else
233
+ raise(StandardError, "You are at wrong directory!")
234
+ end
235
+ File.open(file_path, "r") do |f|
236
+ f.readlines[0].strip.split(".").map(&:to_i)
237
+ end
201
238
  end
202
239
 
203
240
  def get_latest_version(service_name: "api")
@@ -219,6 +256,19 @@ module Souls
219
256
  end
220
257
  end
221
258
 
259
+ def detect_change
260
+ git_status = `git status`
261
+ result =
262
+ %w[api worker].map do |service_name|
263
+ if git_status.include?("apps/#{service_name}/")
264
+ service_name
265
+ else
266
+ next
267
+ end
268
+ end
269
+ result.compact
270
+ end
271
+
222
272
  def configure
223
273
  self.configuration ||= Configuration.new
224
274
  yield(configuration)
data/lib/souls/init.rb CHANGED
@@ -9,15 +9,15 @@ module Souls
9
9
  data[0]["tag_name"]
10
10
  end
11
11
 
12
- def self.initial_config_init(app_name: "souls", strain: "api")
13
- FileUtils.touch("./#{app_name}/config/souls.rb")
14
- file_path = "./#{app_name}/config/souls.rb"
12
+ def self.initial_config_init(app_name: "souls", service_name: "api")
13
+ FileUtils.touch("./#{app_name}/#{service_name}/config/souls.rb")
14
+ file_path = "./#{app_name}/#{service_name}/config/souls.rb"
15
15
  File.open(file_path, "w") do |f|
16
16
  f.write(<<~TEXT)
17
17
  Souls.configure do |config|
18
18
  config.app = "#{app_name}"
19
19
  config.project_id = "souls-api"
20
- config.strain = "#{strain}"
20
+ config.strain = "#{service_name}"
21
21
  config.worker_endpoint = "https://worker.com"
22
22
  config.fixed_gems = ["excluded_gem"]
23
23
  end
@@ -28,9 +28,9 @@ module Souls
28
28
  end
29
29
 
30
30
  def self.download_souls(app_name: "souls", service_name: "api")
31
- latest_gem = Souls.get_latest_version(service_name: service_name)
32
- file_name = latest_gem[:file_url].to_s.match(%r{/([^/]+)/?$})[1]
33
- system("curl -OL #{latest_gem[:file_url]}")
31
+ file_name = "#{service_name}-latest.tgz"
32
+ url = "https://storage.googleapis.com/souls-bucket/boilerplates/#{service_name.pluralize}/#{file_name}"
33
+ system("curl -OL #{url}")
34
34
  system("mkdir -p #{app_name}/#{service_name}")
35
35
  system("tar -zxvf ./#{file_name} -C #{app_name}/")
36
36
  FileUtils.rm(file_name)
data/lib/souls/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  module Souls
2
- VERSION = "0.24.5".freeze
2
+ VERSION = "0.24.9".freeze
3
3
  public_constant :VERSION
4
4
  end
@@ -0,0 +1 @@
1
+ v0.24.9
@@ -0,0 +1 @@
1
+ v0.24.9
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: souls
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.24.5
4
+ version: 0.24.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - POPPIN-FUMI
@@ -40,6 +40,20 @@ dependencies:
40
40
  - - '='
41
41
  - !ruby/object:Gem::Version
42
42
  version: 2.2.1
43
+ - !ruby/object:Gem::Dependency
44
+ name: tty-prompt
45
+ requirement: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - '='
48
+ - !ruby/object:Gem::Version
49
+ version: 0.23.1
50
+ type: :runtime
51
+ prerelease: false
52
+ version_requirements: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - '='
55
+ - !ruby/object:Gem::Version
56
+ version: 0.23.1
43
57
  - !ruby/object:Gem::Dependency
44
58
  name: whirly
45
59
  requirement: !ruby/object:Gem::Requirement
@@ -94,6 +108,8 @@ files:
94
108
  - lib/souls/generate/type.rb
95
109
  - lib/souls/init.rb
96
110
  - lib/souls/version.rb
111
+ - lib/souls/versions/.souls_api_version
112
+ - lib/souls/versions/.souls_worker_version
97
113
  homepage: https://souls.elsoul.nl
98
114
  licenses:
99
115
  - Apache-2.0