souls 0.24.1 → 0.24.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.irbrc +1 -0
- data/Gemfile.lock +1 -1
- data/apps/api/.irbrc +3 -0
- data/apps/api/Gemfile +2 -2
- data/apps/api/Gemfile.lock +4 -4
- data/apps/api/app/policies/user_policy.rb +4 -4
- data/apps/api/spec/policies/article_category_policy_spec.rb +8 -9
- data/apps/api/spec/policies/article_policy_spec.rb +6 -7
- data/apps/api/spec/policies/user_policy_spec.rb +21 -2
- data/apps/worker/.irbrc +3 -0
- data/lib/souls.rb +125 -121
- data/lib/souls/gcloud/iam.rb +30 -16
- data/lib/souls/init.rb +0 -15
- data/lib/souls/version.rb +1 -1
- metadata +2 -4
- data/api_v0.0.1.tar.gz +0 -0
- data/souls_api2.tar.gz +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8305b1df5cacb1a4ec1e331666f60fe43fdb4c29b20d29caa2815ed8ae7e18f1
|
4
|
+
data.tar.gz: '08130c02290519c844dac657f9a5b4f3663a13e0931ad96a326e276d9a3e696d'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ff64c773e7b4e7b8050e6626c49ed0a11734e9c6688ddc364899c186b51f60a9e2e2eadb4d85f5be34b86cec3b7a38bdad600425eb02b27075ace03820f809cf
|
7
|
+
data.tar.gz: c527bc6749ad24f8827c4e68459cd5d7c945c156b66fceb224703804d168be3987f58df5988f8ed30d6ee93e704c12b04b034d5e1764356efada87c985395e91
|
data/.irbrc
CHANGED
data/Gemfile.lock
CHANGED
data/apps/api/.irbrc
CHANGED
data/apps/api/Gemfile
CHANGED
@@ -38,12 +38,12 @@ group :development, :test do
|
|
38
38
|
gem "rubocop", "1.18.3"
|
39
39
|
gem "selenium-webdriver", "3.142.7"
|
40
40
|
gem "solargraph", "0.42.4"
|
41
|
-
gem "souls", "0.24.
|
41
|
+
gem "souls", "0.24.1"
|
42
42
|
gem "webmock", "3.13.0"
|
43
43
|
end
|
44
44
|
|
45
45
|
group :development do
|
46
|
-
gem "listen", "3.
|
46
|
+
gem "listen", "3.6.0"
|
47
47
|
gem "rubocop-graphql", "0.9.0"
|
48
48
|
gem "spring", "2.1.1"
|
49
49
|
gem "spring-watcher-listen", "2.0.1"
|
data/apps/api/Gemfile.lock
CHANGED
@@ -176,7 +176,7 @@ GEM
|
|
176
176
|
rexml
|
177
177
|
kramdown-parser-gfm (1.1.0)
|
178
178
|
kramdown (~> 2.0)
|
179
|
-
listen (3.
|
179
|
+
listen (3.6.0)
|
180
180
|
rb-fsevent (~> 0.10, >= 0.10.3)
|
181
181
|
rb-inotify (~> 0.9, >= 0.9.10)
|
182
182
|
loofah (2.10.0)
|
@@ -335,7 +335,7 @@ GEM
|
|
335
335
|
thor (~> 1.0)
|
336
336
|
tilt (~> 2.0)
|
337
337
|
yard (~> 0.9, >= 0.9.24)
|
338
|
-
souls (0.24.
|
338
|
+
souls (0.24.1)
|
339
339
|
paint (= 2.2.1)
|
340
340
|
whirly (= 0.3.0)
|
341
341
|
spring (2.1.1)
|
@@ -381,7 +381,7 @@ DEPENDENCIES
|
|
381
381
|
graphql-batch (= 0.4.3)
|
382
382
|
graphql_playground (= 0.0.1)
|
383
383
|
jwt (= 2.2.3)
|
384
|
-
listen (= 3.
|
384
|
+
listen (= 3.6.0)
|
385
385
|
pg (= 1.2.3)
|
386
386
|
puma (= 5.3.2)
|
387
387
|
pundit (= 2.1.0)
|
@@ -402,7 +402,7 @@ DEPENDENCIES
|
|
402
402
|
sinatra-contrib (= 2.1.0)
|
403
403
|
slack-ruby3 (= 0.1.2)
|
404
404
|
solargraph (= 0.42.4)
|
405
|
-
souls (= 0.24.
|
405
|
+
souls (= 0.24.1)
|
406
406
|
spring (= 2.1.1)
|
407
407
|
spring-watcher-listen (= 2.0.1)
|
408
408
|
webmock (= 3.13.0)
|
@@ -19,6 +19,10 @@ class UserPolicy < ApplicationPolicy
|
|
19
19
|
admin_permissions?
|
20
20
|
end
|
21
21
|
|
22
|
+
def update_user_role?
|
23
|
+
@user.master?
|
24
|
+
end
|
25
|
+
|
22
26
|
private
|
23
27
|
|
24
28
|
def user_permissions?
|
@@ -28,8 +32,4 @@ class UserPolicy < ApplicationPolicy
|
|
28
32
|
def admin_permissions?
|
29
33
|
@user.master? or @user.admin?
|
30
34
|
end
|
31
|
-
|
32
|
-
def update_user_role?
|
33
|
-
@user.master?
|
34
|
-
end
|
35
35
|
end
|
@@ -1,24 +1,23 @@
|
|
1
1
|
describe ArticleCategoryPolicy do
|
2
|
-
subject { described_class.new(user,
|
2
|
+
subject { described_class.new(user, article) }
|
3
3
|
|
4
|
-
let(:
|
4
|
+
let(:article) { FactoryBot.create(:article) }
|
5
5
|
|
6
|
-
context "being a
|
6
|
+
context "being a normal" do
|
7
7
|
let(:user) { FactoryBot.create(:user) }
|
8
8
|
|
9
|
-
it { is_expected.to(
|
10
|
-
it { is_expected.to(permit_action(:show)) }
|
9
|
+
it { is_expected.to(permit_actions(%i[index show])) }
|
11
10
|
it { is_expected.to(forbid_actions(%i[create update delete])) }
|
12
11
|
end
|
13
12
|
|
14
|
-
context "being a
|
15
|
-
let(:user) { FactoryBot.create(:user,
|
13
|
+
context "being a user" do
|
14
|
+
let(:user) { FactoryBot.create(:user, roles: :user) }
|
16
15
|
|
17
16
|
it { is_expected.to(permit_actions(%i[create update])) }
|
18
17
|
end
|
19
18
|
|
20
|
-
context "being an
|
21
|
-
let(:user) { FactoryBot.create(:user,
|
19
|
+
context "being an admin" do
|
20
|
+
let(:user) { FactoryBot.create(:user, roles: :admin) }
|
22
21
|
|
23
22
|
it { is_expected.to(permit_actions(%i[create update delete])) }
|
24
23
|
end
|
@@ -3,22 +3,21 @@ describe ArticlePolicy do
|
|
3
3
|
|
4
4
|
let(:article) { FactoryBot.create(:article) }
|
5
5
|
|
6
|
-
context "being a
|
6
|
+
context "being a normal" do
|
7
7
|
let(:user) { FactoryBot.create(:user) }
|
8
8
|
|
9
|
-
it { is_expected.to(
|
10
|
-
it { is_expected.to(permit_action(:show)) }
|
9
|
+
it { is_expected.to(permit_actions(%i[index show])) }
|
11
10
|
it { is_expected.to(forbid_actions(%i[create update delete])) }
|
12
11
|
end
|
13
12
|
|
14
|
-
context "being a
|
15
|
-
let(:user) { FactoryBot.create(:user,
|
13
|
+
context "being a user" do
|
14
|
+
let(:user) { FactoryBot.create(:user, roles: :user) }
|
16
15
|
|
17
16
|
it { is_expected.to(permit_actions(%i[create update])) }
|
18
17
|
end
|
19
18
|
|
20
|
-
context "being an
|
21
|
-
let(:user) { FactoryBot.create(:user,
|
19
|
+
context "being an admin" do
|
20
|
+
let(:user) { FactoryBot.create(:user, roles: :admin) }
|
22
21
|
|
23
22
|
it { is_expected.to(permit_actions(%i[create update delete])) }
|
24
23
|
end
|
@@ -1,5 +1,24 @@
|
|
1
1
|
describe UserPolicy do
|
2
|
-
subject { described_class.new(user,
|
2
|
+
subject { described_class.new(user, article) }
|
3
3
|
|
4
|
-
let
|
4
|
+
let(:article) { FactoryBot.create(:article) }
|
5
|
+
|
6
|
+
context "being a normal" do
|
7
|
+
let(:user) { FactoryBot.create(:user) }
|
8
|
+
|
9
|
+
it { is_expected.to(permit_actions(%i[index show])) }
|
10
|
+
it { is_expected.to(forbid_actions(%i[create update delete])) }
|
11
|
+
end
|
12
|
+
|
13
|
+
context "being a user" do
|
14
|
+
let(:user) { FactoryBot.create(:user, roles: :user) }
|
15
|
+
|
16
|
+
it { is_expected.to(permit_actions(%i[create update])) }
|
17
|
+
end
|
18
|
+
|
19
|
+
context "being an admin" do
|
20
|
+
let(:user) { FactoryBot.create(:user, roles: :admin) }
|
21
|
+
|
22
|
+
it { is_expected.to(permit_actions(%i[create update delete])) }
|
23
|
+
end
|
5
24
|
end
|
data/apps/worker/.irbrc
CHANGED
data/lib/souls.rb
CHANGED
@@ -28,143 +28,147 @@ module Souls
|
|
28
28
|
class Error < StandardError; end
|
29
29
|
class << self
|
30
30
|
attr_accessor :configuration
|
31
|
-
end
|
32
31
|
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
32
|
+
def run_psql
|
33
|
+
system(
|
34
|
+
"docker run --rm -d \
|
35
|
+
-p 5433:5432 \
|
36
|
+
-v postgres-tmp:/var/lib/postgresql/data \
|
37
|
+
-e POSTGRES_USER=postgres \
|
38
|
+
-e POSTGRES_PASSWORD=postgres \
|
39
|
+
-e POSTGRES_DB=souls_test \
|
40
|
+
postgres:13-alpine"
|
41
|
+
)
|
42
|
+
system("docker ps")
|
43
|
+
end
|
45
44
|
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
45
|
+
def run_mysql
|
46
|
+
system(
|
47
|
+
"docker run --rm -d \
|
48
|
+
-p 3306:3306 \
|
49
|
+
-v mysql-tmp:/var/lib/mysql \
|
50
|
+
-e MYSQL_USER=mysql \
|
51
|
+
-e MYSQL_ROOT_PASSWORD=mysql \
|
52
|
+
-e MYSQL_DB=souls_test \
|
53
|
+
mysql:latest"
|
54
|
+
)
|
55
|
+
system("docker ps")
|
56
|
+
end
|
58
57
|
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
58
|
+
def run_awake(url)
|
59
|
+
app = Souls.configuration.app
|
60
|
+
system(
|
61
|
+
"gcloud scheduler jobs create http #{app}-awake
|
62
|
+
--schedule '0,10,20,30,40,50 * * * *' --uri #{url} --http-method GET"
|
63
|
+
)
|
64
|
+
end
|
66
65
|
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
66
|
+
def gemfile_latest_version
|
67
|
+
file_path = "./Gemfile"
|
68
|
+
updated_gems = []
|
69
|
+
updated_gem_versions = []
|
70
|
+
updated_lines = []
|
71
|
+
from_dev = false
|
72
|
+
File.open(file_path, "r") do |f|
|
73
|
+
f.each_line do |line|
|
74
|
+
from_dev = true if line.include?("group")
|
75
|
+
next unless line.include?("gem ")
|
77
76
|
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
77
|
+
gem = line.gsub("gem ", "").gsub("\"", "").gsub("\n", "").gsub(" ", "").split(",")
|
78
|
+
url = URI("https://rubygems.org/api/v1/versions/#{gem[0]}/latest.json")
|
79
|
+
res = Net::HTTP.get_response(url)
|
80
|
+
data = JSON.parse(res.body)
|
81
|
+
next if Souls.configuration.fixed_gems.include?(gem[0].to_s)
|
82
|
+
next if data["version"].to_s == gem[1].to_s
|
84
83
|
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
84
|
+
updated_lines << if from_dev
|
85
|
+
" gem \"#{gem[0]}\", \"#{data['version']}\""
|
86
|
+
else
|
87
|
+
"gem \"#{gem[0]}\", \"#{data['version']}\""
|
88
|
+
end
|
89
|
+
updated_gems << (gem[0]).to_s
|
90
|
+
updated_gem_versions << data["version"]
|
91
|
+
system("gem update #{gem[0]}")
|
92
|
+
end
|
93
93
|
end
|
94
|
+
{
|
95
|
+
gems: updated_gems,
|
96
|
+
lines: updated_lines,
|
97
|
+
updated_gem_versions: updated_gem_versions
|
98
|
+
}
|
94
99
|
end
|
95
|
-
{
|
96
|
-
gems: updated_gems,
|
97
|
-
lines: updated_lines,
|
98
|
-
updated_gem_versions: updated_gem_versions
|
99
|
-
}
|
100
|
-
end
|
101
100
|
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
101
|
+
def update_gemfile
|
102
|
+
file_path = "./Gemfile"
|
103
|
+
tmp_file = "./tmp/Gemfile"
|
104
|
+
new_gems = gemfile_latest_version
|
105
|
+
logs = []
|
106
|
+
message = Paint["\nAlready Up to date!", :green]
|
107
|
+
return "Already Up to date!" && puts(message) if new_gems[:gems].blank?
|
109
108
|
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
109
|
+
@i = 0
|
110
|
+
File.open(file_path, "r") do |f|
|
111
|
+
File.open(tmp_file, "w") do |new_line|
|
112
|
+
f.each_line do |line|
|
113
|
+
gem = line.gsub("gem ", "").gsub("\"", "").gsub("\n", "").gsub(" ", "").split(",")
|
114
|
+
if new_gems[:gems].include?(gem[0])
|
115
|
+
old_ver = gem[1].split(".")
|
116
|
+
new_ver = new_gems[:updated_gem_versions][@i].split(".")
|
117
|
+
if old_ver[0] < new_ver[0]
|
118
|
+
logs << Paint % [
|
119
|
+
"#{gem[0]} v#{gem[1]} → %{red_text}",
|
120
|
+
:white,
|
121
|
+
{
|
122
|
+
red_text: ["v#{new_gems[:updated_gem_versions][@i]}", :red]
|
123
|
+
}
|
124
|
+
]
|
125
|
+
elsif old_ver[1] < new_ver[1]
|
126
|
+
logs << Paint % [
|
127
|
+
"#{gem[0]} v#{gem[1]} → v#{new_ver[0]}.%{yellow_text}",
|
128
|
+
:white,
|
129
|
+
{
|
130
|
+
yellow_text: ["#{new_ver[1]}.#{new_ver[2]}", :yellow]
|
131
|
+
}
|
132
|
+
]
|
133
|
+
elsif old_ver[2] < new_ver[2]
|
134
|
+
logs << Paint % [
|
135
|
+
"#{gem[0]} v#{gem[1]} → v#{new_ver[0]}.#{new_ver[1]}.%{green_text}",
|
136
|
+
:white,
|
137
|
+
{
|
138
|
+
green_text: [(new_ver[2]).to_s, :green]
|
139
|
+
}
|
140
|
+
]
|
141
|
+
end
|
142
|
+
if gem[0] == "souls"
|
143
|
+
logs << Paint % [
|
144
|
+
"\nSOULs Doc: %{cyan_text}",
|
145
|
+
:white,
|
146
|
+
{ cyan_text: ["https://souls.elsoul.nl\n", :cyan] }
|
147
|
+
]
|
148
|
+
end
|
149
|
+
new_line.write("#{new_gems[:lines][@i]}\n")
|
150
|
+
@i += 1
|
151
|
+
else
|
152
|
+
new_line.write(line)
|
145
153
|
end
|
146
|
-
new_line.write("#{new_gems[:lines][@i]}\n")
|
147
|
-
@i += 1
|
148
|
-
else
|
149
|
-
new_line.write(line)
|
150
154
|
end
|
151
155
|
end
|
152
156
|
end
|
157
|
+
FileUtils.rm("./Gemfile")
|
158
|
+
FileUtils.rm("./Gemfile.lock")
|
159
|
+
FileUtils.mv("./tmp/Gemfile", "./Gemfile")
|
160
|
+
system("bundle update")
|
161
|
+
success = Paint["\n\nSuccessfully Updated These Gems!\n", :green]
|
162
|
+
puts(success)
|
163
|
+
logs.each do |line|
|
164
|
+
puts(line)
|
165
|
+
end
|
153
166
|
end
|
154
|
-
FileUtils.rm("./Gemfile")
|
155
|
-
FileUtils.rm("./Gemfile.lock")
|
156
|
-
FileUtils.mv("./tmp/Gemfile", "./Gemfile")
|
157
|
-
system("bundle update")
|
158
|
-
success = Paint["\n\nSuccessfully Updated These Gems!\n", :green]
|
159
|
-
puts(success)
|
160
|
-
logs.each do |line|
|
161
|
-
puts(line)
|
162
|
-
end
|
163
|
-
end
|
164
167
|
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
+
def configure
|
169
|
+
self.configuration ||= Configuration.new
|
170
|
+
yield(configuration)
|
171
|
+
end
|
168
172
|
end
|
169
173
|
|
170
174
|
class Configuration
|
data/lib/souls/gcloud/iam.rb
CHANGED
@@ -1,31 +1,45 @@
|
|
1
1
|
module Souls
|
2
2
|
module Gcloud
|
3
3
|
class << self
|
4
|
-
def create_service_account(
|
5
|
-
|
6
|
-
|
7
|
-
|
4
|
+
def create_service_account(args)
|
5
|
+
service_account = args[:service_account] || "souls-app"
|
6
|
+
system(
|
7
|
+
"gcloud iam service-accounts create #{service_account} \
|
8
|
+
--description='Souls Service Account' \
|
9
|
+
--display-name=#{service_account}"
|
10
|
+
)
|
8
11
|
end
|
9
12
|
|
10
|
-
def create_service_account_key(
|
11
|
-
|
12
|
-
|
13
|
-
|
13
|
+
def create_service_account_key(args)
|
14
|
+
service_account = args[:service_account] || "souls-app"
|
15
|
+
project_id = args[:project_id] || "souls-app"
|
16
|
+
system(
|
17
|
+
"gcloud iam service-accounts keys create ./config/keyfile.json \
|
18
|
+
--iam-account #{service_account}@#{project_id}.iam.gserviceaccount.com"
|
19
|
+
)
|
14
20
|
end
|
15
21
|
|
16
|
-
def add_service_account_role(
|
17
|
-
|
22
|
+
def add_service_account_role(args)
|
23
|
+
service_account = args[:service_account] || "souls-app"
|
24
|
+
project_id = args[:project_id] || "souls-app"
|
25
|
+
role = args[:role] || "roles/firebase.admin"
|
18
26
|
`gcloud projects add-iam-policy-binding #{project_id} \
|
19
27
|
--member="serviceAccount:#{service_account}@#{project_id}.iam.gserviceaccount.com" \
|
20
28
|
--role="#{role}"`
|
21
29
|
end
|
22
30
|
|
23
|
-
def add_permissions(
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
31
|
+
def add_permissions(args)
|
32
|
+
service_account = args[:service_account] || "souls-app"
|
33
|
+
roles = [
|
34
|
+
"roles/cloudsql.serviceAgent",
|
35
|
+
"roles/containerregistry.ServiceAgent",
|
36
|
+
"roles/pubsub.serviceAgent",
|
37
|
+
"roles/firestore.serviceAgent",
|
38
|
+
"roles/iam.serviceAccountUser"
|
39
|
+
]
|
40
|
+
roles.each do |role|
|
41
|
+
add_service_account_role(service_account: service_account, role: role)
|
42
|
+
end
|
29
43
|
end
|
30
44
|
end
|
31
45
|
end
|
data/lib/souls/init.rb
CHANGED
@@ -9,21 +9,6 @@ module Souls
|
|
9
9
|
data[0]["tag_name"]
|
10
10
|
end
|
11
11
|
|
12
|
-
def self.initial_config_init(app_name: "souls", strain: "api")
|
13
|
-
FileUtils.touch("./#{app_name}/config/souls.rb")
|
14
|
-
file_path = "./#{app_name}/config/souls.rb"
|
15
|
-
File.open(file_path, "w") do |f|
|
16
|
-
f.write(<<~TEXT)
|
17
|
-
Souls.configure do |config|
|
18
|
-
config.app = "#{app_name}"
|
19
|
-
config.strain = "#{strain}"
|
20
|
-
end
|
21
|
-
TEXT
|
22
|
-
end
|
23
|
-
rescue StandardError => e
|
24
|
-
puts(e)
|
25
|
-
end
|
26
|
-
|
27
12
|
def self.download_souls(app_name: "souls", repository_name: "souls_api ")
|
28
13
|
version = get_version(repository_name: repository_name)
|
29
14
|
system("curl -OL https://github.com/elsoul/#{repository_name}/archive/#{version}.tar.gz")
|
data/lib/souls/version.rb
CHANGED
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.24.
|
4
|
+
version: 0.24.2
|
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-07-
|
13
|
+
date: 2021-07-21 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: paint
|
@@ -66,7 +66,6 @@ files:
|
|
66
66
|
- README.md
|
67
67
|
- Rakefile
|
68
68
|
- Steepfile
|
69
|
-
- api_v0.0.1.tar.gz
|
70
69
|
- apps/api/.env.sample
|
71
70
|
- apps/api/.gitignore
|
72
71
|
- apps/api/.irbrc
|
@@ -270,7 +269,6 @@ files:
|
|
270
269
|
- lib/souls/version.rb
|
271
270
|
- rbs/init.rbs
|
272
271
|
- souls.gemspec
|
273
|
-
- souls_api2.tar.gz
|
274
272
|
homepage: https://souls.elsoul.nl
|
275
273
|
licenses:
|
276
274
|
- Apache-2.0
|
data/api_v0.0.1.tar.gz
DELETED
Binary file
|
data/souls_api2.tar.gz
DELETED
Binary file
|