souls 0.26.6 → 0.26.10

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: 893ea426a81089a447105577805d64548a2141c11a7b0c90331db61e8032c443
4
- data.tar.gz: a2196037ce176621374aefd6cc1c61010a169fbe7a3d74a6bfda43dc173b03b0
3
+ metadata.gz: 6ed9ffbee1c79292d85bde12b686954ecdbcb679f7fdde04324d3152d2cc065d
4
+ data.tar.gz: f9a65837d335c25d873b65d3fe6eb08c9335314ced645c8568b3fce233477a41
5
5
  SHA512:
6
- metadata.gz: 60cb5fc2010f6b9fbe15bfb92b311520aa4ca03a507a51da401323ee0402bb9431fed2f131ddec7028a309412cc69634a1d8b57ee0b909de24db5056c55dd5ea
7
- data.tar.gz: 5da0d290e8fe8e4baec083f3c40a449f4a1a40ee960ae53b3b97e9ae82ccc24f99646122b6007f300edccca8dace17d8441922cd1c5d986746469696c89299be
6
+ metadata.gz: 58d4c85fbb4ce6c74dec22a3cb7f4975045798eb5d014a185888e91ac0ae5985b0adeb2a27a535230bc047afcffa8c7b217aa43c122eb6a7974b7d3ea47fd771
7
+ data.tar.gz: 9e9b6d5849d53895bc80b37cf446cb501548689f2a43c0040b04556708194b0305d650d95fac2229761f65139d73a2b556e49f6ab74169a60d9ab13d7a831386
data/exe/souls CHANGED
@@ -54,39 +54,14 @@ begin
54
54
  Whirly.status = "Done!"
55
55
  end
56
56
  when "release"
57
- system("gem install souls")
58
- sleep(3)
59
- current_souls_ver = Souls::VERSION.strip.split(".").map(&:to_i)
60
- prompt = TTY::Prompt.new
61
- choices = [
62
- "1. Patch(#{Souls.version_detector(current_ver: current_souls_ver, update_kind: 'patch')})",
63
- "2. Minor(#{Souls.version_detector(current_ver: current_souls_ver, update_kind: 'minor')})",
64
- "3. Major(#{Souls.version_detector(current_ver: current_souls_ver, update_kind: 'major')})"
65
- ]
66
- choice_num = prompt.select("Select Version: ", choices)[0].to_i
67
- update_kinds = %w[patch minor major]
68
- update_kind = update_kinds[choice_num - 1]
69
- souls_new_ver = Souls.version_detector(current_ver: current_souls_ver, update_kind: update_kind)
70
-
71
- status = Paint["Saving Repo...", :yellow]
57
+ Souls::Release.return_method
58
+ when "model:update"
59
+ status = Paint["Updating Models...", :yellow]
72
60
  Whirly.start(spinner: "clock", interval: 420, stop: "🎉") do
73
61
  Whirly.status = status
74
- %w[api worker].each do |s_name|
75
- result = Paint[Souls.update_repo(service_name: s_name, update_kind: update_kind), :green]
76
- Whirly.status = result
77
- end
78
- Souls.overwrite_version(new_version: souls_new_ver)
79
- puts("before add")
80
- system("git add .")
81
- puts("before commit")
82
- system("git commit -m 'souls update v#{souls_new_ver}'")
83
- puts("before build")
84
- system("rake build")
85
- system("rake release")
86
- Whirly.status = Paint["soul-v#{souls_new_ver} successfully updated!"]
62
+ Souls.update_models
63
+ Whirly.status = "Done!"
87
64
  end
88
- when "update"
89
- puts(Paint["Coming soon..", :cyan])
90
65
  when "add"
91
66
  graphql_class = ARGV[1]
92
67
  case graphql_class
data/lib/souls.rb CHANGED
@@ -3,6 +3,8 @@ require "active_support/core_ext/string/inflections"
3
3
  require_relative "souls/init"
4
4
  require_relative "souls/generate"
5
5
  require_relative "souls/gcloud"
6
+ require_relative "souls/release"
7
+ require "date"
6
8
  require "dotenv/load"
7
9
  require "json"
8
10
  require "fileutils"
@@ -174,7 +176,6 @@ module Souls
174
176
  bucket_url = "gs://souls-bucket/boilerplates"
175
177
  file_name = "#{service_name}-v#{new_ver}.tgz"
176
178
  release_name = "#{service_name}-latest.tgz"
177
- update_service_gemfile(service_name: service_name)
178
179
 
179
180
  case current_dir_name
180
181
  when "souls"
@@ -257,7 +258,7 @@ module Souls
257
258
  end
258
259
  end
259
260
 
260
- def update_service_gemfile(service_name: "api")
261
+ def update_service_gemfile(service_name: "api", version: "0.0.1")
261
262
  file_dir = "./apps/#{service_name}"
262
263
  file_path = "#{file_dir}/Gemfile"
263
264
  gemfile_lock = "#{file_dir}/Gemfile.lock"
@@ -269,7 +270,7 @@ module Souls
269
270
  if gem[0] == "souls"
270
271
  old_ver = gem[1].split(".")
271
272
  old_ver[2] = (old_ver[2].to_i + 1).to_s
272
- new_line.write(" gem \"souls\", \"#{old_ver.join('.')}\"\n")
273
+ new_line.write(" gem \"souls\", \"#{version}\"\n")
273
274
  else
274
275
  new_line.write(line)
275
276
  end
@@ -282,6 +283,86 @@ module Souls
282
283
  puts(Paint["\nSuccessfully Updated #{service_name} Gemfile!", :green])
283
284
  end
284
285
 
286
+ def update_models
287
+ current_dir_name = FileUtils.pwd.to_s.match(%r{/([^/]+)/?$})[1]
288
+ permitted_dirs = %w[worker api]
289
+ unless permitted_dirs.include?(current_dir_name)
290
+ raise(StandardError, "You are at wrong directory!Go to API or Worker Directory!")
291
+ end
292
+
293
+ cp_dir = get_models_path(service_name: current_dir_name)
294
+ cp_dir.each do |path|
295
+ cp_and_dl_files(api_dir: path[:api], worker_dir: path[:worker])
296
+ end
297
+ end
298
+
299
+ def cp_and_dl_files(api_dir: "", worker_dir: "")
300
+ if Dir["#{worker_dir}/*.rb"].blank?
301
+
302
+ api_latest_date = 1
303
+ worker_latest_date = 0
304
+ else
305
+ api_file_data = file_diff(Dir["#{api_dir}/*.rb"])
306
+ worker_file_data = file_diff(Dir["#{worker_dir}/*.rb"])
307
+
308
+ api_latest_date = Date.parse(api_file_data.max)
309
+ worker_latest_date = Date.parse(worker_file_data.max)
310
+ end
311
+
312
+ if api_latest_date < worker_latest_date
313
+ FileUtils.rm_rf(api_dir) if Dir.exist?(api_dir)
314
+ FileUtils.mkdir(api_dir) unless Dir.exist?(api_dir)
315
+ system("cp -r #{worker_dir}/* #{api_dir}")
316
+ else
317
+ FileUtils.rm_rf(worker_dir) if Dir.exist?(worker_dir)
318
+ FileUtils.mkdir(worker_dir) unless Dir.exist?(worker_dir)
319
+ system("cp -r #{api_dir}/* #{worker_dir}")
320
+ end
321
+ end
322
+
323
+ def get_models_path(service_name: "api")
324
+ case service_name
325
+ when "api"
326
+ api_path = "."
327
+ worker_path = "../worker"
328
+ when "worker"
329
+ api_path = "../api"
330
+ worker_path = "."
331
+ end
332
+ [
333
+ {
334
+ api: "#{api_path}/db",
335
+ worker: "#{worker_path}/db"
336
+ },
337
+ {
338
+ api: "#{api_path}/app/models",
339
+ worker: "#{worker_path}/app/models"
340
+ },
341
+ {
342
+ api: "#{api_path}/spec/factories",
343
+ worker: "#{worker_path}/spec/factories"
344
+ }
345
+ ]
346
+ end
347
+
348
+ def file_diff(paths = [])
349
+ paths.map do |path|
350
+ stat(path)[:last_update]
351
+ end
352
+ end
353
+
354
+ def stat(path)
355
+ s = File::Stat.new(path)
356
+ last_update = s.mtime.to_s
357
+ last_status_change = s.ctime.to_s
358
+ last_access = s.atime.to_s
359
+ {
360
+ last_update: last_update,
361
+ last_status_change: last_status_change,
362
+ last_access: last_access
363
+ }
364
+ end
365
+
285
366
  def detect_change
286
367
  git_status = `git status`
287
368
  result =
data/lib/souls/init.rb CHANGED
@@ -135,6 +135,9 @@ module Souls
135
135
 
136
136
  def self.download_worker
137
137
  current_dir_name = FileUtils.pwd.to_s.match(%r{/([^/]+)/?$})[1]
138
+ wrong_dir = %w[apps api worker]
139
+ raise(StandardError, "You are at wrong directory!Go to Mother Directory!") if wrong_dir.include?(current_dir_name)
140
+
138
141
  version = Souls.get_latest_version_txt(service_name: "worker").join(".")
139
142
  file_name = "worker-v#{version}.tgz"
140
143
  url = "https://storage.googleapis.com/souls-bucket/boilerplates/workers/#{file_name}"
@@ -0,0 +1,6 @@
1
+ require_relative "./release/methods"
2
+
3
+ module Souls
4
+ module Release
5
+ end
6
+ end
@@ -0,0 +1,39 @@
1
+ module Souls
2
+ module Release
3
+ class << self
4
+ def return_method
5
+ system("gem install souls")
6
+ sleep(3)
7
+ current_souls_ver = Souls::VERSION.strip.split(".").map(&:to_i)
8
+ prompt = TTY::Prompt.new
9
+ choices = [
10
+ "1. Patch(#{Souls.version_detector(current_ver: current_souls_ver, update_kind: 'patch')})",
11
+ "2. Minor(#{Souls.version_detector(current_ver: current_souls_ver, update_kind: 'minor')})",
12
+ "3. Major(#{Souls.version_detector(current_ver: current_souls_ver, update_kind: 'major')})"
13
+ ]
14
+ choice_num = prompt.select("Select Version: ", choices)[0].to_i
15
+ update_kinds = %w[patch minor major]
16
+ update_kind = update_kinds[choice_num - 1]
17
+ souls_new_ver = Souls.version_detector(current_ver: current_souls_ver, update_kind: update_kind)
18
+ status = Paint["Saving Repo...", :yellow]
19
+ Whirly.start(spinner: "clock", interval: 420, stop: "🎉") do
20
+ Whirly.status = status
21
+ %w[api worker].each do |s_name|
22
+ Souls.update_service_gemfile(service_name: s_name, version: souls_new_ver)
23
+ result = Paint[Souls.update_repo(service_name: s_name, update_kind: update_kind), :green]
24
+ Whirly.status = result
25
+ end
26
+ Souls.overwrite_version(new_version: souls_new_ver)
27
+ puts("before add")
28
+ system("git add .")
29
+ puts("before commit")
30
+ system("git commit -m 'souls update v#{souls_new_ver}'")
31
+ puts("before build")
32
+ system("rake build")
33
+ system("rake release")
34
+ Whirly.status = Paint["soul-v#{souls_new_ver} successfully updated!"]
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
data/lib/souls/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  module Souls
2
- VERSION = "0.26.6".freeze
2
+ VERSION = "0.26.10".freeze
3
3
  public_constant :VERSION
4
4
  end
@@ -1 +1 @@
1
- 0.5.6
1
+ 0.5.10
@@ -1 +1 @@
1
- 0.5.6
1
+ 0.5.10
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.26.6
4
+ version: 0.26.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - POPPIN-FUMI
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: exe
12
12
  cert_chain: []
13
- date: 2021-08-03 00:00:00.000000000 Z
13
+ date: 2021-08-04 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activesupport
@@ -124,6 +124,8 @@ files:
124
124
  - lib/souls/generate/rspec_resolver.rb
125
125
  - lib/souls/generate/type.rb
126
126
  - lib/souls/init.rb
127
+ - lib/souls/release.rb
128
+ - lib/souls/release/methods.rb
127
129
  - lib/souls/version.rb
128
130
  - lib/souls/versions/.souls_api_version
129
131
  - lib/souls/versions/.souls_worker_version