souls 0.17.0 → 0.17.5

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: 652a6ed97ff4627ab69ae4b0dbe647c36961bf6ac31e3a221f6d1089800d87a6
4
- data.tar.gz: '027758df8963b95327a77b59df5a77456f39d33764dbd20c668f88e96331ce59'
3
+ metadata.gz: 48f5dacba8fb3bd0da68f45b83208de7007abb6392b7d0c8eb9176755b97c185
4
+ data.tar.gz: 64283afa2ca8decda20078855d116d8c9dd7e3979dd8ce50560e9591dfcc5135
5
5
  SHA512:
6
- metadata.gz: 9c9109f25dd5e0ddbf756289732e5f6d7a508d70ce7ca07c378ff202c0b29f9b731f98e688a38dc59aa47c45af4c34bc1a6b01ee9998cdb36eb324906c865593
7
- data.tar.gz: abffe7be9a74f4b785e83888a69a767a92d12d0182ef009cf802dabcda5124ef3380f02b5463078598f3258a00ed90f93ee2c46f164b21d71dc4f2f60c488cbe
6
+ metadata.gz: 507ef37fd28f186e6f7a4cc6c5e8528a5b48443afb989f247e60dab26fe4a1005733283caedb1391cc1bc0f3288ba099774ff25c3d573c2a5530ea331bfadb76
7
+ data.tar.gz: 8ae0b00d12c3acab94babcf5cb6cf19fa4a8923b26c82c5b1790de317d16fd421bf4f97e572615561d1ac7f90c6a918122625cf1420d371ef980d76870015651
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"
@@ -114,7 +121,12 @@ begin
114
121
  system "rake db:migrate && rake db:migrate RACK_ENV=test"
115
122
  end
116
123
  when "db:seed"
117
- system "rake db:seed"
124
+ case ARGV[1]
125
+ when "RACK_ENV=production"
126
+ system "rake db:seed RACK_ENV=production"
127
+ else
128
+ system "rake db:seed"
129
+ end
118
130
  when "db:migrate:reset"
119
131
  case ARGV[1]
120
132
  when "RACK_ENV=production"
@@ -19,6 +19,90 @@ module Souls
19
19
  [file_path]
20
20
  end
21
21
 
22
+ def policy class_name: "souls"
23
+ file_path = "./app/policy/#{class_name.singularize}_policy.rb"
24
+ File.open(file_path, "w") do |f|
25
+ f.write <<~EOS
26
+ class #{class_name.camelize}Policy < ApplicationPolicy
27
+ def show?
28
+ true
29
+ end
30
+
31
+ def index?
32
+ true
33
+ end
34
+
35
+ def create?
36
+ staff_permissions?
37
+ end
38
+
39
+ def update?
40
+ staff_permissions?
41
+ end
42
+
43
+ def delete?
44
+ staff_permissions?
45
+ end
46
+
47
+ private
48
+
49
+ def staff_permissions?
50
+ @user.master? or @user.admin? or @user.staff?
51
+ end
52
+
53
+ def admin_permissions?
54
+ @user.master? or @user.admin?
55
+ end
56
+ end
57
+ EOS
58
+ end
59
+ [file_path]
60
+ end
61
+
62
+ def rspec_policy class_name: "souls"
63
+ dir_name = "./spec/policies"
64
+ FileUtils.mkdir_p dir_name unless Dir.exist? dir_name
65
+ file_path = "./spec/policies/#{class_name}_policy_spec.rb"
66
+ File.open(file_path, "w") do |new_line|
67
+ new_line.write <<~EOS
68
+ describe #{class_name.camelize}Policy do
69
+ subject { described_class.new(user, #{class_name.underscore}) }
70
+
71
+ let(:#{class_name.underscore}) { FactoryBot.create(:#{class_name.underscore}) }
72
+
73
+ context "being a visitor" do
74
+ let(:user) { FactoryBot.create(:user) }
75
+
76
+ it { is_expected.to permit_action(:index) }
77
+ it { is_expected.to permit_action(:show) }
78
+ it { is_expected.to forbid_actions([:create, :update, :delete]) }
79
+ end
80
+
81
+ context "being a retailer" do
82
+ let(:user) { FactoryBot.create(:user, user_role: 1) }
83
+
84
+ it { is_expected.to permit_action(:index) }
85
+ it { is_expected.to permit_action(:show) }
86
+ it { is_expected.to forbid_actions([:create, :update, :delete]) }
87
+ end
88
+
89
+ context "being a staff" do
90
+ let(:user) { FactoryBot.create(:user, user_role: 3) }
91
+
92
+ it { is_expected.to permit_actions([:create, :update, :delete]) }
93
+ end
94
+
95
+ context "being an administrator" do
96
+ let(:user) { FactoryBot.create(:user, user_role: 4) }
97
+
98
+ it { is_expected.to permit_actions([:create, :update, :delete]) }
99
+ end
100
+ end
101
+ EOS
102
+ end
103
+ [file_path]
104
+ end
105
+
22
106
  def resolver_head class_name: "souls"
23
107
  FileUtils.mkdir_p "./app/graphql/resolvers" unless Dir.exist? "./app/graphql/resolvers"
24
108
  file_path = "./app/graphql/resolvers/#{class_name.singularize}_search.rb"
@@ -366,6 +450,28 @@ end
366
450
  rspec_resolver_end class_name: singularized_class_name
367
451
  end
368
452
 
453
+
454
+
455
+
456
+ def add_delete class_name: "souls"
457
+ singularized_class_name = class_name.singularize.underscore
458
+ pluralized_class_name = class_name.pluralize.underscore
459
+ FileUtils.rm_rf "./app/graphql/mutations/#{singularized_class_name}"
460
+ FileUtils.rm "./app/graphql/queries/#{singularized_class_name}.rb"
461
+ FileUtils.rm "./app/graphql/queries/#{pluralized_class_name}.rb"
462
+ FileUtils.rm "./app/graphql/resolvers/#{singularized_class_name}_search.rb"
463
+ FileUtils.rm "./app/graphql/types/#{singularized_class_name}_type.rb"
464
+ FileUtils.rm "./app/graphql/types/#{singularized_class_name}_node_type.rb"
465
+ FileUtils.rm "./spec/factories/#{pluralized_class_name}.rb"
466
+ FileUtils.rm "./spec/mutations/#{singularized_class_name}_spec.rb"
467
+ FileUtils.rm "./spec/models/#{singularized_class_name}_spec.rb"
468
+ FileUtils.rm "./spec/queries/#{singularized_class_name}_spec.rb"
469
+ FileUtils.rm "./spec/resolvers/#{singularized_class_name}_search_spec.rb"
470
+ puts "deleted #{class_name.camelize} CRUD!"
471
+ rescue StandardError => error
472
+ puts error
473
+ end
474
+
369
475
  def delete_all class_name: "souls"
370
476
  singularized_class_name = class_name.singularize.underscore
371
477
  pluralized_class_name = class_name.pluralize.underscore
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.0"
2
+ VERSION = "0.17.5"
3
3
  end
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.0
4
+ version: 0.17.5
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-15 00:00:00.000000000 Z
13
+ date: 2021-04-01 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.