rubypitaya 2.20.0 → 2.21.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/rubypitaya/app-template/Gemfile +1 -1
- data/lib/rubypitaya/app-template/Gemfile.lock +2 -2
- data/lib/rubypitaya/app-template/Rakefile +5 -10
- data/lib/rubypitaya/app-template/app/bll/player_bll.rb +1 -1
- data/lib/rubypitaya/app-template/app/config/initial_player.json +4 -1
- data/lib/rubypitaya/app-template/app/setup/rubypitaya.yml +27 -0
- data/lib/rubypitaya/app-template/bin/console +1 -2
- data/lib/rubypitaya/app-template/docker-compose.yml +0 -15
- data/lib/rubypitaya/app-template/docker/entrypoint.sh +4 -1
- data/lib/rubypitaya/app-template/features/player.feature +1 -1
- data/lib/rubypitaya/app-template/helm/templates/deployments/rubypitaya.yaml +17 -21
- data/lib/rubypitaya/app-template/helm/values.yaml +7 -3
- data/lib/rubypitaya/app-template/kubernetes/deployment-rubypitaya.yaml +10 -14
- data/lib/rubypitaya/app-template/spec/player_handler_spec.rb +4 -3
- data/lib/rubypitaya/core/config.rb +8 -0
- data/lib/rubypitaya/core/database_config.rb +15 -10
- data/lib/rubypitaya/core/helpers/setup_helper.rb +1 -2
- data/lib/rubypitaya/core/http_routes.rb +8 -8
- data/lib/rubypitaya/core/main.rb +12 -10
- data/lib/rubypitaya/core/path.rb +0 -2
- data/lib/rubypitaya/core/setup.rb +10 -0
- data/lib/rubypitaya/core/spec-helpers/handler_spec_helper.rb +3 -1
- data/lib/rubypitaya/version.rb +1 -1
- metadata +17 -4
- data/lib/rubypitaya/app-template/app/setup/initial_player.yml +0 -2
- data/lib/rubypitaya/app-template/config/database.yml +0 -20
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9505e2c4dbb300db345cff9e51d406c5f6b3c6f101c46105b8fa2e949b8c71bc
|
4
|
+
data.tar.gz: 9c1fb523cf378d6fa8bd7aa927611bfcd974b0583f22d8fdcbf3a3c71a438bec
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 07c2486f386fef386ec1e002e57a2f723c6ff9f12e693d3c41abb322cf226cea49a9d5eab743f94ffb6d3b72627f48ef40716a03172d9ab58d53d0d53ca6f465
|
7
|
+
data.tar.gz: 6c2d3d381cb44074f9b4df501671c4a330e5c370b1b392e041a831d342615394dca786ed72d36de1673dbef45005c18aca0cb279d18f7f0011d0c833a2a8ca1a
|
@@ -108,7 +108,7 @@ GEM
|
|
108
108
|
rspec-support (~> 3.10.0)
|
109
109
|
rspec-support (3.10.2)
|
110
110
|
ruby2_keywords (0.0.4)
|
111
|
-
rubypitaya (2.
|
111
|
+
rubypitaya (2.21.0)
|
112
112
|
activerecord (= 6.1.3)
|
113
113
|
etcdv3 (= 0.10.2)
|
114
114
|
nats (= 0.11.0)
|
@@ -148,7 +148,7 @@ DEPENDENCIES
|
|
148
148
|
listen (= 3.4.1)
|
149
149
|
pry (= 0.14.0)
|
150
150
|
rspec (= 3.10.0)
|
151
|
-
rubypitaya (= 2.
|
151
|
+
rubypitaya (= 2.21.0)
|
152
152
|
|
153
153
|
BUNDLED WITH
|
154
154
|
2.1.4
|
@@ -8,8 +8,7 @@ namespace :db do
|
|
8
8
|
|
9
9
|
desc 'Create the database'
|
10
10
|
task :create do
|
11
|
-
|
12
|
-
database_config = RubyPitaya::DatabaseConfig.new(environment_name, RubyPitaya::Path::DATABASE_CONFIG_PATH)
|
11
|
+
database_config = RubyPitaya::DatabaseConfig.new
|
13
12
|
connection_data = database_config.connection_data_without_database
|
14
13
|
|
15
14
|
ActiveRecord::Base.establish_connection(connection_data)
|
@@ -21,8 +20,7 @@ namespace :db do
|
|
21
20
|
|
22
21
|
desc 'Migrate the database'
|
23
22
|
task :migrate do
|
24
|
-
|
25
|
-
database_config = RubyPitaya::DatabaseConfig.new(environment_name, RubyPitaya::Path::DATABASE_CONFIG_PATH)
|
23
|
+
database_config = RubyPitaya::DatabaseConfig.new
|
26
24
|
connection_data = database_config.connection_data
|
27
25
|
migrations_paths = [RubyPitaya::Path::Core::MIGRATIONS_FOLDER_PATH]
|
28
26
|
migrations_paths += RubyPitaya::Path::Plugins::MIGRATIONS_FOLDER_PATHS
|
@@ -38,8 +36,7 @@ namespace :db do
|
|
38
36
|
|
39
37
|
desc 'Rollback migrations'
|
40
38
|
task :rollback do
|
41
|
-
|
42
|
-
database_config = RubyPitaya::DatabaseConfig.new(environment_name, RubyPitaya::Path::DATABASE_CONFIG_PATH)
|
39
|
+
database_config = RubyPitaya::DatabaseConfig.new
|
43
40
|
connection_data = database_config.connection_data
|
44
41
|
migrations_paths = [RubyPitaya::Path::Core::MIGRATIONS_FOLDER_PATH]
|
45
42
|
migrations_paths += RubyPitaya::Path::Plugins::MIGRATIONS_FOLDER_PATHS
|
@@ -64,8 +61,7 @@ namespace :db do
|
|
64
61
|
|
65
62
|
desc 'Drop the database'
|
66
63
|
task :drop do
|
67
|
-
|
68
|
-
database_config = RubyPitaya::DatabaseConfig.new(environment_name, RubyPitaya::Path::DATABASE_CONFIG_PATH)
|
64
|
+
database_config = RubyPitaya::DatabaseConfig.new
|
69
65
|
connection_data = database_config.connection_data_without_database
|
70
66
|
|
71
67
|
ActiveRecord::Base.establish_connection(connection_data)
|
@@ -78,8 +74,7 @@ namespace :db do
|
|
78
74
|
|
79
75
|
desc 'migration status'
|
80
76
|
task :status do
|
81
|
-
|
82
|
-
database_config = RubyPitaya::DatabaseConfig.new(environment_name, RubyPitaya::Path::DATABASE_CONFIG_PATH)
|
77
|
+
database_config = RubyPitaya::DatabaseConfig.new
|
83
78
|
connection_data = database_config.connection_data
|
84
79
|
migrations_paths = [RubyPitaya::Path::Core::MIGRATIONS_FOLDER_PATH]
|
85
80
|
migrations_paths += RubyPitaya::Path::Plugins::MIGRATIONS_FOLDER_PATHS
|
@@ -2,7 +2,7 @@ class PlayerBLL
|
|
2
2
|
|
3
3
|
def create_new_player(setup, config)
|
4
4
|
name = config['initial_player'][:name]
|
5
|
-
gold =
|
5
|
+
gold = config['initial_player'][:wallet][:gold]
|
6
6
|
|
7
7
|
player = Player.new(name: name, gold: gold, user: User.new)
|
8
8
|
player.save!
|
@@ -0,0 +1,27 @@
|
|
1
|
+
server:
|
2
|
+
name: 'rubypitaya'
|
3
|
+
environment: development
|
4
|
+
|
5
|
+
nats:
|
6
|
+
url: 'nats://nats:4222'
|
7
|
+
|
8
|
+
etcd:
|
9
|
+
url: 'http://etcd:2379'
|
10
|
+
prefix: 'rubypitaya/'
|
11
|
+
leaseSeconds: '60'
|
12
|
+
|
13
|
+
redis:
|
14
|
+
url: 'redis://redis:6379'
|
15
|
+
|
16
|
+
database:
|
17
|
+
host: 'db'
|
18
|
+
port: 5432
|
19
|
+
user: 'postgres'
|
20
|
+
password: 'postgres'
|
21
|
+
name: 'ruby_pitaya'
|
22
|
+
|
23
|
+
http:
|
24
|
+
auth:
|
25
|
+
user: 'user'
|
26
|
+
pass: 'pass'
|
27
|
+
enabled: 'false'
|
@@ -7,8 +7,7 @@ require 'rubypitaya'
|
|
7
7
|
require 'rubypitaya/core/database_config'
|
8
8
|
|
9
9
|
# Database connection
|
10
|
-
|
11
|
-
database_config = RubyPitaya::DatabaseConfig.new(environment_name, RubyPitaya::Path::DATABASE_CONFIG_PATH)
|
10
|
+
database_config = RubyPitaya::DatabaseConfig.new
|
12
11
|
ActiveRecord::Base.establish_connection(database_config.connection_data)
|
13
12
|
ActiveRecord::Base.logger = ActiveSupport::Logger.new(STDOUT)
|
14
13
|
ActiveSupport::LogSubscriber.colorize_logging = true
|
@@ -60,22 +60,7 @@ services:
|
|
60
60
|
ports:
|
61
61
|
- '80:4567'
|
62
62
|
environment:
|
63
|
-
SERVER_NAME: 'rubypitaya'
|
64
|
-
RUBYPITAYA_ENV: 'development'
|
65
63
|
HISTFILE: '/app/rubypitaya/.bash-history'
|
66
|
-
NATS_URL: 'nats://nats:4222'
|
67
|
-
ETCD_URL: 'http://etcd:2379'
|
68
|
-
ETCD_PREFIX: 'rubypitaya/'
|
69
|
-
ETCD_LEASE_SECONDS: '60'
|
70
|
-
REDIS_URL: 'redis://redis:6379'
|
71
|
-
DATABASE_HOST: 'db'
|
72
|
-
DATABASE_PORT: 5432
|
73
|
-
DATABASE_USER: 'postgres'
|
74
|
-
DATABASE_PASSWORD: 'postgres'
|
75
|
-
DATABASE_NAME: 'ruby_pitaya'
|
76
|
-
HTTP_AUTH_ENABLED: 'false'
|
77
|
-
HTTP_AUTH_USER: 'user'
|
78
|
-
HTTP_AUTH_PASS: 'pass'
|
79
64
|
|
80
65
|
rubypitaya-console:
|
81
66
|
<<: *rubypitaya
|
@@ -4,7 +4,10 @@ cmd="$@"
|
|
4
4
|
|
5
5
|
echo "=> Waiting for postgres"
|
6
6
|
|
7
|
-
|
7
|
+
RUBYPITAYA_DATABASE_HOST=${RUBYPITAYA_DATABASE_HOST:-'db'}
|
8
|
+
RUBYPITAYA_DATABASE_PORT=${RUBYPITAYA_DATABASE_PORT:-5432}
|
9
|
+
|
10
|
+
./docker/wait_for.sh $RUBYPITAYA_DATABASE_HOST:$RUBYPITAYA_DATABASE_PORT
|
8
11
|
|
9
12
|
echo "=> Postgres is ready"
|
10
13
|
|
@@ -3,7 +3,7 @@ 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
|
6
|
+
Given config key 'initial_player.wallet.gold' is '10'
|
7
7
|
And config key 'initial_player.name' is 'Guest'
|
8
8
|
When client call route 'rubypitaya.playerHandler.authenticate'
|
9
9
|
Then server should response 'code' as 'RP-200'
|
@@ -25,34 +25,30 @@ spec:
|
|
25
25
|
- containerPort: 4567
|
26
26
|
name: rubypitaya
|
27
27
|
env:
|
28
|
-
- name:
|
29
|
-
value:
|
30
|
-
- name:
|
31
|
-
value: "production"
|
32
|
-
- name: NATS_URL
|
28
|
+
- name: RUBYPITAYA_SERVER_ENVIRONMENT
|
29
|
+
value: {{ .Values.rubypitaya.server.environment | quote }}
|
30
|
+
- name: RUBYPITAYA_NATS_URL
|
33
31
|
value: "nats://nats.{{ .Values.namespace }}.svc.cluster.local:4222"
|
34
|
-
- name:
|
32
|
+
- name: RUBYPITAYA_ETCD_URL
|
35
33
|
value: "http://etcd.{{ .Values.namespace }}.svc.cluster.local:2379"
|
36
|
-
- name:
|
37
|
-
value: "rubypitaya/"
|
38
|
-
- name: ETCD_LEASE_SECONDS
|
39
|
-
value: "60"
|
40
|
-
- name: REDIS_URL
|
34
|
+
- name: RUBYPITAYA_REDIS_URL
|
41
35
|
value: "redis://redis.{{ .Values.namespace }}.svc.cluster.local:6379"
|
42
|
-
- name:
|
36
|
+
- name: RUBYPITAYA_DATABASE_NAME
|
43
37
|
value: {{ .Values.database.name | quote }}
|
44
|
-
- name:
|
38
|
+
- name: RUBYPITAYA_DATABASE_HOST
|
45
39
|
value: {{ .Values.database.host | quote }}
|
46
|
-
- name:
|
40
|
+
- name: RUBYPITAYA_DATABASE_USER
|
47
41
|
value: {{ .Values.database.user | quote }}
|
48
|
-
- name:
|
42
|
+
- name: RUBYPITAYA_DATABASE_PORT
|
43
|
+
value: {{ .Values.database.port | quote }}
|
44
|
+
- name: RUBYPITAYA_DATABASE_PASSWORD
|
49
45
|
value: {{ .Values.database.password | quote }}
|
50
|
-
- name:
|
51
|
-
value: {{ .Values.http.enabled | quote }}
|
52
|
-
- name:
|
53
|
-
value: {{ .Values.http.user | quote }}
|
54
|
-
- name:
|
55
|
-
value: {{ .Values.http.password | quote }}
|
46
|
+
- name: RUBYPITAYA_HTTP_AUTH_ENABLED
|
47
|
+
value: {{ .Values.http.auth.enabled | quote }}
|
48
|
+
- name: RUBYPITAYA_HTTP_AUTH_USER
|
49
|
+
value: {{ .Values.http.auth.user | quote }}
|
50
|
+
- name: RUBYPITAYA_HTTP_AUTH_PASS
|
51
|
+
value: {{ .Values.http.auth.password | quote }}
|
56
52
|
- name: MATCHMAKING_CURRENTROOMBLL
|
57
53
|
value: kubernetes
|
58
54
|
- name: MATCHMAKING_ROOMBLL_KUBERNETES_NAMESPACE
|
@@ -7,6 +7,8 @@ connector:
|
|
7
7
|
tag: 0.2.0
|
8
8
|
|
9
9
|
rubypitaya:
|
10
|
+
server:
|
11
|
+
environment: production
|
10
12
|
image:
|
11
13
|
repository: [metagame-repository-link]
|
12
14
|
tag: latest
|
@@ -15,12 +17,14 @@ database:
|
|
15
17
|
name: [database-name]
|
16
18
|
host: [database-host]
|
17
19
|
user: [database-user]
|
20
|
+
port: [database-port]
|
18
21
|
password: [database-password]
|
19
22
|
|
20
23
|
http:
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
+
auth:
|
25
|
+
user: 'user'
|
26
|
+
pass: 'pass'
|
27
|
+
enabled: 'false'
|
24
28
|
|
25
29
|
gameserver:
|
26
30
|
image:
|
@@ -22,27 +22,23 @@ spec:
|
|
22
22
|
- containerPort: 4567
|
23
23
|
name: rubypitaya
|
24
24
|
env:
|
25
|
-
- name:
|
26
|
-
value: "rubypitaya"
|
27
|
-
- name: RUBYPITAYA_ENV
|
25
|
+
- name: RUBYPITAYA_SERVER_ENVIRONMENT
|
28
26
|
value: "production"
|
29
|
-
- name:
|
27
|
+
- name: RUBYPITAYA_NATS_URL
|
30
28
|
value: "nats://nats.default.svc.cluster.local:4222"
|
31
|
-
- name:
|
29
|
+
- name: RUBYPITAYA_ETCD_URL
|
32
30
|
value: "http://etcd.default.svc.cluster.local:2379"
|
33
|
-
- name:
|
34
|
-
value: "rubypitaya/"
|
35
|
-
- name: ETCD_LEASE_SECONDS
|
36
|
-
value: "60"
|
37
|
-
- name: REDIS_URL
|
31
|
+
- name: RUBYPITAYA_REDIS_URL
|
38
32
|
value: "redis://redis.default.svc.cluster.local:6379"
|
39
|
-
- name:
|
33
|
+
- name: RUBYPITAYA_DATABASE_HOST
|
40
34
|
value: "postgres.default.svc.cluster.local"
|
41
|
-
- name:
|
35
|
+
- name: RUBYPITAYA_DATABASE_USER
|
42
36
|
value: "postgres"
|
43
|
-
- name:
|
37
|
+
- name: RUBYPITAYA_DATABASE_PORT
|
38
|
+
value: "5432"
|
39
|
+
- name: RUBYPITAYA_DATABASE_PASSWORD
|
44
40
|
value: "postgres"
|
45
|
-
- name:
|
41
|
+
- name: RUBYPITAYA_DATABASE_NAME
|
46
42
|
value: "ruby_pitaya"
|
47
43
|
imagePullSecrets:
|
48
44
|
- name: gitlab-registry
|
@@ -3,10 +3,11 @@ require 'spec_helper'
|
|
3
3
|
RSpec.describe 'PlayerHandler', type: :request do
|
4
4
|
context 'authenticate' do
|
5
5
|
it 'create_new_user' do
|
6
|
-
|
7
|
-
|
6
|
+
config = {'initial_player' => {
|
7
|
+
'name' => 'Guest',
|
8
|
+
'wallet' => {'gold' => 10},
|
9
|
+
}}
|
8
10
|
|
9
|
-
set_setup(setup)
|
10
11
|
set_config(config)
|
11
12
|
|
12
13
|
params = {}
|
@@ -9,6 +9,7 @@ module RubyPitaya
|
|
9
9
|
@config_core_override = nil
|
10
10
|
@has_config_core_override = false
|
11
11
|
|
12
|
+
@empty_hash = {}
|
12
13
|
@result_cache = {}
|
13
14
|
end
|
14
15
|
|
@@ -28,6 +29,13 @@ module RubyPitaya
|
|
28
29
|
result
|
29
30
|
end
|
30
31
|
|
32
|
+
def fetch(*args)
|
33
|
+
result = self[args[0]]
|
34
|
+
return result unless result.nil?
|
35
|
+
|
36
|
+
@empty_hash.fetch(*args)
|
37
|
+
end
|
38
|
+
|
31
39
|
def auto_reload
|
32
40
|
@config_core.auto_reload
|
33
41
|
@config_core_override.auto_reload unless @config_core_override.nil?
|
@@ -1,21 +1,30 @@
|
|
1
1
|
require 'erb'
|
2
2
|
require 'yaml'
|
3
3
|
|
4
|
-
require 'rubypitaya/core/
|
4
|
+
require 'rubypitaya/core/setup'
|
5
5
|
|
6
6
|
module RubyPitaya
|
7
7
|
|
8
8
|
class DatabaseConfig
|
9
9
|
|
10
|
-
def initialize(
|
11
|
-
@
|
10
|
+
def initialize()
|
11
|
+
@setup = Setup.new
|
12
|
+
|
13
|
+
@config = {
|
14
|
+
'adapter' => 'postgresql',
|
15
|
+
'encoding' => 'unicode',
|
16
|
+
'pool' => @setup.fetch('rubypitaya.database.pool', 5),
|
17
|
+
'host' => @setup['rubypitaya.database.host'],
|
18
|
+
'user' => @setup['rubypitaya.database.user'],
|
19
|
+
'password' => @setup['rubypitaya.database.password'],
|
20
|
+
'database' => @setup['rubypitaya.database.name'],
|
21
|
+
}
|
12
22
|
|
13
|
-
|
14
|
-
@config = YAML.load( ERB.new(yaml_contents).result )
|
23
|
+
@config['database'] = "#{@config['database']}_test" if @environment_name == 'test'
|
15
24
|
end
|
16
25
|
|
17
26
|
def config
|
18
|
-
@config
|
27
|
+
@config
|
19
28
|
end
|
20
29
|
|
21
30
|
def connection_data
|
@@ -44,9 +53,5 @@ module RubyPitaya
|
|
44
53
|
def database_name
|
45
54
|
config['database']
|
46
55
|
end
|
47
|
-
|
48
|
-
def migrations_path
|
49
|
-
@migrations_path
|
50
|
-
end
|
51
56
|
end
|
52
57
|
end
|
@@ -3,8 +3,7 @@ require 'active_record'
|
|
3
3
|
require 'rubypitaya/core/database_config'
|
4
4
|
|
5
5
|
# Database connection
|
6
|
-
|
7
|
-
database_config = RubyPitaya::DatabaseConfig.new(environment_name, RubyPitaya::Path::DATABASE_CONFIG_PATH)
|
6
|
+
database_config = RubyPitaya::DatabaseConfig.new
|
8
7
|
ActiveRecord::Base.establish_connection(database_config.connection_data)
|
9
8
|
# ActiveRecord::Base.logger = ActiveSupport::Logger.new(STDOUT)
|
10
9
|
# ActiveSupport::LogSubscriber.colorize_logging = true
|
@@ -1,13 +1,13 @@
|
|
1
1
|
require 'sinatra/base'
|
2
|
-
require 'sinatra/reloader' if ENV['RUBYPITAYA_ENV'] == 'development'
|
3
2
|
require 'rubypitaya/core/parameters'
|
4
3
|
|
5
4
|
module RubyPitaya
|
6
5
|
|
7
6
|
class HttpRoutes < Sinatra::Base
|
8
7
|
|
9
|
-
|
10
|
-
|
8
|
+
def self.auto_reload
|
9
|
+
require 'sinatra/reloader'
|
10
|
+
register ::Sinatra::Reloader
|
11
11
|
end
|
12
12
|
|
13
13
|
helpers do
|
@@ -19,12 +19,12 @@ module RubyPitaya
|
|
19
19
|
before do
|
20
20
|
content_type :json
|
21
21
|
|
22
|
-
return error_unauthorized unless authorized?(request)
|
23
|
-
|
24
22
|
@bll = settings.bll
|
25
23
|
@setup = settings.setup
|
26
24
|
@config = settings.config
|
27
25
|
|
26
|
+
return error_unauthorized unless authorized?(request)
|
27
|
+
|
28
28
|
@config.clear_cache
|
29
29
|
|
30
30
|
if request.content_type == 'application/json'
|
@@ -49,12 +49,12 @@ module RubyPitaya
|
|
49
49
|
end
|
50
50
|
|
51
51
|
def http_auth_enabled?
|
52
|
-
return
|
52
|
+
return @setup.fetch('rubypitaya.http.auth.enabled') { 'false' } == 'true'
|
53
53
|
end
|
54
54
|
|
55
55
|
def get_http_auth
|
56
|
-
user =
|
57
|
-
pass =
|
56
|
+
user = @setup.fetch('rubypitaya.http.auth.user') { '' }
|
57
|
+
pass = @setup.fetch('rubypitaya.http.auth.pass') { '' }
|
58
58
|
|
59
59
|
auth_token = ::Base64.strict_encode64("#{user}:#{pass}")
|
60
60
|
|
data/lib/rubypitaya/core/main.rb
CHANGED
@@ -30,8 +30,10 @@ module RubyPitaya
|
|
30
30
|
attr_reader :redis_connector, :config, :bll
|
31
31
|
|
32
32
|
def initialize
|
33
|
-
@
|
33
|
+
@setup = Setup.new
|
34
|
+
@environment_name = @setup.fetch('rubypitaya.server.environment', 'development')
|
34
35
|
@is_development_environment = @environment_name == 'development'
|
36
|
+
@setup.auto_reload if @is_development_environment
|
35
37
|
|
36
38
|
@log = Logger.new('/proc/self/fd/1')
|
37
39
|
@log.level = Logger::INFO
|
@@ -43,13 +45,13 @@ module RubyPitaya
|
|
43
45
|
@application_files_importer.import
|
44
46
|
@application_files_importer.auto_reload if @is_development_environment
|
45
47
|
|
46
|
-
@server_name =
|
48
|
+
@server_name = @setup['rubypitaya.server.name']
|
47
49
|
@service_uuid = SecureRandom.uuid
|
48
50
|
@desktop_name = Socket.gethostname
|
49
51
|
|
50
|
-
@etcd_prefix =
|
51
|
-
@etcd_address =
|
52
|
-
@etcd_lease_seconds =
|
52
|
+
@etcd_prefix = @setup['rubypitaya.etcd.prefix']
|
53
|
+
@etcd_address = @setup['rubypitaya.etcd.url']
|
54
|
+
@etcd_lease_seconds = @setup['rubypitaya.etcd.leaseSeconds'].to_i
|
53
55
|
@allow_reconnect = false
|
54
56
|
@etcd_connector = EtcdConnector.new(@service_uuid, @desktop_name,
|
55
57
|
@server_name, @etcd_prefix,
|
@@ -57,15 +59,15 @@ module RubyPitaya
|
|
57
59
|
@etcd_lease_seconds)
|
58
60
|
@etcd_connector.connect
|
59
61
|
|
60
|
-
@nats_address =
|
62
|
+
@nats_address = @setup['rubypitaya.nats.url']
|
61
63
|
@nats_connector = NatsConnector.new(@nats_address, @service_uuid,
|
62
64
|
@server_name)
|
63
65
|
|
64
|
-
@redis_address =
|
66
|
+
@redis_address = @setup['rubypitaya.redis.url']
|
65
67
|
@redis_connector = RedisConnector.new(@redis_address)
|
66
68
|
@redis_connector.connect
|
67
69
|
|
68
|
-
@database_config = DatabaseConfig.new
|
70
|
+
@database_config = DatabaseConfig.new
|
69
71
|
@database_connector = DatabaseConnector.new(@database_config)
|
70
72
|
@database_connector.connect
|
71
73
|
|
@@ -73,8 +75,6 @@ module RubyPitaya
|
|
73
75
|
@postman = Postman.new(@nats_connector)
|
74
76
|
@config = Config.new
|
75
77
|
@config.auto_reload if @is_development_environment
|
76
|
-
@setup = Setup.new
|
77
|
-
@setup.auto_reload if @is_development_environment
|
78
78
|
|
79
79
|
@bll = InstanceHolder.new
|
80
80
|
|
@@ -101,6 +101,8 @@ module RubyPitaya
|
|
101
101
|
HttpRoutes.set :config, @config
|
102
102
|
HttpRoutes.set :views, [Path::HTTP_VIEWS_PATH] + Path::Plugins::HTTP_VIEWS_PATHS
|
103
103
|
|
104
|
+
HttpRoutes.auto_reload if @is_development_environment
|
105
|
+
|
104
106
|
Thread.new do
|
105
107
|
HttpRoutes.bind = '0.0.0.0'
|
106
108
|
HttpRoutes.port = '4567'
|
data/lib/rubypitaya/core/path.rb
CHANGED
@@ -4,8 +4,6 @@ module RubyPitaya
|
|
4
4
|
APP_TEMPLATE_FOLDER_PATH = File.join(__dir__, '../app-template/')
|
5
5
|
MIGRATION_TEMPLATE_PATH = File.join(__dir__, 'templates/template_migration.rb.erb')
|
6
6
|
|
7
|
-
DATABASE_CONFIG_PATH = File.join(Dir.pwd, 'config/database.yml')
|
8
|
-
|
9
7
|
APP_FOLDER_PATH = File.join(Dir.pwd, 'app/')
|
10
8
|
HANDLERS_FOLDER_PATH = File.join(Dir.pwd, 'app/handlers/')
|
11
9
|
APP_CONFIG_FOLDER_PATH = File.join(Dir.pwd, 'app/config/')
|
@@ -1,9 +1,12 @@
|
|
1
|
+
require 'rubypitaya/core/path'
|
2
|
+
|
1
3
|
module RubyPitaya
|
2
4
|
|
3
5
|
class Setup
|
4
6
|
|
5
7
|
def initialize()
|
6
8
|
@config = {}
|
9
|
+
@empty_hash = {}
|
7
10
|
configs_folder_paths = Path::Plugins::APP_SETUP_FOLDER_PATHS + [Path::APP_SETUP_FOLDER_PATH]
|
8
11
|
|
9
12
|
configs_folder_paths.each do |configs_folder_path|
|
@@ -24,6 +27,13 @@ module RubyPitaya
|
|
24
27
|
@config.dig(*split_key)
|
25
28
|
end
|
26
29
|
|
30
|
+
def fetch(*args)
|
31
|
+
result = self[args[0]]
|
32
|
+
return result unless result.nil?
|
33
|
+
|
34
|
+
@empty_hash.fetch(*args)
|
35
|
+
end
|
36
|
+
|
27
37
|
def auto_reload
|
28
38
|
require 'listen'
|
29
39
|
|
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'rubypitaya/core/setup'
|
1
2
|
require 'rubypitaya/core/handler_router'
|
2
3
|
require 'rubypitaya/core/redis_connector'
|
3
4
|
require 'rubypitaya/core/spec-helpers/setup_spec_helper'
|
@@ -96,7 +97,8 @@ module RubyPitaya
|
|
96
97
|
@@redis_connector ||= nil
|
97
98
|
|
98
99
|
if @@redis_connector.nil?
|
99
|
-
|
100
|
+
@@core_setup ||= Setup.new
|
101
|
+
redis_address = @@core_setup['rubypitaya.redis.url']
|
100
102
|
@@redis_connector = RedisConnector.new(redis_address)
|
101
103
|
@@redis_connector.connect
|
102
104
|
end
|
data/lib/rubypitaya/version.rb
CHANGED
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: 2.
|
4
|
+
version: 2.21.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: 2021-
|
11
|
+
date: 2021-07-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: pg
|
@@ -52,6 +52,20 @@ dependencies:
|
|
52
52
|
- - '='
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: 0.11.0
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: mongo
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 2.15.0
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 2.15.0
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: redis
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -246,9 +260,8 @@ files:
|
|
246
260
|
- "./lib/rubypitaya/app-template/app/http/views/hello_world.erb"
|
247
261
|
- "./lib/rubypitaya/app-template/app/models/player.rb"
|
248
262
|
- "./lib/rubypitaya/app-template/app/models/user.rb"
|
249
|
-
- "./lib/rubypitaya/app-template/app/setup/
|
263
|
+
- "./lib/rubypitaya/app-template/app/setup/rubypitaya.yml"
|
250
264
|
- "./lib/rubypitaya/app-template/bin/console"
|
251
|
-
- "./lib/rubypitaya/app-template/config/database.yml"
|
252
265
|
- "./lib/rubypitaya/app-template/config/routes.rb"
|
253
266
|
- "./lib/rubypitaya/app-template/db/migration/1606736477_create_player_migration.rb"
|
254
267
|
- "./lib/rubypitaya/app-template/docker-compose.yml"
|
@@ -1,20 +0,0 @@
|
|
1
|
-
default: &default
|
2
|
-
adapter: postgresql
|
3
|
-
encoding: unicode
|
4
|
-
pool: <%= ENV['RUBYPITAYA_MAX_THREADS'] { 5 } %>
|
5
|
-
host: <%= ENV['DATABASE_HOST'] %>
|
6
|
-
user: <%= ENV['DATABASE_USER'] %>
|
7
|
-
password: <%= ENV['DATABASE_PASSWORD'] %>
|
8
|
-
|
9
|
-
development:
|
10
|
-
<<: *default
|
11
|
-
database: <%= "#{ENV['DATABASE_NAME']}" %>
|
12
|
-
|
13
|
-
test:
|
14
|
-
<<: *default
|
15
|
-
database: <%= "#{ENV['DATABASE_NAME']}_test" %>
|
16
|
-
|
17
|
-
production:
|
18
|
-
<<: *default
|
19
|
-
database: <%= "#{ENV['DATABASE_NAME']}" %>
|
20
|
-
|