souls 0.26.7 → 0.26.8

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: 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