souls 0.26.7 → 0.26.8

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: 07a268eb135f4ca4ea45eb8249231c9fc816695012de869aeb4b1df50fa2b25f
4
- data.tar.gz: 994e784b8ecf513a97df0c2227a96b26c115d1dacc85c989d002e9f714deb204
3
+ metadata.gz: a5e58498e4d755e83b5b9244c9eebdfa08e9c9bbd2f6d006cbea2e87be99a463
4
+ data.tar.gz: 3148268dccdb03f49bd29105867ac5dcca44fdef43ed85855e93b0d9f30199d4
5
5
  SHA512:
6
- metadata.gz: 27f41b2976489276d4597fce40e333f2bb314c34a6aa89178d4a74bc3ea9a45d74d635583a82c62ab8e6b2e11a836172d71afbb7edbb3cf01ba48d50d47d05b6
7
- data.tar.gz: 2a2c09c4df16367eebd6144f2955d12782d3d6add3f7d37ebfa404ef02bd7e449775c54cc2698466ab7b1b9ff3559d9a2f8d84f08f7e7f27c4d6502f46e7ce57
6
+ metadata.gz: 2ab89d13dc49261853b81780a105e672830410b3dc836e8a605e37f5359bffb82abfe4bb8ff8abcf813a0089efea78536cd6c113663bf7d033584f2f8da2611d
7
+ data.tar.gz: 9aa074b6bb0d4ff2c2f50808abcc4b6750d88c55ec6f7d2381535001e73c6c813e34a84cda7d87a173619c26a1f61aa9193d44bafe5a21af707f19b57b01b168
data/exe/souls CHANGED
@@ -55,8 +55,13 @@ begin
55
55
  end
56
56
  when "release"
57
57
  Souls::Release.return_method
58
- when "update"
59
- puts(Paint["Coming soon..", :cyan])
58
+ when "model:update"
59
+ status = Paint["Updating Models...", :yellow]
60
+ Whirly.start(spinner: "clock", interval: 420, stop: "🎉") do
61
+ Whirly.status = status
62
+ Souls.update_models
63
+ Whirly.status = "Done!"
64
+ end
60
65
  when "add"
61
66
  graphql_class = ARGV[1]
62
67
  case graphql_class
data/lib/souls.rb CHANGED
@@ -282,6 +282,72 @@ module Souls
282
282
  puts(Paint["\nSuccessfully Updated #{service_name} Gemfile!", :green])
283
283
  end
284
284
 
285
+ def update_models
286
+ current_dir_name = FileUtils.pwd.to_s.match(%r{/([^/]+)/?$})[1]
287
+ permitted_dirs = %w[worker api]
288
+ unless permitted_dirs.include?(current_dir_name)
289
+ raise(StandardError, "You are at wrong directory!Go to API or Worker Directory!")
290
+ end
291
+
292
+ cp_dir = get_models_path(service_name: current_dir_name)
293
+ cp_dir.each do |path|
294
+ cp_and_dl_files(api_dir: path[:api], worker_dir: path[:worker])
295
+ end
296
+ end
297
+
298
+ def cp_and_dl_files(api_dir: "", worker_dir: "")
299
+ api_file_data = file_diff(Dir["#{api_dir}/*.rb"])
300
+ worker_file_data = file_diff(Dir["#{worker_dir}/*.rb"])
301
+
302
+ api_latest_date = Date.parse(api_file_data.max)
303
+ worker_latest_date = Date.parse(worker_file_data.max)
304
+
305
+ if api_latest_date > worker_latest_date
306
+ FileUtils.rm_rf(api_dir)
307
+ FileUtils.mkdir(api_dir) unless Dir.exist?(api_dir)
308
+ system("cp -r #{worker_dir}/* #{api_dir}")
309
+ else
310
+ FileUtils.rm_rf(worker_dir)
311
+ FileUtils.mkdir(worker_dir) unless Dir.exist?(worker_dir)
312
+ system("cp -r #{api_dir}/* #{worker_dir}")
313
+ end
314
+ end
315
+
316
+ def get_models_path(service_name: "api")
317
+ [
318
+ {
319
+ api: "../#{service_name}/db",
320
+ worker: "./db"
321
+ },
322
+ {
323
+ api: "../#{service_name}/app/models",
324
+ worker: "./app/models"
325
+ },
326
+ {
327
+ api: "../#{service_name}/spec/factories",
328
+ worker: "./spec/factories"
329
+ }
330
+ ]
331
+ end
332
+
333
+ def file_diff(paths = [])
334
+ paths.map do |path|
335
+ stat(path)[:last_update]
336
+ end
337
+ end
338
+
339
+ def stat(path)
340
+ s = File::Stat.new(path)
341
+ last_update = s.mtime.to_s
342
+ last_status_change = s.ctime.to_s
343
+ last_access = s.atime.to_s
344
+ {
345
+ last_update: last_update,
346
+ last_status_change: last_status_change,
347
+ last_access: last_access
348
+ }
349
+ end
350
+
285
351
  def detect_change
286
352
  git_status = `git status`
287
353
  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}"
data/lib/souls/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  module Souls
2
- VERSION = "0.26.7".freeze
2
+ VERSION = "0.26.8".freeze
3
3
  public_constant :VERSION
4
4
  end
@@ -1 +1 @@
1
- 0.5.7
1
+ 0.5.8
@@ -1 +1 @@
1
- 0.5.7
1
+ 0.5.8
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.7
4
+ version: 0.26.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - POPPIN-FUMI