souls 0.17.1 → 0.17.6

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: 355c7cee19de658ccd9388304dcd579be138cfbf08bf8bf85286e89fb7eed494
4
- data.tar.gz: 865cf06eeab74c947f817b520d88762835ba3d6f5f9c28a15cf8e5a1fd2e601e
3
+ metadata.gz: bbb549404b0a81f37dff81fc568f7d93b69f4ef23ac321fd6f7ed4602e1a1195
4
+ data.tar.gz: 18b4d58e4969cb122387bb893d476fa3bf246a47a9ea31338adb95b80fea3b13
5
5
  SHA512:
6
- metadata.gz: 8675b29f4901bc934e3ac67b2ce3d6baacd1df2ded71164a99cda4be3eb7c16d7452e066dcdafc784124481de74deb194629b3b565ee5d35a881411fc788441a
7
- data.tar.gz: ea38542d2c8be19a503829cc4eee72b3576f8b20e89d82fcc66ff921992dbe05fcd19bcbb3db262c173994ce44bd2642082bbe78a6db3e1abe59d34a6f3ed5d8
6
+ metadata.gz: a060e41c870266b1441285ebe87e5cf25aacea694299858ffdf1223aae0b880ca688735a8f8ec5957eae87c0ebf4358365a69673fb33d4379f25c9aa52cb9d2c
7
+ data.tar.gz: 1fa8878a36982334b4244bd39e90da9010ca8e9a097bc33a75e49ce44360502e4bc6fe05a339cba30cd1ff5e6e6e4f7d7d29bbf769cf9a498579b9244ad0d760
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- souls (0.16.7)
4
+ souls (0.17.5)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -77,6 +77,7 @@ GEM
77
77
 
78
78
  PLATFORMS
79
79
  x86_64-darwin-20
80
+ x86_64-linux
80
81
 
81
82
  DEPENDENCIES
82
83
  activesupport (= 6.1.0)
@@ -87,4 +88,4 @@ DEPENDENCIES
87
88
  steep (= 0.39.0)
88
89
 
89
90
  BUNDLED WITH
90
- 2.2.11
91
+ 2.2.14
data/Steepfile CHANGED
@@ -5,5 +5,4 @@ target :app do
5
5
 
6
6
  # check 'app'
7
7
  check "rbs"
8
-
9
8
  end
data/exe/souls CHANGED
@@ -67,6 +67,10 @@ begin
67
67
  case ARGV[1]
68
68
  when "test_dir"
69
69
  Souls::Init.test_dir
70
+ when "policy"
71
+ Souls::Init.policy class_name: ARGV[2]
72
+ when "rspec_policy"
73
+ Souls::Init.rspec_policy class_name: ARGV[2]
70
74
  when "node_type"
71
75
  Souls::Init.node_type class_name: ARGV[2]
72
76
  when "resolver"
@@ -103,7 +107,10 @@ begin
103
107
  "SOULs!"
104
108
  end
105
109
  when "d"
106
- Souls::Init.delete_all class_name: ARGV[1]
110
+ Souls::Init.add_delete class_name: ARGV[1]
111
+ when "update"
112
+ Souls::Init.add_delete class_name: ARGV[1]
113
+ Souls::Init.single_migrate class_name: ARGV[1]
107
114
  when "db:create"
108
115
  system "rake db:create && rake db:create RACK_ENV=test"
109
116
  when "db:migrate"
data/lib/souls.rb CHANGED
@@ -118,11 +118,13 @@ module Souls
118
118
  app = Souls.configuration.app
119
119
  network = Souls.configuration.network
120
120
  sub_network = Souls.configuration.network
121
- system("gcloud compute network-endpoint-groups create #{app} \
121
+ system(
122
+ "gcloud compute network-endpoint-groups create #{app} \
122
123
  --default-port=0 \
123
124
  --network #{network} \
124
125
  --subnet #{sub_network} \
125
- --global")
126
+ --global"
127
+ )
126
128
  end
127
129
 
128
130
  def export_network_group
@@ -158,7 +160,8 @@ module Souls
158
160
  sub_network = Souls.configuration.network
159
161
  machine_type = Souls.configuration.machine_type
160
162
  zone = Souls.configuration.zone
161
- system("gcloud container clusters create #{app} \
163
+ system(
164
+ "gcloud container clusters create #{app} \
162
165
  --network #{network} \
163
166
  --subnetwork #{sub_network} \
164
167
  --zone #{zone} \
@@ -170,7 +173,8 @@ module Souls
170
173
  --enable-autoscaling \
171
174
  --min-nodes 1 \
172
175
  --max-nodes 4 \
173
- --tags=allow-health-checks")
176
+ --tags=allow-health-checks"
177
+ )
174
178
  end
175
179
 
176
180
  def deploy
@@ -19,6 +19,92 @@ module Souls
19
19
  [file_path]
20
20
  end
21
21
 
22
+ def policy class_name: "souls"
23
+ dir_name = "./app/policy"
24
+ FileUtils.mkdir_p dir_name unless Dir.exist? dir_name
25
+ file_path = "./app/policy/#{class_name.singularize}_policy.rb"
26
+ File.open(file_path, "w") do |f|
27
+ f.write <<~EOS
28
+ class #{class_name.camelize}Policy < ApplicationPolicy
29
+ def show?
30
+ true
31
+ end
32
+
33
+ def index?
34
+ true
35
+ end
36
+
37
+ def create?
38
+ staff_permissions?
39
+ end
40
+
41
+ def update?
42
+ staff_permissions?
43
+ end
44
+
45
+ def delete?
46
+ staff_permissions?
47
+ end
48
+
49
+ private
50
+
51
+ def staff_permissions?
52
+ @user.master? or @user.admin? or @user.staff?
53
+ end
54
+
55
+ def admin_permissions?
56
+ @user.master? or @user.admin?
57
+ end
58
+ end
59
+ EOS
60
+ end
61
+ [file_path]
62
+ end
63
+
64
+ def rspec_policy class_name: "souls"
65
+ dir_name = "./spec/policies"
66
+ FileUtils.mkdir_p dir_name unless Dir.exist? dir_name
67
+ file_path = "./spec/policies/#{class_name}_policy_spec.rb"
68
+ File.open(file_path, "w") do |new_line|
69
+ new_line.write <<~EOS
70
+ describe #{class_name.camelize}Policy do
71
+ subject { described_class.new(user, #{class_name.underscore}) }
72
+
73
+ let(:#{class_name.underscore}) { FactoryBot.create(:#{class_name.underscore}) }
74
+
75
+ context "being a visitor" do
76
+ let(:user) { FactoryBot.create(:user) }
77
+
78
+ it { is_expected.to permit_action(:index) }
79
+ it { is_expected.to permit_action(:show) }
80
+ it { is_expected.to forbid_actions([:create, :update, :delete]) }
81
+ end
82
+
83
+ context "being a retailer" do
84
+ let(:user) { FactoryBot.create(:user, user_role: 1) }
85
+
86
+ it { is_expected.to permit_action(:index) }
87
+ it { is_expected.to permit_action(:show) }
88
+ it { is_expected.to forbid_actions([:create, :update, :delete]) }
89
+ end
90
+
91
+ context "being a staff" do
92
+ let(:user) { FactoryBot.create(:user, user_role: 3) }
93
+
94
+ it { is_expected.to permit_actions([:create, :update, :delete]) }
95
+ end
96
+
97
+ context "being an administrator" do
98
+ let(:user) { FactoryBot.create(:user, user_role: 4) }
99
+
100
+ it { is_expected.to permit_actions([:create, :update, :delete]) }
101
+ end
102
+ end
103
+ EOS
104
+ end
105
+ [file_path]
106
+ end
107
+
22
108
  def resolver_head class_name: "souls"
23
109
  FileUtils.mkdir_p "./app/graphql/resolvers" unless Dir.exist? "./app/graphql/resolvers"
24
110
  file_path = "./app/graphql/resolvers/#{class_name.singularize}_search.rb"
@@ -140,18 +226,18 @@ module Souls
140
226
  def resolver_end class_name: "souls"
141
227
  file_path = "./app/graphql/resolvers/#{class_name.singularize}_search.rb"
142
228
  File.open(file_path, "a") do |f|
143
- f.write <<-EOS
144
- scope = scope.where("created_at >= ?", value[:start_date]) if value[:start_date]
145
- scope = scope.where("created_at <= ?", value[:end_date]) if value[:end_date]
146
-
147
- branches << scope
148
-
149
- value[:OR].inject(branches) { |s, v| normalize_filters(v, s) } if value[:OR].present?
150
-
151
- branches
152
- end
153
- end
154
- end
229
+ f.write <<~EOS
230
+ scope = scope.where("created_at >= ?", value[:start_date]) if value[:start_date]
231
+ scope = scope.where("created_at <= ?", value[:end_date]) if value[:end_date]
232
+ #{' '}
233
+ branches << scope
234
+ #{' '}
235
+ value[:OR].inject(branches) { |s, v| normalize_filters(v, s) } if value[:OR].present?
236
+ #{' '}
237
+ branches
238
+ end
239
+ end
240
+ end
155
241
  EOS
156
242
  end
157
243
  [file_path]
@@ -318,11 +404,11 @@ end
318
404
  f.each_line.with_index do |line, i|
319
405
  if @on
320
406
  if line.include?("end") || line.include?("t.index")
321
- new_line.write <<-EOS
322
- )
323
- end
324
- end
325
- end
407
+ new_line.write <<~EOS
408
+ )
409
+ end
410
+ end
411
+ end
326
412
  EOS
327
413
  break
328
414
  end
@@ -366,6 +452,25 @@ end
366
452
  rspec_resolver_end class_name: singularized_class_name
367
453
  end
368
454
 
455
+ def add_delete class_name: "souls"
456
+ singularized_class_name = class_name.singularize.underscore
457
+ pluralized_class_name = class_name.pluralize.underscore
458
+ FileUtils.rm_rf "./app/graphql/mutations/#{singularized_class_name}"
459
+ FileUtils.rm "./app/graphql/queries/#{singularized_class_name}.rb"
460
+ FileUtils.rm "./app/graphql/queries/#{pluralized_class_name}.rb"
461
+ FileUtils.rm "./app/graphql/resolvers/#{singularized_class_name}_search.rb"
462
+ FileUtils.rm "./app/graphql/types/#{singularized_class_name}_type.rb"
463
+ FileUtils.rm "./app/graphql/types/#{singularized_class_name}_node_type.rb"
464
+ FileUtils.rm "./spec/factories/#{pluralized_class_name}.rb"
465
+ FileUtils.rm "./spec/mutations/#{singularized_class_name}_spec.rb"
466
+ FileUtils.rm "./spec/models/#{singularized_class_name}_spec.rb"
467
+ FileUtils.rm "./spec/queries/#{singularized_class_name}_spec.rb"
468
+ FileUtils.rm "./spec/resolvers/#{singularized_class_name}_search_spec.rb"
469
+ puts "deleted #{class_name.camelize} CRUD!"
470
+ rescue StandardError => error
471
+ puts error
472
+ end
473
+
369
474
  def delete_all class_name: "souls"
370
475
  singularized_class_name = class_name.singularize.underscore
371
476
  pluralized_class_name = class_name.pluralize.underscore
@@ -388,32 +493,27 @@ end
388
493
 
389
494
  def add_mutation class_name: "souls", file_name: "hoi"
390
495
  singularized_class_name = class_name.singularize.underscore
391
- file_path = "./app/graphql/mutations/#{singularized_class_name}/#{file_name}.rb"
392
- file_path
496
+ "./app/graphql/mutations/#{singularized_class_name}/#{file_name}.rb"
393
497
  end
394
498
 
395
499
  def add_type class_name: "souls", file_name: "hoi"
396
500
  singularized_class_name = class_name.singularize.underscore
397
- file_path = "./app/graphql/types/#{file_name}.rb"
398
- file_path
501
+ "./app/graphql/types/#{file_name}.rb"
399
502
  end
400
503
 
401
504
  def add_edge class_name: "souls", file_name: "hoi"
402
505
  singularized_class_name = class_name.singularize.underscore
403
- file_path = "./app/graphql/types/#{file_name}.rb"
404
- file_path
506
+ "./app/graphql/types/#{file_name}.rb"
405
507
  end
406
508
 
407
509
  def add_connection class_name: "souls", file_name: "hoi"
408
510
  singularized_class_name = class_name.singularize.underscore
409
- file_path = "./app/graphql/types/#{file_name}.rb"
410
- file_path
511
+ "./app/graphql/types/#{file_name}.rb"
411
512
  end
412
513
 
413
514
  def add_rspec_mutation class_name: "souls", file_name: "hoi"
414
515
  singularized_class_name = class_name.singularize.underscore
415
- file_path = "./app/graphql/types/#{file_name}.rb"
416
- file_path
516
+ "./app/graphql/types/#{file_name}.rb"
417
517
  end
418
518
  end
419
519
  end
data/lib/souls/init.rb CHANGED
@@ -289,8 +289,8 @@ module Souls
289
289
  float: 4.2,
290
290
  string: '"MyString"',
291
291
  text: '"MyString"',
292
- datetime: "DateTime.now",
293
- date: "DateTime.now",
292
+ datetime: "Time.now",
293
+ date: "Time.now",
294
294
  boolean: false,
295
295
  integer: 1
296
296
  }[type.to_sym]
data/lib/souls/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Souls
2
- VERSION = "0.17.1"
2
+ VERSION = "0.17.6"
3
3
  end
data/souls.gemspec CHANGED
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
18
18
 
19
19
  # Specify which files should be added to the gem when it is released.
20
20
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
21
- spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
21
+ spec.files = Dir.chdir(File.expand_path(__dir__)) do
22
22
  `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
23
23
  end
24
24
  spec.bindir = "exe"
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.17.1
4
+ version: 0.17.6
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-03-16 00:00:00.000000000 Z
13
+ date: 2021-04-02 00:00:00.000000000 Z
14
14
  dependencies: []
15
15
  description: SOULS is a Web Application Framework for Microservices on Multi Cloud
16
16
  Platform such as Google Cloud Platform, Amazon Web Services, and Alibaba Cloud.