souls 0.29.1 β 0.29.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/exe/souls +14 -1
- data/lib/souls.rb +1 -0
- data/lib/souls/gcloud/iam.rb +2 -2
- data/lib/souls/version.rb +1 -1
- data/lib/souls/versions/.souls_api_version +1 -1
- data/lib/souls/versions/.souls_worker_version +1 -1
- data/lib/souls/worker.rb +6 -1
- data/lib/souls/worker/generate.rb +7 -0
- data/lib/souls/worker/generate/application.rb +150 -0
- data/lib/souls/worker/generate/mailer.rb +59 -0
- metadata +4 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 730068b7f3f94de4766fe3868d5b8d16cdcbdf9c1c2ba4b94f047052bfe7ac69
|
4
|
+
data.tar.gz: fbd205b97defe15233528f17af4ac35718fb75da3ab7f593110ec9e1d019b306
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6eb87212d994fc4296aae60c39358f1f323416c9e1ca6d9c837f8eed0f432dfeacf8a39a2be57e38c41d38bb2c83dcd1cd27f1648ef819dd5300daa0b416c885
|
7
|
+
data.tar.gz: 25a74b86d4d8877e1fb569015a06b1c8cd82d11754a2d8992eff6964de98e4319a3ec3712806c2061f03b3c3e8998454b8186b8fd9afa5dd0839cef9552c7a64
|
data/exe/souls
CHANGED
@@ -24,7 +24,20 @@ begin
|
|
24
24
|
puts(Paint["Comannd doesn't exist.Check you command again!...", :red])
|
25
25
|
end
|
26
26
|
when "worker"
|
27
|
-
|
27
|
+
api_command = ARGV[1]
|
28
|
+
case api_command
|
29
|
+
when "generate", "g"
|
30
|
+
method_name = ARGV[2]
|
31
|
+
class_name = ARGV[3]
|
32
|
+
status = Paint["Running SOULs Generate Commands...", :yellow]
|
33
|
+
Whirly.start(spinner: "clock", interval: 420, stop: "π") do
|
34
|
+
Whirly.status = status
|
35
|
+
Souls::Worker::Generate.public_send(method_name, class_name: class_name)
|
36
|
+
Whirly.status = "Done!"
|
37
|
+
end
|
38
|
+
else
|
39
|
+
puts(Paint["Comannd doesn't exist.Check you command again!...", :red])
|
40
|
+
end
|
28
41
|
when "new"
|
29
42
|
args = ARGV
|
30
43
|
Souls::Init.return_method(args)
|
data/lib/souls.rb
CHANGED
@@ -2,6 +2,7 @@ require_relative "souls/version"
|
|
2
2
|
require "active_support/core_ext/string/inflections"
|
3
3
|
require_relative "souls/init"
|
4
4
|
require_relative "souls/api"
|
5
|
+
require_relative "souls/worker"
|
5
6
|
require_relative "souls/gcloud"
|
6
7
|
require_relative "souls/release"
|
7
8
|
require_relative "souls/docker"
|
data/lib/souls/gcloud/iam.rb
CHANGED
@@ -63,8 +63,8 @@ module Souls
|
|
63
63
|
roles = [
|
64
64
|
"roles/cloudsql.instanceUser",
|
65
65
|
"roles/containerregistry.ServiceAgent",
|
66
|
-
"roles/pubsub.
|
67
|
-
"roles/firestore.
|
66
|
+
"roles/pubsub.serviceAdmin",
|
67
|
+
"roles/firestore.serviceAdmin",
|
68
68
|
"roles/iam.serviceAccountUser",
|
69
69
|
"roles/storage.objectAdmin",
|
70
70
|
"roles/run.admin"
|
data/lib/souls/version.rb
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.8.
|
1
|
+
0.8.2
|
@@ -1 +1 @@
|
|
1
|
-
0.8.
|
1
|
+
0.8.2
|
data/lib/souls/worker.rb
CHANGED
@@ -0,0 +1,150 @@
|
|
1
|
+
module Souls
|
2
|
+
module Worker
|
3
|
+
module Generate
|
4
|
+
## Common Methods
|
5
|
+
def self.generated_paths(class_name: "user")
|
6
|
+
singularized_class_name = class_name.singularize.underscore
|
7
|
+
pluralized_class_name = class_name.pluralize.underscore
|
8
|
+
[
|
9
|
+
"./app/models/#{singularized_class_name}.rb",
|
10
|
+
"./app/policies/#{singularized_class_name}_policy.rb",
|
11
|
+
"./app/graphql/mutations/create_#{singularized_class_name}.rb",
|
12
|
+
"./app/graphql/mutations/delete_#{singularized_class_name}.rb",
|
13
|
+
"./app/graphql/mutations/destroy_delete_#{singularized_class_name}.rb",
|
14
|
+
"./app/graphql/mutations/update_#{singularized_class_name}.rb",
|
15
|
+
"./app/graphql/queries/#{singularized_class_name}.rb",
|
16
|
+
"./app/graphql/queries/#{pluralized_class_name}.rb",
|
17
|
+
"./app/graphql/resolvers/#{singularized_class_name}_search.rb",
|
18
|
+
"./app/graphql/types/#{singularized_class_name}_type.rb",
|
19
|
+
"./app/graphql/types/edges/#{singularized_class_name}_edge.rb",
|
20
|
+
"./app/graphql/types/connections/#{singularized_class_name}_connection.rb",
|
21
|
+
"./spec/factories/#{pluralized_class_name}.rb",
|
22
|
+
"./spec/mutations/#{singularized_class_name}_spec.rb",
|
23
|
+
"./spec/models/#{singularized_class_name}_spec.rb",
|
24
|
+
"./spec/queries/#{singularized_class_name}_spec.rb",
|
25
|
+
"./spec/policies/#{singularized_class_name}_policy_spec.rb",
|
26
|
+
"./spec/resolvers/#{singularized_class_name}_search_spec.rb"
|
27
|
+
]
|
28
|
+
end
|
29
|
+
|
30
|
+
def self.get_type_and_name(line)
|
31
|
+
line.split(",")[0].gsub("\"", "").scan(/((?<=t\.).+(?=\s)) (.+)/)[0]
|
32
|
+
end
|
33
|
+
|
34
|
+
def self.get_tables
|
35
|
+
path = "./db/schema.rb"
|
36
|
+
tables = []
|
37
|
+
File.open(path, "r") do |f|
|
38
|
+
f.each_line.with_index do |line, _i|
|
39
|
+
tables << line.split("\"")[1] if line.include?("create_table")
|
40
|
+
end
|
41
|
+
end
|
42
|
+
tables
|
43
|
+
end
|
44
|
+
|
45
|
+
def self.type_check(type)
|
46
|
+
{
|
47
|
+
bigint: "Integer",
|
48
|
+
string: "String",
|
49
|
+
float: "Float",
|
50
|
+
text: "String",
|
51
|
+
datetime: "String",
|
52
|
+
date: "String",
|
53
|
+
boolean: "Boolean",
|
54
|
+
integer: "Integer"
|
55
|
+
}[type.to_sym]
|
56
|
+
end
|
57
|
+
|
58
|
+
def self.get_test_type(type)
|
59
|
+
{
|
60
|
+
bigint: 1,
|
61
|
+
float: 4.2,
|
62
|
+
string: '"MyString"',
|
63
|
+
text: '"MyString"',
|
64
|
+
datetime: "Time.now",
|
65
|
+
date: "Time.now",
|
66
|
+
boolean: false,
|
67
|
+
integer: 1
|
68
|
+
}[type.to_sym]
|
69
|
+
end
|
70
|
+
|
71
|
+
def self.table_check(line: "", class_name: "")
|
72
|
+
if line.include?("create_table") && (line.split[1].gsub("\"", "").gsub(",", "") == class_name.pluralize.to_s)
|
73
|
+
|
74
|
+
return true
|
75
|
+
end
|
76
|
+
|
77
|
+
false
|
78
|
+
end
|
79
|
+
|
80
|
+
def self.migrate(class_name: "souls")
|
81
|
+
singularized_class_name = class_name.singularize
|
82
|
+
model(class_name: singularized_class_name)
|
83
|
+
type(class_name: singularized_class_name)
|
84
|
+
edge(class_name: singularized_class_name)
|
85
|
+
connection(class_name: singularized_class_name)
|
86
|
+
resolver(class_name: singularized_class_name)
|
87
|
+
rspec_factory(class_name: singularized_class_name)
|
88
|
+
rspec_model(class_name: singularized_class_name)
|
89
|
+
rspec_mutation(class_name: singularized_class_name)
|
90
|
+
rspec_query(class_name: singularized_class_name)
|
91
|
+
rspec_resolver(class_name: singularized_class_name)
|
92
|
+
query(class_name: singularized_class_name)
|
93
|
+
mutation(class_name: singularized_class_name)
|
94
|
+
policy(class_name: singularized_class_name)
|
95
|
+
rspec_policy(class_name: singularized_class_name)
|
96
|
+
rescue StandardError => e
|
97
|
+
raise(StandardError, e)
|
98
|
+
end
|
99
|
+
|
100
|
+
def self.migrate_all
|
101
|
+
puts(Paint["Let's Go SOULs AUTO CRUD Assist!\n", :cyan])
|
102
|
+
Souls::Api::Generate.get_tables.each do |table|
|
103
|
+
Souls::Api::Generate.migrate(class_name: table.singularize)
|
104
|
+
puts(Paint["Generated #{table.camelize} CRUD Files\n", :yellow])
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
def self.delete_all(class_name: "souls")
|
109
|
+
singularized_class_name = class_name.singularize.underscore
|
110
|
+
pluralized_class_name = class_name.pluralize.underscore
|
111
|
+
FileUtils.rm("./app/models/#{singularized_class_name}.rb")
|
112
|
+
FileUtils.rm("./app/policies/#{singularized_class_name}_policy.rb")
|
113
|
+
FileUtils.rm_rf("./app/graphql/mutations/base/#{singularized_class_name}")
|
114
|
+
FileUtils.rm("./app/graphql/queries/#{singularized_class_name}.rb")
|
115
|
+
FileUtils.rm("./app/graphql/queries/#{pluralized_class_name}.rb")
|
116
|
+
FileUtils.rm("./app/graphql/resolvers/#{singularized_class_name}_search.rb")
|
117
|
+
FileUtils.rm("./app/graphql/types/#{singularized_class_name}_type.rb")
|
118
|
+
FileUtils.rm("./app/graphql/types/edges/#{singularized_class_name}_edge.rb")
|
119
|
+
FileUtils.rm("./app/graphql/types/connections/#{singularized_class_name}_connection.rb")
|
120
|
+
FileUtils.rm("./spec/factories/#{pluralized_class_name}.rb")
|
121
|
+
FileUtils.rm("./spec/mutations/base/#{singularized_class_name}_spec.rb")
|
122
|
+
FileUtils.rm("./spec/models/#{singularized_class_name}_spec.rb")
|
123
|
+
FileUtils.rm("./spec/queries/#{singularized_class_name}_spec.rb")
|
124
|
+
FileUtils.rm("./spec/policies/#{singularized_class_name}_policy_spec.rb")
|
125
|
+
FileUtils.rm("./spec/resolvers/#{singularized_class_name}_search_spec.rb")
|
126
|
+
puts(Paint["deleted #{class_name.camelize} CRUD!", :yellow])
|
127
|
+
rescue StandardError => e
|
128
|
+
raise(StandardError, e)
|
129
|
+
end
|
130
|
+
|
131
|
+
def self.update_delete(class_name: "souls")
|
132
|
+
singularized_class_name = class_name.singularize.underscore
|
133
|
+
pluralized_class_name = class_name.pluralize.underscore
|
134
|
+
FileUtils.rm_rf("./app/graphql/mutations/#{singularized_class_name}")
|
135
|
+
FileUtils.rm("./app/graphql/queries/#{singularized_class_name}.rb")
|
136
|
+
FileUtils.rm("./app/graphql/queries/#{pluralized_class_name}.rb")
|
137
|
+
FileUtils.rm("./app/graphql/resolvers/#{singularized_class_name}_search.rb")
|
138
|
+
FileUtils.rm("./app/graphql/types/#{singularized_class_name}_type.rb")
|
139
|
+
FileUtils.rm("./app/graphql/types/edges/#{singularized_class_name}_edge.rb")
|
140
|
+
FileUtils.rm("./app/graphql/types/connections/#{singularized_class_name}_connection.rb")
|
141
|
+
FileUtils.rm("./spec/mutations/#{singularized_class_name}_spec.rb")
|
142
|
+
FileUtils.rm("./spec/queries/#{singularized_class_name}_spec.rb")
|
143
|
+
FileUtils.rm("./spec/resolvers/#{singularized_class_name}_search_spec.rb")
|
144
|
+
puts("deleted #{class_name.camelize} CRUD!")
|
145
|
+
rescue StandardError => e
|
146
|
+
raise(StandardError, e)
|
147
|
+
end
|
148
|
+
end
|
149
|
+
end
|
150
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
module Souls
|
2
|
+
module Worker
|
3
|
+
module Generate
|
4
|
+
class << self
|
5
|
+
def mailer(class_name: "mailer", option: :mailgun)
|
6
|
+
if option == :sendgrid
|
7
|
+
sendgrid_mailer(class_name: class_name)
|
8
|
+
else
|
9
|
+
mailgun_mailer(class_name: class_name)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
private
|
14
|
+
|
15
|
+
def mailgun_mailer(class_name: "mailer")
|
16
|
+
file_dir = "./app/graphql/mutations/mailers/"
|
17
|
+
FileUtils.mkdir_p(file_dir) unless Dir.exist?(file_dir)
|
18
|
+
file_path = "#{file_dir}#{class_name.singularize}.rb"
|
19
|
+
raise(StandardError, "Mailer already exist! #{file_path}") if File.exist?(file_path)
|
20
|
+
|
21
|
+
File.open(file_path, "w") do |f|
|
22
|
+
f.write(<<~TEXT)
|
23
|
+
module Mutations
|
24
|
+
module Mailers
|
25
|
+
class #{class_name.camelize}Mailer < BaseMutation
|
26
|
+
description "Mail γιδΏ‘γγΎγγ"
|
27
|
+
field :response, String, null: false
|
28
|
+
|
29
|
+
def resolve
|
30
|
+
# First, instantiate the Mailgun Client with your API key
|
31
|
+
mg_client = Mailgun::Client.new("YOUR-API-KEY")
|
32
|
+
|
33
|
+
# Define your message parameters
|
34
|
+
message_params = {
|
35
|
+
from: "postmaster@YOUR-DOMAIN",
|
36
|
+
to: "sending@to.mail.com",
|
37
|
+
subject: "SOULs Mailer test!",
|
38
|
+
text: "It is really easy to send a message!"
|
39
|
+
}
|
40
|
+
|
41
|
+
# Send your message through the client
|
42
|
+
mg_client.send_message("YOUR-sandbox.mailgun.org", message_params)
|
43
|
+
{ response: "Job done!" }
|
44
|
+
rescue StandardError => e
|
45
|
+
GraphQL::ExecutionError.new(e.to_s)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
TEXT
|
50
|
+
end
|
51
|
+
puts(Paint % ["Created file! : %{white_text}", :green, { white_text: [file_path.to_s, :white] }])
|
52
|
+
file_path
|
53
|
+
end
|
54
|
+
|
55
|
+
def sendgrid_mailer; end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
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.29.
|
4
|
+
version: 0.29.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- POPPIN-FUMI
|
@@ -134,6 +134,9 @@ files:
|
|
134
134
|
- lib/souls/versions/.souls_api_version
|
135
135
|
- lib/souls/versions/.souls_worker_version
|
136
136
|
- lib/souls/worker.rb
|
137
|
+
- lib/souls/worker/generate.rb
|
138
|
+
- lib/souls/worker/generate/application.rb
|
139
|
+
- lib/souls/worker/generate/mailer.rb
|
137
140
|
homepage: https://souls.elsoul.nl
|
138
141
|
licenses:
|
139
142
|
- Apache-2.0
|