souls 1.7.18 → 1.7.24

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: 243bda089f37cc48e7e1f3b89df0bff779a5efb0b107b10318f467c6c2c1976d
4
- data.tar.gz: e20a991e0c5542b463b0bc6232ac96b30c7f94929a33ce11e4e8479190501258
3
+ metadata.gz: c731aa9244ceb825af39c837fe0be223a8b6d1df9a64cbb16a3767d0650c8147
4
+ data.tar.gz: 30814435a8d524bc1021bfa2a31dcb88f9f9f4fc373b8d17c219d9ca9b0744a9
5
5
  SHA512:
6
- metadata.gz: eafa438f3bd09a8986e81405b5dda53cc86bf1467b309febff614d90176914d02e4f9b02e8cfb51b91bb4b3c44f9aa91ffb51ddfdedb23b89337a6023ad16920
7
- data.tar.gz: 9ee8c8cb2a4645051c48a15ae870fca9d8620e2d78df08218ed697e312d89d55d577568f22a6f10382c7ccaf0da5663d5d3812e41d410e1f521256717a88231f
6
+ metadata.gz: 153d93623299b56bbf5e51d343165e7e99025ab5f04cff92674080c3a05140db83d3fc09b428d01d7c4bffc26e96d79a4b7e0260f0828eb3496e8d8432b26169
7
+ data.tar.gz: f0c04fb0f44d02aff9979f26869aed96be3e059610c4485e392c8e10b95c4f884c0a7341f2b2d163c2d1e726410fb6e6bd9aa6c6a794c0dbf44f80f452c6c0bf
@@ -7,4 +7,25 @@ module Souls
7
7
  @message = message
8
8
  end
9
9
  end
10
+
11
+ class PSQLException < CLIException
12
+ attr_reader :message
13
+
14
+ def initialize
15
+ message = "It looks like there was a problem with the DB. Make sure PSQL is running with 'souls docker psql'"
16
+ super(message)
17
+ @message = message
18
+ end
19
+ end
20
+
21
+ class GcloudException < CLIException
22
+ attr_reader :message
23
+
24
+ def initialize
25
+ message = "You either haven't created or don't have access to a GCP project. " \
26
+ "Please create a GCP project with the same name as this app."
27
+ super(message)
28
+ @message = message
29
+ end
30
+ end
10
31
  end
@@ -3,7 +3,8 @@ module Souls
3
3
  desc "console", "Run IRB Console"
4
4
  method_option :env, aliases: "--e", default: "development", desc: "Difine APP Enviroment - development | production"
5
5
  def console
6
- return system("RACK_ENV=production bundle exec irb") if options[:env].eql? "production"
6
+ return system("RACK_ENV=production bundle exec irb") if options[:env].eql?("production")
7
+
7
8
  system("bundle exec irb")
8
9
  end
9
10
  end
@@ -2,6 +2,8 @@ require_relative "./create_migration_rbs"
2
2
  require_relative "./model"
3
3
  require_relative "./rspec_model"
4
4
  require_relative "./model_rbs"
5
+ require_relative "../cli_exception"
6
+
5
7
  module Souls
6
8
  class DB < Thor
7
9
  desc "migrate", "Migrate Database"
@@ -9,10 +11,10 @@ module Souls
9
11
  def migrate
10
12
  case options[:env]
11
13
  when "production"
12
- system("rake db:migrate RACK_ENV=production")
14
+ db_system("rake db:migrate RACK_ENV=production")
13
15
  else
14
- system("rake db:migrate")
15
- system("rake db:migrate RACK_ENV=test")
16
+ db_system("rake db:migrate")
17
+ db_system("rake db:migrate RACK_ENV=test")
16
18
  end
17
19
  true
18
20
  rescue Thor::Error => e
@@ -24,9 +26,9 @@ module Souls
24
26
  def create
25
27
  case options[:env]
26
28
  when "production"
27
- system("rake db:create RACK_ENV=production")
29
+ db_system("rake db:create RACK_ENV=production")
28
30
  else
29
- system("rake db:create")
31
+ db_system("rake db:create")
30
32
  end
31
33
  rescue Thor::Error => e
32
34
  raise(Thor::Error, e)
@@ -37,10 +39,10 @@ module Souls
37
39
  def seed
38
40
  case options[:env]
39
41
  when "production"
40
- system("rake db:seed RACK_ENV=production")
42
+ db_system("rake db:seed RACK_ENV=production")
41
43
  else
42
- system("rake db:seed")
43
- system("rake db:seed RACK_ENV=test")
44
+ db_system("rake db:seed")
45
+ db_system("rake db:seed RACK_ENV=test")
44
46
  end
45
47
  rescue Thor::Error => e
46
48
  raise(Thor::Error, e)
@@ -51,9 +53,9 @@ module Souls
51
53
  def migrate_reset
52
54
  case options[:env]
53
55
  when "production"
54
- system("rake db:migrate:reset RACK_ENV=production DISABLE_DATABASE_ENVIRONMENT_CHECK=1")
56
+ db_system("rake db:migrate:reset RACK_ENV=production DISABLE_DATABASE_ENVIRONMENT_CHECK=1")
55
57
  else
56
- system("rake db:migrate:reset")
58
+ db_system("rake db:migrate:reset")
57
59
  end
58
60
  rescue Thor::Error => e
59
61
  raise(Thor::Error, e)
@@ -125,5 +127,11 @@ module Souls
125
127
  rescue Thor::Error => e
126
128
  raise(Thor::Error, e)
127
129
  end
130
+
131
+ private
132
+
133
+ def db_system(cmd)
134
+ system(cmd) or raise(Souls::PSQLException)
135
+ end
128
136
  end
129
137
  end
@@ -3,6 +3,7 @@ require_relative "./pubsub/index"
3
3
  require_relative "./run/index"
4
4
  require_relative "./sql/index"
5
5
  require_relative "./compute/index"
6
+ require_relative "../cli_exception"
6
7
 
7
8
  module Souls
8
9
  class Gcloud < Thor
@@ -26,6 +27,7 @@ module Souls
26
27
  desc "auth_login", "gcloud config set and gcloud auth login"
27
28
  def auth_login
28
29
  project_id = Souls.configuration.project_id
30
+ system("gcloud projects describe #{project_id}", out: File::NULL) or raise(Souls::GcloudException)
29
31
  system("gcloud config set project #{project_id}")
30
32
  system("gcloud auth login")
31
33
  rescue Thor::Error => e
@@ -34,8 +36,8 @@ module Souls
34
36
 
35
37
  desc "config_set", "gcloud config set"
36
38
  def config_set
37
- require("#{Souls.get_api_path}/config/souls")
38
39
  project_id = Souls.configuration.project_id
40
+ system("gcloud projects describe #{project_id}", out: File::NULL) or raise(Souls::GcloudException)
39
41
  system("gcloud config set project #{project_id}")
40
42
  end
41
43
 
@@ -62,14 +62,23 @@ module Souls
62
62
  type = "[#{type}]" if param[:array]
63
63
  if i.zero?
64
64
  if param[:column_name].match?(/$*_id\z/)
65
- f.write(" def self.argument: (:#{param[:column_name]}, String, required: false ) -> #{rbs_type}\n")
65
+ f.write(
66
+ " def self.argument: (:#{param[:column_name]}, String, " \
67
+ "required: false ) -> #{rbs_type}\n"
68
+ )
66
69
  else
67
- f.write(" def self.argument: (:#{param[:column_name]}, #{type}, required: false ) -> #{rbs_type}\n")
70
+ f.write(
71
+ " def self.argument: (:#{param[:column_name]}, #{type}, " \
72
+ "required: false ) -> #{rbs_type}\n"
73
+ )
68
74
  end
69
75
  elsif param[:column_name].match?(/$*_id\z/)
70
76
  f.write(" | (:#{param[:column_name]}, String, required: false ) -> String\n")
71
77
  else
72
- f.write(" | (:#{param[:column_name]}, #{type}, required: false ) -> #{rbs_type}\n")
78
+ f.write(
79
+ " | (:#{param[:column_name]}, #{type}, " \
80
+ "required: false ) -> #{rbs_type}\n"
81
+ )
73
82
  end
74
83
  end
75
84
  end
@@ -13,7 +13,7 @@ module Souls
13
13
  exit
14
14
  end
15
15
  file_dir = "./#{app_name}"
16
- raise(StandardError, "Directory Already Exist!") if Dir.exist?(file_dir)
16
+ raise(StandardError, "Directory already exists and is not empty") if Dir.exist?(file_dir) && !Dir.empty?(file_dir)
17
17
 
18
18
  service_name = "api"
19
19
  download_souls(app_name: app_name, service_name: service_name)
@@ -8,8 +8,12 @@ module Souls
8
8
  new_cols = Souls.get_columns_num(class_name: singularized_class_name)
9
9
  dir_name = "./app/graphql/mutations/base/#{singularized_class_name}"
10
10
  file_path = "#{dir_name}/create_#{singularized_class_name}.rb"
11
- raise Souls::CLIException.new("File #{file_path} is missing. Please recreate it and then run this command again.") unless
12
- File.exist? file_path
11
+ unless File.exist?(file_path)
12
+ raise(
13
+ Souls::CLIException,
14
+ "File #{file_path} is missing. Please recreate it and then run this command again."
15
+ )
16
+ end
13
17
 
14
18
  mutation_argument = check_mutation_argument(class_name: "user", action: "create")
15
19
  overwrite_class_file(mutation_argument: mutation_argument, file_path: file_path, new_cols: new_cols)
@@ -22,8 +26,12 @@ module Souls
22
26
  new_cols = Souls.get_columns_num(class_name: singularized_class_name)
23
27
  dir_name = "./app/graphql/mutations/base/#{singularized_class_name}"
24
28
  file_path = "#{dir_name}/update_#{singularized_class_name}.rb"
25
- raise Souls::CLIException.new("File #{file_path} is missing. Please recreate it and then run this command again.") unless
26
- File.exist? file_path
29
+ unless File.exist?(file_path)
30
+ raise(
31
+ Souls::CLIException,
32
+ "File #{file_path} is missing. Please recreate it and then run this command again."
33
+ )
34
+ end
27
35
 
28
36
  mutation_argument = check_mutation_argument(class_name: class_name, action: "update")
29
37
  overwrite_class_file(mutation_argument: mutation_argument, file_path: file_path, new_cols: new_cols)
@@ -27,11 +27,12 @@ module Souls
27
27
  type = "[#{type}]" if col[:array]
28
28
  next if col[:column_name] == "created_at" || col[:column_name] == "updated_at"
29
29
 
30
- if i.zero?
31
- write_txt += line
32
- else
33
- write_txt += " #{col[:column_name]}: #{type}?,\n"
34
- end
30
+ write_txt +=
31
+ if i.zero?
32
+ line
33
+ else
34
+ " #{col[:column_name]}: #{type}?,\n"
35
+ end
35
36
  end
36
37
  resolve = true
37
38
  elsif line.include?("def self.argument:") && !argument
@@ -28,11 +28,14 @@ module Souls
28
28
  type = Souls.type_check(col[:type])
29
29
  type = "[#{type}]" if col[:array]
30
30
 
31
- if type.include?("[")
32
- add_line = " scope = scope.where('#{col[:column_name]} @> ARRAY[?]::#{col[:type]}[]', value[:#{col[:column_name]}]) if value[:#{col[:column_name]}]\n"
33
- else
34
- add_line = " scope = scope.where(#{col[:column_name]}: value[:#{col[:column_name]}]) if value[:#{col[:column_name]}]\n"
35
- end
31
+ add_line =
32
+ if type.include?("[")
33
+ " scope = scope.where('#{col[:column_name]} @> ARRAY[?]::#{col[:type]}[]', " \
34
+ "value[:#{col[:column_name]}]) if value[:#{col[:column_name]}]\n"
35
+ else
36
+ " scope = scope.where(#{col[:column_name]}: value[:#{col[:column_name]}]) if " \
37
+ "value[:#{col[:column_name]}]\n"
38
+ end
36
39
  new_line.write(add_line) unless scope_args.include?(col[:column_name])
37
40
  end
38
41
  scope = true
@@ -26,9 +26,11 @@ module Souls
26
26
 
27
27
  type_line =
28
28
  if type == "String" && !col[:array]
29
- " #{col[:column_name].camelize(:lower)}: \"\#{#{class_name}[:#{col[:column_name].underscore}]}\"\n"
29
+ " #{col[:column_name].camelize(:lower)}" \
30
+ ": \"\#{#{class_name}[:#{col[:column_name].underscore}]}\"\n"
30
31
  else
31
- " #{col[:column_name].camelize(:lower)}: \#{#{class_name}[:#{col[:column_name].underscore}]}\n"
32
+ " #{col[:column_name].camelize(:lower)}" \
33
+ ": \#{#{class_name}[:#{col[:column_name].underscore}]}\n"
32
34
  end
33
35
  args = check_rspec_mutation_argument(class_name: class_name)
34
36
  new_line.write(type_line) unless args.include?(col[:column_name].underscore)
@@ -1,3 +1,3 @@
1
1
  require_relative "./gemfile"
2
2
  require_relative "./submodule"
3
- require_relative "./config"
3
+ require_relative "./config"
data/lib/souls/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  module Souls
2
- VERSION = "1.7.18".freeze
2
+ VERSION = "1.7.24".freeze
3
3
  public_constant :VERSION
4
4
  end
@@ -1 +1 @@
1
- 1.7.18
1
+ 1.7.24
@@ -1 +1 @@
1
- 1.7.18
1
+ 1.7.24
metadata CHANGED
@@ -1,16 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: souls
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.18
4
+ version: 1.7.24
5
5
  platform: ruby
6
6
  authors:
7
7
  - POPPIN-FUMI
8
8
  - KishiTheMechanic
9
9
  - James Neve
10
- autorequire:
10
+ autorequire:
11
11
  bindir: exe
12
12
  cert_chain: []
13
- date: 2021-11-15 00:00:00.000000000 Z
13
+ date: 2021-11-16 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activesupport
@@ -224,10 +224,8 @@ homepage: https://souls.elsoul.nl
224
224
  licenses:
225
225
  - Apache-2.0
226
226
  metadata:
227
- homepage_uri: https://souls.elsoul.nl
228
- source_code_uri: https://github.com/elsoul/souls
229
- changelog_uri: https://github.com/elsoul/souls/releases/tag/v1.7.18
230
- post_install_message:
227
+ rubygems_mfa_required: 'true'
228
+ post_install_message:
231
229
  rdoc_options: []
232
230
  require_paths:
233
231
  - lib
@@ -243,7 +241,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
243
241
  version: '0'
244
242
  requirements: []
245
243
  rubygems_version: 3.2.22
246
- signing_key:
244
+ signing_key:
247
245
  specification_version: 4
248
246
  summary: Build Serverless Apps faster like Rails. Powered by Ruby GraphQL, RBS/Steep,
249
247
  Active Record, RSpec, RuboCop, and Google Cloud.