rubypitaya 3.10.0 → 3.12.0
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 +4 -4
- data/lib/rubypitaya/app-template/Gemfile +1 -1
- data/lib/rubypitaya/app-template/Gemfile.lock +2 -6
- data/lib/rubypitaya/app-template/Makefile +1 -1
- data/lib/rubypitaya/app-template/app/app_initializer.rb +3 -6
- data/lib/rubypitaya/app-template/app/handlers/player_handler.rb +3 -4
- data/lib/rubypitaya/app-template/app/migrations/1606736477_create_player_migration.rb +1 -1
- data/lib/rubypitaya/app-template/app/setup/rubypitaya.yml +0 -6
- data/lib/rubypitaya/app-template/docker/dev/Dockerfile +1 -1
- data/lib/rubypitaya/app-template/docker/prod/Dockerfile +6 -6
- data/lib/rubypitaya/app-template/docker-compose.yml +0 -24
- data/lib/rubypitaya/app-template/features/hello_world.feature +8 -8
- data/lib/rubypitaya/app-template/features/player.feature +27 -10
- data/lib/rubypitaya/app-template/features/step_definitions/{application_steps.rb → player_steps.rb} +6 -6
- data/lib/rubypitaya/app-template/features/step_definitions/rubypitaya_steps.rb +45 -35
- data/lib/rubypitaya/core/app/migrations/0000000001_create_user_migration.rb +1 -1
- data/lib/rubypitaya/core/app/services/redis_service.rb +4 -4
- data/lib/rubypitaya/core/http_routes.rb +0 -1
- data/lib/rubypitaya/core/main.rb +0 -3
- data/lib/rubypitaya/core/service_base.rb +13 -4
- data/lib/rubypitaya/version.rb +1 -1
- data/lib/rubypitaya.rb +4 -2
- metadata +30 -45
- data/lib/rubypitaya/core/app/services/mongo_service.rb +0 -35
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 6dc13fa821fa9f933f0cb1f5e9b249d7a7f1901ab78f158a0ad1d6bd9d3ad21c
|
|
4
|
+
data.tar.gz: 92cd7c6bfec0a54a1d1d502bf2cbafa2e4a23b022e01bb569bda01f746f0ac8c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e5c1aa2141075b6bbe4785b02f026765c287098a08b6d108a27a73f91db41511edc5cd1cd3e5e82a0a3aa10b8efe45eea4eed1e8a5cb9e7a010e726da9645960
|
|
7
|
+
data.tar.gz: 9018428be3b99436e7d22cdd51642ba52c7c5b9ef0c3c5a91c5f442a6c3f8d85e3827d333235ce81dfe4382486ea91afad786332e47cea2b56e193a0b6c06ee4
|
|
@@ -11,7 +11,6 @@ GEM
|
|
|
11
11
|
i18n (>= 1.6, < 2)
|
|
12
12
|
minitest (>= 5.1)
|
|
13
13
|
tzinfo (~> 2.0)
|
|
14
|
-
bson (4.14.1)
|
|
15
14
|
builder (3.2.4)
|
|
16
15
|
coderay (1.1.3)
|
|
17
16
|
concurrent-ruby (1.1.9)
|
|
@@ -65,8 +64,6 @@ GEM
|
|
|
65
64
|
mime-types-data (~> 3.2015)
|
|
66
65
|
mime-types-data (3.2022.0105)
|
|
67
66
|
minitest (5.15.0)
|
|
68
|
-
mongo (2.17.0)
|
|
69
|
-
bson (>= 4.8.2, < 5.0.0)
|
|
70
67
|
multi_json (1.15.0)
|
|
71
68
|
multi_test (0.1.2)
|
|
72
69
|
mustermann (1.1.1)
|
|
@@ -99,11 +96,10 @@ GEM
|
|
|
99
96
|
rspec-support (~> 3.11.0)
|
|
100
97
|
rspec-support (3.11.0)
|
|
101
98
|
ruby2_keywords (0.0.5)
|
|
102
|
-
rubypitaya (3.
|
|
99
|
+
rubypitaya (3.11.0)
|
|
103
100
|
activerecord (= 7.0.2)
|
|
104
101
|
etcdv3 (= 0.11.5)
|
|
105
102
|
google-protobuf (= 3.19.4)
|
|
106
|
-
mongo (= 2.17.0)
|
|
107
103
|
nats-pure (= 2.0.0)
|
|
108
104
|
ostruct (= 0.5.3)
|
|
109
105
|
pg (= 1.3.1)
|
|
@@ -138,7 +134,7 @@ DEPENDENCIES
|
|
|
138
134
|
listen (= 3.7.1)
|
|
139
135
|
pry (= 0.14.1)
|
|
140
136
|
rspec (= 3.11.0)
|
|
141
|
-
rubypitaya (= 3.
|
|
137
|
+
rubypitaya (= 3.12.0)
|
|
142
138
|
sinatra-contrib (= 2.1.0)
|
|
143
139
|
|
|
144
140
|
BUNDLED WITH
|
|
@@ -52,7 +52,7 @@ setup-test: clear
|
|
|
52
52
|
## Update gems dependencies on Gemfile.lock
|
|
53
53
|
update-dependencies:
|
|
54
54
|
@rm -f Gemfile.lock
|
|
55
|
-
@docker run --rm -v "$(PWD)":/usr/src/app -w /usr/src/app ruby:3.
|
|
55
|
+
@docker run --rm -v "$(PWD)":/usr/src/app -w /usr/src/app ruby:3.1.3 bundle install
|
|
56
56
|
|
|
57
57
|
## + Improve metagame
|
|
58
58
|
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
require 'rubypitaya/core/app/services/mongo_service'
|
|
2
1
|
require 'rubypitaya/core/app/services/redis_service'
|
|
3
2
|
|
|
4
3
|
class AppInitializer < RubyPitaya::InitializerBase
|
|
@@ -30,17 +29,15 @@ class AppInitializer < RubyPitaya::InitializerBase
|
|
|
30
29
|
#
|
|
31
30
|
# services:
|
|
32
31
|
# - redis
|
|
33
|
-
# - link:
|
|
32
|
+
# - link:
|
|
33
|
+
# - https://github.com/redis/redis-rb/
|
|
34
|
+
# - https://gitlab.com/LucianoPC/ruby-pitaya/-/blob/master/lib/rubypitaya/core/app/services/redis_service.rb
|
|
34
35
|
#
|
|
35
|
-
# - mongo
|
|
36
|
-
# - class: Mongo::Client
|
|
37
|
-
# - link: https://docs.mongodb.com/ruby-driver/current/tutorials/quick-start/
|
|
38
36
|
|
|
39
37
|
def run(initializer_content)
|
|
40
38
|
setup = initializer_content.setup
|
|
41
39
|
services = initializer_content.services
|
|
42
40
|
|
|
43
|
-
services.add(:mongo, RubyPitaya::MongoService.new(setup))
|
|
44
41
|
services.add(:redis, RubyPitaya::RedisService.new(setup))
|
|
45
42
|
|
|
46
43
|
playerBll = PlayerBLL.new
|
|
@@ -40,11 +40,10 @@ class PlayerHandler < RubyPitaya::HandlerBase
|
|
|
40
40
|
#
|
|
41
41
|
# - @services:
|
|
42
42
|
# - redis
|
|
43
|
-
# - link:
|
|
43
|
+
# - link:
|
|
44
|
+
# - https://github.com/redis/redis-rb/
|
|
45
|
+
# - https://gitlab.com/LucianoPC/ruby-pitaya/-/blob/master/lib/rubypitaya/core/app/services/redis_service.rb
|
|
44
46
|
#
|
|
45
|
-
# - mongo
|
|
46
|
-
# - class: Mongo::Client
|
|
47
|
-
# - link: https://docs.mongodb.com/ruby-driver/current/tutorials/quick-start/
|
|
48
47
|
|
|
49
48
|
non_authenticated_actions :authenticate
|
|
50
49
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
FROM ruby:3.
|
|
1
|
+
FROM ruby:3.1.3-slim as builder
|
|
2
2
|
|
|
3
|
-
RUN apt update && \
|
|
4
|
-
apt install -y --no-install-recommends \
|
|
3
|
+
RUN apt update && \
|
|
4
|
+
apt install -y --no-install-recommends \
|
|
5
5
|
curl \
|
|
6
6
|
libpq-dev \
|
|
7
7
|
build-essential \
|
|
@@ -28,13 +28,13 @@ RUN rm -rf /usr/local/bundle/cache && \
|
|
|
28
28
|
|
|
29
29
|
# RUN curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
|
|
30
30
|
|
|
31
|
-
FROM ruby:3.
|
|
31
|
+
FROM ruby:3.1.3-slim
|
|
32
32
|
|
|
33
33
|
ENV LANG=C.UTF-8
|
|
34
34
|
ENV LC_ALL=C.UTF-8
|
|
35
35
|
|
|
36
|
-
RUN apt update && \
|
|
37
|
-
apt install -y --no-install-recommends \
|
|
36
|
+
RUN apt update && \
|
|
37
|
+
apt install -y --no-install-recommends \
|
|
38
38
|
netcat \
|
|
39
39
|
libpq5 \
|
|
40
40
|
&& rm -rf /var/lib/apt/lists/*
|
|
@@ -26,28 +26,6 @@ services:
|
|
|
26
26
|
ports:
|
|
27
27
|
- '9100:5432'
|
|
28
28
|
|
|
29
|
-
mongo:
|
|
30
|
-
image: mongo:5.0.3
|
|
31
|
-
restart: always
|
|
32
|
-
ports:
|
|
33
|
-
- 27017:27017
|
|
34
|
-
environment:
|
|
35
|
-
MONGO_INITDB_ROOT_USERNAME: user
|
|
36
|
-
MONGO_INITDB_ROOT_PASSWORD: password
|
|
37
|
-
|
|
38
|
-
mongo-express:
|
|
39
|
-
depends_on:
|
|
40
|
-
- 'mongo'
|
|
41
|
-
image: mongo-express:0.54.0
|
|
42
|
-
restart: always
|
|
43
|
-
ports:
|
|
44
|
-
- 8081:8081
|
|
45
|
-
environment:
|
|
46
|
-
ME_CONFIG_MONGODB_ADMINUSERNAME: user
|
|
47
|
-
ME_CONFIG_MONGODB_ADMINPASSWORD: password
|
|
48
|
-
ME_CONFIG_MONGODB_SERVER: 'mongo'
|
|
49
|
-
ME_CONFIG_MONGODB_PORT: '27017'
|
|
50
|
-
|
|
51
29
|
connector:
|
|
52
30
|
image: 'registry.gitlab.com/lucianopc/pitaya-connector:0.1.0'
|
|
53
31
|
depends_on:
|
|
@@ -71,8 +49,6 @@ services:
|
|
|
71
49
|
- 'nats'
|
|
72
50
|
- 'etcd'
|
|
73
51
|
- 'redis'
|
|
74
|
-
- 'mongo'
|
|
75
|
-
- 'mongo-express'
|
|
76
52
|
- 'connector'
|
|
77
53
|
build:
|
|
78
54
|
context: '.'
|
|
@@ -3,25 +3,25 @@ Feature: Hello World
|
|
|
3
3
|
As a developer I want to see the hello world messages
|
|
4
4
|
|
|
5
5
|
Scenario: Hello World message
|
|
6
|
-
Given client
|
|
7
|
-
Then server
|
|
8
|
-
And server
|
|
6
|
+
Given the client calls the route 'rubypitaya.helloWorldHandler.sayHello'
|
|
7
|
+
Then the server response 'code' should be 'RP-200'
|
|
8
|
+
And the server response 'data.message' should be 'Hello!'
|
|
9
9
|
|
|
10
10
|
Scenario: Custom message
|
|
11
|
-
|
|
11
|
+
Given the client calls the route 'rubypitaya.helloWorldHandler.showMessage' with params
|
|
12
12
|
| message |
|
|
13
13
|
| Hello World! |
|
|
14
|
-
Then server
|
|
15
|
-
And server
|
|
14
|
+
Then the server response 'code' should be 'RP-200'
|
|
15
|
+
And the server response 'data.message' should be 'Hello World!'
|
|
16
16
|
|
|
17
17
|
Scenario: Custom message with json
|
|
18
|
-
|
|
18
|
+
Given the client calls the route 'rubypitaya.helloWorldHandler.showMessage' with json
|
|
19
19
|
"""
|
|
20
20
|
{
|
|
21
21
|
"message": "Hello World!"
|
|
22
22
|
}
|
|
23
23
|
"""
|
|
24
|
-
Then server should
|
|
24
|
+
Then the server response should be the following json
|
|
25
25
|
"""
|
|
26
26
|
{
|
|
27
27
|
"code": "RP-200",
|
|
@@ -3,20 +3,20 @@ Feature: Player
|
|
|
3
3
|
As a game player I want to have a player on database
|
|
4
4
|
|
|
5
5
|
Scenario: Create new player
|
|
6
|
-
Given config key 'initial_player.wallet.gold' is '10'
|
|
7
|
-
And config key 'initial_player.name' is 'Guest'
|
|
8
|
-
When client
|
|
9
|
-
Then server
|
|
10
|
-
And server
|
|
11
|
-
And server
|
|
6
|
+
Given the config key 'initial_player.wallet.gold' is '10'
|
|
7
|
+
And the config key 'initial_player.name' is 'Guest'
|
|
8
|
+
When the client calls the route 'rubypitaya.playerHandler.authenticate'
|
|
9
|
+
Then the server response 'code' should be 'RP-200'
|
|
10
|
+
And the server response 'data.name' should be 'Guest'
|
|
11
|
+
And the server response 'data.gold' should be '10'
|
|
12
12
|
|
|
13
13
|
Scenario: Get player info
|
|
14
|
-
Given the following
|
|
14
|
+
Given the following Player
|
|
15
15
|
| name | gold | user_id |
|
|
16
16
|
| Someone | 15 | 00000000-0000-0000-0000-000000000001 |
|
|
17
|
-
And the
|
|
18
|
-
When client
|
|
19
|
-
Then server should
|
|
17
|
+
And the Player 'Someone' is authenticated
|
|
18
|
+
When the client calls the route 'rubypitaya.playerHandler.getInfo'
|
|
19
|
+
Then the server response should be the following json
|
|
20
20
|
"""
|
|
21
21
|
{
|
|
22
22
|
"code": "RP-200",
|
|
@@ -27,3 +27,20 @@ Feature: Player
|
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
29
|
"""
|
|
30
|
+
And the server response 'data' should be the following json
|
|
31
|
+
"""
|
|
32
|
+
{
|
|
33
|
+
"name": "Someone",
|
|
34
|
+
"gold": 15,
|
|
35
|
+
"userId": "00000000-0000-0000-0000-000000000001"
|
|
36
|
+
}
|
|
37
|
+
"""
|
|
38
|
+
And the server response should contains the following json
|
|
39
|
+
"""
|
|
40
|
+
{
|
|
41
|
+
"data": {
|
|
42
|
+
"gold": 15,
|
|
43
|
+
"userId": "00000000-0000-0000-0000-000000000001"
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
"""
|
data/lib/rubypitaya/app-template/features/step_definitions/{application_steps.rb → player_steps.rb}
RENAMED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
Given(/^
|
|
2
|
-
player = Player.find_by_name(player_name)
|
|
3
|
-
@app_helper.authenticate(player.user_id)
|
|
4
|
-
end
|
|
5
|
-
|
|
6
|
-
Given(/^[Tt]he following [Pp]layer[s]*[:]*$/) do |table|
|
|
1
|
+
Given(/^the following Player[s]?$/) do |table|
|
|
7
2
|
player_hashes = table.hashes
|
|
8
3
|
player_hashes.each do |player_hash|
|
|
9
4
|
player_hash[:user] = User.new(id: player_hash[:user_id])
|
|
10
5
|
Player.create(player_hash)
|
|
11
6
|
end
|
|
12
7
|
end
|
|
8
|
+
|
|
9
|
+
Given(/^the Player ["'](.+)["'] is authenticated$/) do |player_name|
|
|
10
|
+
player = Player.find_by_name(player_name)
|
|
11
|
+
@app_helper.authenticate(player.user_id)
|
|
12
|
+
end
|
|
@@ -1,63 +1,73 @@
|
|
|
1
|
-
Given(/^
|
|
2
|
-
|
|
1
|
+
Given(/^the following User[s]?$/) do |table|
|
|
2
|
+
table.hashes.each do |table_hash|
|
|
3
|
+
User.create(id: table_hash[:user_id])
|
|
4
|
+
end
|
|
3
5
|
end
|
|
4
6
|
|
|
5
|
-
Given(/^
|
|
6
|
-
|
|
7
|
-
@app_helper.request(route, params)
|
|
7
|
+
Given(/^the User ["'](.+)["'] is authenticated$/) do |user_id|
|
|
8
|
+
@app_helper.authenticate(user_id)
|
|
8
9
|
end
|
|
9
10
|
|
|
10
|
-
Given(/^
|
|
11
|
-
|
|
12
|
-
@app_helper.request(route, params)
|
|
11
|
+
Given(/^the setup key ["'](.+)["'] is ["'](.+)["']$/) do |key, value|
|
|
12
|
+
@app_helper.add_setup(key, value)
|
|
13
13
|
end
|
|
14
14
|
|
|
15
|
-
Given(/^
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
expect(response_value.to_s).to eq(expected_value)
|
|
15
|
+
Given(/^the config key ["'](.+)["'] is ["'](.+)["']$/) do |key, value|
|
|
16
|
+
@app_helper.add_config(key, value)
|
|
19
17
|
end
|
|
20
18
|
|
|
21
|
-
Given(/^
|
|
22
|
-
|
|
23
|
-
|
|
19
|
+
Given(/^the config is the following json*$/) do |config_json|
|
|
20
|
+
config = JSON.parse(config_json)
|
|
21
|
+
@app_helper.set_config(config)
|
|
22
|
+
end
|
|
24
23
|
|
|
25
|
-
|
|
24
|
+
Given(/^(?:now\s)?today is ["'](.+)["']$/) do |date_text|
|
|
25
|
+
time_now = date_text.to_time
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
Time.stub(:now).and_return(time_now)
|
|
28
28
|
end
|
|
29
29
|
|
|
30
|
-
|
|
31
|
-
@app_helper.
|
|
30
|
+
When(/^the client calls the route ["'](.+)["']$/) do |route|
|
|
31
|
+
@app_helper.request(route)
|
|
32
32
|
end
|
|
33
33
|
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
When(/^the client calls the route ["'](.+)["'] with params$/) do |route, table|
|
|
35
|
+
params = table.hashes.first.symbolize_keys
|
|
36
|
+
@app_helper.request(route, params)
|
|
36
37
|
end
|
|
37
38
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
@app_helper.
|
|
39
|
+
When(/^the client calls the route ["'](.+)["'] with json$/) do |route, json|
|
|
40
|
+
params = JSON.parse(json, symbolize_names: true)
|
|
41
|
+
@app_helper.request(route, params)
|
|
41
42
|
end
|
|
42
43
|
|
|
43
|
-
|
|
44
|
-
|
|
44
|
+
Then(/^the server response ["'](.+)["'] should be ["'](.+)["']$/) do |response_key, expected_value|
|
|
45
|
+
response_value = @app_helper.response.dig(*response_key.split('.').map(&:to_sym))
|
|
46
|
+
|
|
47
|
+
expect(response_value.to_s).to eq(expected_value)
|
|
45
48
|
end
|
|
46
49
|
|
|
47
|
-
|
|
48
|
-
|
|
50
|
+
Then(/^the server response(?: ["'](.+)["'])? should be the following json$/) do |response_key, expected_json_text|
|
|
51
|
+
response_json = @app_helper.response
|
|
52
|
+
response_json = @app_helper.response.dig(*response_key.split('.').map(&:to_sym)) unless response_key.blank?
|
|
49
53
|
|
|
50
|
-
|
|
54
|
+
expected_json = JSON.parse(expected_json_text.strip, symbolize_names: true)
|
|
55
|
+
|
|
56
|
+
expect(response_json).to eq(expected_json)
|
|
51
57
|
end
|
|
52
58
|
|
|
53
|
-
|
|
54
|
-
@app_helper.
|
|
59
|
+
Then(/^the server response(?: ["'](.+)["'])? should contains the following json[:]?$/) do |response_key, expected_json_text|
|
|
60
|
+
response_json = @app_helper.response
|
|
61
|
+
response_json = @app_helper.response.dig(*response_key.split('.').map(&:to_sym)) unless response_key.blank?
|
|
62
|
+
|
|
63
|
+
expected_json = JSON.parse(expected_json_text.strip, symbolize_names: true)
|
|
64
|
+
expected_json = response_json.deep_merge(expected_json)
|
|
65
|
+
|
|
66
|
+
expect(response_json).to eq(expected_json)
|
|
55
67
|
end
|
|
56
68
|
|
|
57
|
-
Given(/^
|
|
58
|
-
|
|
59
|
-
User.create(id: table_hash[:user_id])
|
|
60
|
-
end
|
|
69
|
+
Given(/^print server response$/) do
|
|
70
|
+
puts JSON.pretty_generate(@app_helper.response)
|
|
61
71
|
end
|
|
62
72
|
|
|
63
73
|
Before do
|
|
@@ -13,9 +13,7 @@ module RubyPitaya
|
|
|
13
13
|
def connect
|
|
14
14
|
@redis = Redis.new(
|
|
15
15
|
url: @redis_address,
|
|
16
|
-
:reconnect_attempts => 10,
|
|
17
|
-
:reconnect_delay => 1.5,
|
|
18
|
-
:reconnect_delay_max => 2.0,
|
|
16
|
+
:reconnect_attempts => [1.5]*10,
|
|
19
17
|
)
|
|
20
18
|
|
|
21
19
|
@redis.ping
|
|
@@ -29,7 +27,9 @@ module RubyPitaya
|
|
|
29
27
|
@redis
|
|
30
28
|
end
|
|
31
29
|
|
|
32
|
-
|
|
30
|
+
protected
|
|
31
|
+
|
|
32
|
+
def on_clear_all_data
|
|
33
33
|
@redis.flushall
|
|
34
34
|
end
|
|
35
35
|
end
|
data/lib/rubypitaya/core/main.rb
CHANGED
|
@@ -72,8 +72,6 @@ module RubyPitaya
|
|
|
72
72
|
|
|
73
73
|
@services = ServiceHolder.new
|
|
74
74
|
|
|
75
|
-
@objects = InstanceHolder.new
|
|
76
|
-
|
|
77
75
|
@initializer_content = InitializerContent.new(@log,
|
|
78
76
|
@services,
|
|
79
77
|
@setup,
|
|
@@ -104,7 +102,6 @@ module RubyPitaya
|
|
|
104
102
|
HttpRoutes.set :services, @services
|
|
105
103
|
HttpRoutes.set :setup, @setup
|
|
106
104
|
HttpRoutes.set :config, @config
|
|
107
|
-
HttpRoutes.set :objects, @objects
|
|
108
105
|
HttpRoutes.set :views, [Path::HTTP_VIEWS_FOLDER_PATH] + Path::Plugins::HTTP_VIEWS_FOLDER_PATHS
|
|
109
106
|
|
|
110
107
|
HttpRoutes.auto_reload if @is_development_environment
|
|
@@ -10,12 +10,21 @@ module RubyPitaya
|
|
|
10
10
|
raise "Service disconnect method not implemented"
|
|
11
11
|
end
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
def client
|
|
14
|
+
raise "Service client method not implemented"
|
|
15
|
+
end
|
|
16
16
|
|
|
17
17
|
def clear_all_data
|
|
18
|
-
|
|
18
|
+
environment_name = ENV.fetch('RUBYPITAYA_SERVER_ENVIRONMENT', 'development')
|
|
19
|
+
is_test_environment = environment_name == 'test'
|
|
20
|
+
|
|
21
|
+
on_clear_all_data if is_test_environment
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
protected
|
|
25
|
+
|
|
26
|
+
def on_clear_all_data
|
|
27
|
+
raise "Service on_clear_all_data method not implemented"
|
|
19
28
|
end
|
|
20
29
|
end
|
|
21
30
|
end
|
data/lib/rubypitaya/version.rb
CHANGED
data/lib/rubypitaya.rb
CHANGED
|
@@ -57,8 +57,10 @@ module RubyPitaya
|
|
|
57
57
|
|
|
58
58
|
Dir.entries(plugin_folder_path).each do |entry|
|
|
59
59
|
entry_path = File.join(plugin_folder_path, entry)
|
|
60
|
-
FileUtils.rm_rf(entry_path) unless entry == 'app'
|
|
61
|
-
entry == '
|
|
60
|
+
FileUtils.rm_rf(entry_path) unless entry == 'app' ||
|
|
61
|
+
entry == 'spec' ||
|
|
62
|
+
entry == 'features' ||
|
|
63
|
+
entry == '.' ||
|
|
62
64
|
entry == '..'
|
|
63
65
|
end
|
|
64
66
|
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rubypitaya
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 3.
|
|
4
|
+
version: 3.12.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Luciano Prestes Cavalcanti
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2023-01-15 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: pg
|
|
@@ -16,14 +16,14 @@ dependencies:
|
|
|
16
16
|
requirements:
|
|
17
17
|
- - '='
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: 1.
|
|
19
|
+
version: 1.4.5
|
|
20
20
|
type: :runtime
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
24
|
- - '='
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: 1.
|
|
26
|
+
version: 1.4.5
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: rake
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -38,34 +38,20 @@ dependencies:
|
|
|
38
38
|
- - '='
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
40
|
version: 13.0.6
|
|
41
|
-
- !ruby/object:Gem::Dependency
|
|
42
|
-
name: mongo
|
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
|
44
|
-
requirements:
|
|
45
|
-
- - '='
|
|
46
|
-
- !ruby/object:Gem::Version
|
|
47
|
-
version: 2.17.0
|
|
48
|
-
type: :runtime
|
|
49
|
-
prerelease: false
|
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
-
requirements:
|
|
52
|
-
- - '='
|
|
53
|
-
- !ruby/object:Gem::Version
|
|
54
|
-
version: 2.17.0
|
|
55
41
|
- !ruby/object:Gem::Dependency
|
|
56
42
|
name: redis
|
|
57
43
|
requirement: !ruby/object:Gem::Requirement
|
|
58
44
|
requirements:
|
|
59
45
|
- - '='
|
|
60
46
|
- !ruby/object:Gem::Version
|
|
61
|
-
version:
|
|
47
|
+
version: 5.0.5
|
|
62
48
|
type: :runtime
|
|
63
49
|
prerelease: false
|
|
64
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
51
|
requirements:
|
|
66
52
|
- - '='
|
|
67
53
|
- !ruby/object:Gem::Version
|
|
68
|
-
version:
|
|
54
|
+
version: 5.0.5
|
|
69
55
|
- !ruby/object:Gem::Dependency
|
|
70
56
|
name: etcdv3
|
|
71
57
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -86,28 +72,28 @@ dependencies:
|
|
|
86
72
|
requirements:
|
|
87
73
|
- - '='
|
|
88
74
|
- !ruby/object:Gem::Version
|
|
89
|
-
version: 0.5.
|
|
75
|
+
version: 0.5.5
|
|
90
76
|
type: :runtime
|
|
91
77
|
prerelease: false
|
|
92
78
|
version_requirements: !ruby/object:Gem::Requirement
|
|
93
79
|
requirements:
|
|
94
80
|
- - '='
|
|
95
81
|
- !ruby/object:Gem::Version
|
|
96
|
-
version: 0.5.
|
|
82
|
+
version: 0.5.5
|
|
97
83
|
- !ruby/object:Gem::Dependency
|
|
98
84
|
name: sinatra
|
|
99
85
|
requirement: !ruby/object:Gem::Requirement
|
|
100
86
|
requirements:
|
|
101
87
|
- - '='
|
|
102
88
|
- !ruby/object:Gem::Version
|
|
103
|
-
version:
|
|
89
|
+
version: 3.0.5
|
|
104
90
|
type: :runtime
|
|
105
91
|
prerelease: false
|
|
106
92
|
version_requirements: !ruby/object:Gem::Requirement
|
|
107
93
|
requirements:
|
|
108
94
|
- - '='
|
|
109
95
|
- !ruby/object:Gem::Version
|
|
110
|
-
version:
|
|
96
|
+
version: 3.0.5
|
|
111
97
|
- !ruby/object:Gem::Dependency
|
|
112
98
|
name: webrick
|
|
113
99
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -128,126 +114,126 @@ dependencies:
|
|
|
128
114
|
requirements:
|
|
129
115
|
- - '='
|
|
130
116
|
- !ruby/object:Gem::Version
|
|
131
|
-
version: 2.
|
|
117
|
+
version: 2.2.1
|
|
132
118
|
type: :runtime
|
|
133
119
|
prerelease: false
|
|
134
120
|
version_requirements: !ruby/object:Gem::Requirement
|
|
135
121
|
requirements:
|
|
136
122
|
- - '='
|
|
137
123
|
- !ruby/object:Gem::Version
|
|
138
|
-
version: 2.
|
|
124
|
+
version: 2.2.1
|
|
139
125
|
- !ruby/object:Gem::Dependency
|
|
140
126
|
name: activerecord
|
|
141
127
|
requirement: !ruby/object:Gem::Requirement
|
|
142
128
|
requirements:
|
|
143
129
|
- - '='
|
|
144
130
|
- !ruby/object:Gem::Version
|
|
145
|
-
version: 7.0.
|
|
131
|
+
version: 7.0.4
|
|
146
132
|
type: :runtime
|
|
147
133
|
prerelease: false
|
|
148
134
|
version_requirements: !ruby/object:Gem::Requirement
|
|
149
135
|
requirements:
|
|
150
136
|
- - '='
|
|
151
137
|
- !ruby/object:Gem::Version
|
|
152
|
-
version: 7.0.
|
|
138
|
+
version: 7.0.4
|
|
153
139
|
- !ruby/object:Gem::Dependency
|
|
154
140
|
name: google-protobuf
|
|
155
141
|
requirement: !ruby/object:Gem::Requirement
|
|
156
142
|
requirements:
|
|
157
143
|
- - '='
|
|
158
144
|
- !ruby/object:Gem::Version
|
|
159
|
-
version: 3.
|
|
145
|
+
version: 3.21.12
|
|
160
146
|
type: :runtime
|
|
161
147
|
prerelease: false
|
|
162
148
|
version_requirements: !ruby/object:Gem::Requirement
|
|
163
149
|
requirements:
|
|
164
150
|
- - '='
|
|
165
151
|
- !ruby/object:Gem::Version
|
|
166
|
-
version: 3.
|
|
152
|
+
version: 3.21.12
|
|
167
153
|
- !ruby/object:Gem::Dependency
|
|
168
154
|
name: pry
|
|
169
155
|
requirement: !ruby/object:Gem::Requirement
|
|
170
156
|
requirements:
|
|
171
157
|
- - '='
|
|
172
158
|
- !ruby/object:Gem::Version
|
|
173
|
-
version: 0.14.
|
|
159
|
+
version: 0.14.2
|
|
174
160
|
type: :development
|
|
175
161
|
prerelease: false
|
|
176
162
|
version_requirements: !ruby/object:Gem::Requirement
|
|
177
163
|
requirements:
|
|
178
164
|
- - '='
|
|
179
165
|
- !ruby/object:Gem::Version
|
|
180
|
-
version: 0.14.
|
|
166
|
+
version: 0.14.2
|
|
181
167
|
- !ruby/object:Gem::Dependency
|
|
182
168
|
name: rspec
|
|
183
169
|
requirement: !ruby/object:Gem::Requirement
|
|
184
170
|
requirements:
|
|
185
171
|
- - '='
|
|
186
172
|
- !ruby/object:Gem::Version
|
|
187
|
-
version: 3.
|
|
173
|
+
version: 3.12.0
|
|
188
174
|
type: :development
|
|
189
175
|
prerelease: false
|
|
190
176
|
version_requirements: !ruby/object:Gem::Requirement
|
|
191
177
|
requirements:
|
|
192
178
|
- - '='
|
|
193
179
|
- !ruby/object:Gem::Version
|
|
194
|
-
version: 3.
|
|
180
|
+
version: 3.12.0
|
|
195
181
|
- !ruby/object:Gem::Dependency
|
|
196
182
|
name: listen
|
|
197
183
|
requirement: !ruby/object:Gem::Requirement
|
|
198
184
|
requirements:
|
|
199
185
|
- - '='
|
|
200
186
|
- !ruby/object:Gem::Version
|
|
201
|
-
version: 3.
|
|
187
|
+
version: 3.8.0
|
|
202
188
|
type: :development
|
|
203
189
|
prerelease: false
|
|
204
190
|
version_requirements: !ruby/object:Gem::Requirement
|
|
205
191
|
requirements:
|
|
206
192
|
- - '='
|
|
207
193
|
- !ruby/object:Gem::Version
|
|
208
|
-
version: 3.
|
|
194
|
+
version: 3.8.0
|
|
209
195
|
- !ruby/object:Gem::Dependency
|
|
210
196
|
name: bundler
|
|
211
197
|
requirement: !ruby/object:Gem::Requirement
|
|
212
198
|
requirements:
|
|
213
199
|
- - '='
|
|
214
200
|
- !ruby/object:Gem::Version
|
|
215
|
-
version: 2.
|
|
201
|
+
version: 2.3.26
|
|
216
202
|
type: :development
|
|
217
203
|
prerelease: false
|
|
218
204
|
version_requirements: !ruby/object:Gem::Requirement
|
|
219
205
|
requirements:
|
|
220
206
|
- - '='
|
|
221
207
|
- !ruby/object:Gem::Version
|
|
222
|
-
version: 2.
|
|
208
|
+
version: 2.3.26
|
|
223
209
|
- !ruby/object:Gem::Dependency
|
|
224
210
|
name: cucumber
|
|
225
211
|
requirement: !ruby/object:Gem::Requirement
|
|
226
212
|
requirements:
|
|
227
213
|
- - '='
|
|
228
214
|
- !ruby/object:Gem::Version
|
|
229
|
-
version:
|
|
215
|
+
version: 8.0.0
|
|
230
216
|
type: :development
|
|
231
217
|
prerelease: false
|
|
232
218
|
version_requirements: !ruby/object:Gem::Requirement
|
|
233
219
|
requirements:
|
|
234
220
|
- - '='
|
|
235
221
|
- !ruby/object:Gem::Version
|
|
236
|
-
version:
|
|
222
|
+
version: 8.0.0
|
|
237
223
|
- !ruby/object:Gem::Dependency
|
|
238
224
|
name: sinatra-contrib
|
|
239
225
|
requirement: !ruby/object:Gem::Requirement
|
|
240
226
|
requirements:
|
|
241
227
|
- - '='
|
|
242
228
|
- !ruby/object:Gem::Version
|
|
243
|
-
version:
|
|
229
|
+
version: 3.0.5
|
|
244
230
|
type: :development
|
|
245
231
|
prerelease: false
|
|
246
232
|
version_requirements: !ruby/object:Gem::Requirement
|
|
247
233
|
requirements:
|
|
248
234
|
- - '='
|
|
249
235
|
- !ruby/object:Gem::Version
|
|
250
|
-
version:
|
|
236
|
+
version: 3.0.5
|
|
251
237
|
description: RubyPitaya is an application to create servers using the pitaya protocol.
|
|
252
238
|
email:
|
|
253
239
|
- lucianopcbr@gmail.com
|
|
@@ -286,7 +272,7 @@ files:
|
|
|
286
272
|
- "./lib/rubypitaya/app-template/docker/wait_for.sh"
|
|
287
273
|
- "./lib/rubypitaya/app-template/features/hello_world.feature"
|
|
288
274
|
- "./lib/rubypitaya/app-template/features/player.feature"
|
|
289
|
-
- "./lib/rubypitaya/app-template/features/step_definitions/
|
|
275
|
+
- "./lib/rubypitaya/app-template/features/step_definitions/player_steps.rb"
|
|
290
276
|
- "./lib/rubypitaya/app-template/features/step_definitions/rubypitaya_steps.rb"
|
|
291
277
|
- "./lib/rubypitaya/app-template/features/support/env.rb"
|
|
292
278
|
- "./lib/rubypitaya/app-template/helm/Chart.yaml"
|
|
@@ -340,7 +326,6 @@ files:
|
|
|
340
326
|
- "./lib/rubypitaya/app-template/spec/spec_helper.rb"
|
|
341
327
|
- "./lib/rubypitaya/core/app/migrations/0000000001_create_user_migration.rb"
|
|
342
328
|
- "./lib/rubypitaya/core/app/models/user.rb"
|
|
343
|
-
- "./lib/rubypitaya/core/app/services/mongo_service.rb"
|
|
344
329
|
- "./lib/rubypitaya/core/app/services/redis_service.rb"
|
|
345
330
|
- "./lib/rubypitaya/core/application_files_importer.rb"
|
|
346
331
|
- "./lib/rubypitaya/core/config.rb"
|
|
@@ -399,7 +384,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
399
384
|
- !ruby/object:Gem::Version
|
|
400
385
|
version: '0'
|
|
401
386
|
requirements: []
|
|
402
|
-
rubygems_version: 3.
|
|
387
|
+
rubygems_version: 3.3.26
|
|
403
388
|
signing_key:
|
|
404
389
|
specification_version: 4
|
|
405
390
|
summary: Create servers with pitaya
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
require 'mongo'
|
|
2
|
-
require 'rubypitaya/core/service_base'
|
|
3
|
-
|
|
4
|
-
module RubyPitaya
|
|
5
|
-
|
|
6
|
-
class MongoService < ServiceBase
|
|
7
|
-
|
|
8
|
-
def initialize(setup)
|
|
9
|
-
@mongo = nil
|
|
10
|
-
@mongo_address = setup['rubypitaya.mongo.url']
|
|
11
|
-
@mongo_user = setup['rubypitaya.mongo.user']
|
|
12
|
-
@mongo_password = setup['rubypitaya.mongo.pass']
|
|
13
|
-
@mongo_database_name = setup['rubypitaya.mongo.database']
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
def connect
|
|
17
|
-
@mongo = Mongo::Client.new([@mongo_address],
|
|
18
|
-
user: @mongo_user,
|
|
19
|
-
password: @mongo_password,
|
|
20
|
-
database: @mongo_database_name)
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def disconnect
|
|
24
|
-
# TODO: implement it
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
def client
|
|
28
|
-
@mongo
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
def clear_all_data
|
|
32
|
-
# TODO: implement it
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
end
|