souls 0.17.0 → 0.17.5

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