rubypitaya 1.8.1 → 2.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f6af52a60b6ae4d3e721706cba8b7a888182d648f0e4eef7c91be38fc41e9c08
4
- data.tar.gz: 7e224b942b81b4e5d3a759c08e468c643eca5b5a895cd08d233dc77741c9cbd7
3
+ metadata.gz: f281a68ed8014d040980a1e38c395a06e01a2f6e0baa299ae31e721b96e38110
4
+ data.tar.gz: 5f4d111862aeb5ca039600fc7e89c371e7bc974fcbe36ce925d67185b4f6a341
5
5
  SHA512:
6
- metadata.gz: e897b6cac313dc5ba1bfbd81367b3d952cdca06245b1bf045c908ad23276aef4b6c570366e63014d0098ea1548d57d4e4ee7052209742f92c2511aa9b743fc84
7
- data.tar.gz: 0ec9970b1fdaa694bf8523cb19462426fcf68594aa491415ee00ac6dca8ef5853159ba3d3a4f89409d579a345ae269f64d3de100198c6e2937dc2d99ff4c7a97
6
+ metadata.gz: 9fbedb2b7e8671ebeb45abb4f59cb4555541293bb345d72a224b8f7e0b8dbb80f01ccc99d73be01859ea12c6be0a172ca998275f500fe33d81c1d351b481481e
7
+ data.tar.gz: 9abcf3ed56d184a29b673e03606a08b29c05344a07636797492aca84882bb66b690ba1e727f47eb21b703a1e2b1438c2d8f7f4867f456e29eea03167faeba86a
@@ -1,6 +1,6 @@
1
1
  source "https://rubygems.org"
2
2
 
3
- gem 'rubypitaya', '1.8.1'
3
+ gem 'rubypitaya', '2.2.1'
4
4
 
5
5
  group :development do
6
6
  gem 'pry', '0.12.2'
@@ -62,7 +62,7 @@ GEM
62
62
  diff-lcs (>= 1.2.0, < 2.0)
63
63
  rspec-support (~> 3.8.0)
64
64
  rspec-support (3.8.3)
65
- rubypitaya (1.8.1)
65
+ rubypitaya (2.2.1)
66
66
  activerecord (= 6.0.2)
67
67
  etcdv3 (= 0.10.2)
68
68
  eventmachine (= 1.2.7)
@@ -85,7 +85,7 @@ DEPENDENCIES
85
85
  pry (= 0.12.2)
86
86
  rake (= 10.0)
87
87
  rspec (= 3.8.0)
88
- rubypitaya (= 1.8.0)
88
+ rubypitaya (= 2.2.1)
89
89
 
90
90
  BUNDLED WITH
91
91
  1.17.2
@@ -24,10 +24,12 @@ namespace :db do
24
24
  environment_name = ENV.fetch("RUBYPITAYA_ENV") { 'development' }
25
25
  database_config = RubyPitaya::DatabaseConfig.new(environment_name, RubyPitaya::Path::DATABASE_CONFIG_PATH)
26
26
  connection_data = database_config.connection_data
27
- migrations_path = RubyPitaya::Path::MIGRATIONS_FOLDER_PATH
27
+ migrations_paths = [RubyPitaya::Path::Core::MIGRATIONS_FOLDER_PATH]
28
+ migrations_paths += RubyPitaya::Path::Plugins::MIGRATIONS_FOLDER_PATHS
29
+ migrations_paths += [RubyPitaya::Path::MIGRATIONS_FOLDER_PATH]
28
30
 
29
31
  ActiveRecord::Base.establish_connection(connection_data)
30
- ActiveRecord::Migrator.migrations_paths = [migrations_path]
32
+ ActiveRecord::Migrator.migrations_paths = migrations_paths
31
33
  ActiveRecord::Tasks::DatabaseTasks.migrate
32
34
  ActiveRecord::Base.connection.close
33
35
  puts 'Database migrated.'
@@ -4,7 +4,8 @@ class AppInitializer < RubyPitaya::InitializerBase
4
4
  # parameter: initializer_content
5
5
  # attributes:
6
6
  # - bll
7
- # - class: InstanceHolder
7
+ # - class: RubyPitaya::InstanceHolder
8
+ # - link: https://gitlab.com/LucianoPC/ruby-pitaya/-/blob/master/lib/rubypitaya/core/instance_holder.rb
8
9
  # - methods:
9
10
  # - add_instance(key, instance)
10
11
  # - add any instance to any key
@@ -12,6 +13,12 @@ class AppInitializer < RubyPitaya::InitializerBase
12
13
  # - get instance by key
13
14
  # - redis
14
15
  # - link: https://github.com/redis/redis-rb/
16
+ # - config
17
+ # - class: RubyPitaya::Config
18
+ # - link: https://gitlab.com/LucianoPC/ruby-pitaya/-/blob/master/lib/rubypitaya/core/config.rb
19
+ # - methods:
20
+ # - [](key)
21
+ # - get config file by config path
15
22
 
16
23
  def run(initializer_content)
17
24
  bll = initializer_content.bll
@@ -1,4 +1,3 @@
1
- require 'active_record'
2
-
3
- class User < ActiveRecord::Base
4
- end
1
+ User.class_eval do
2
+ # has_one :player
3
+ end
@@ -14,14 +14,14 @@ ActiveSupport::LogSubscriber.colorize_logging = true
14
14
 
15
15
  Gem.find_files('rubypitaya/**/*.rb').each do |path|
16
16
  require path unless path.end_with?('spec.rb') ||
17
- path.include?('db/migrate') ||
17
+ path.include?('db/migration') ||
18
18
  path.include?('app-template')
19
19
  end
20
20
 
21
21
  app_files_path = File.join(RubyPitaya::Path::APP_FOLDER_PATH, '**/*.rb')
22
22
  Dir[app_files_path].each do |path|
23
23
  require path unless path.end_with?('spec.rb') ||
24
- path.include?('db/migrate')
24
+ path.include?('db/migration')
25
25
  end
26
26
 
27
27
  require 'irb'
@@ -34,7 +34,7 @@ services:
34
34
  - 'etcd'
35
35
  - 'redis'
36
36
  ports:
37
- - '3252:3250'
37
+ - '3250:3250'
38
38
  environment:
39
39
  PITAYA_CLUSTER_RPC_SERVER_NATS_CONNECT: 'nats://nats:4222'
40
40
  PITAYA_CLUSTER_RPC_CLIENT_NATS_CONNECT: 'nats://nats:4222'
@@ -0,0 +1,4 @@
1
+ require 'active_record'
2
+
3
+ class User < ActiveRecord::Base
4
+ end
@@ -5,20 +5,26 @@ module RubyPitaya
5
5
  class ApplicationFilesImporter
6
6
 
7
7
  def import
8
- app_files_path = "#{Path::APP_FOLDER_PATH}/**/*.rb"
8
+ @app_folder_paths = [Path::Core::APP_FOLDER_PATH, Path::APP_FOLDER_PATH] + Path::Plugins::APP_FOLDER_PATHS
9
9
 
10
- Gem.find_files(app_files_path).each { |path| require path }
10
+ @app_folder_paths.each do |app_folder_path|
11
+ app_files_path = "#{app_folder_path}/**/*.rb"
12
+
13
+ Gem.find_files(app_files_path).each { |path| require path }
14
+ end
11
15
  end
12
16
 
13
17
  def auto_reload
14
18
  require 'listen'
15
19
 
16
- @app_files_listener = Listen.to(Path::APP_FOLDER_PATH, only: /\.rb$/) do |modified, added, removed|
17
- import_added_files(added)
18
- reload_modified_files(modified)
19
- end
20
+ @app_folder_paths.each do |app_folder_path|
21
+ @app_files_listener = Listen.to(app_folder_path, only: /\.rb$/) do |modified, added, removed|
22
+ import_added_files(added)
23
+ reload_modified_files(modified)
24
+ end
20
25
 
21
- @app_files_listener.start
26
+ @app_files_listener.start
27
+ end
22
28
  end
23
29
 
24
30
  private
@@ -2,16 +2,17 @@ module RubyPitaya
2
2
 
3
3
  class Config
4
4
 
5
- def initialize(configs_folder_path)
6
- @configs_folder_path = configs_folder_path
7
-
8
- path_to_all_files = File.join(@configs_folder_path, '**/*.json')
9
- config_files = Dir.glob(path_to_all_files)
10
-
5
+ def initialize()
11
6
  @config = {}
7
+ @configs_folder_paths = [Path::APP_CONFIG_FOLDER_PATH] + Path::Plugins::APP_CONFIG_FOLDER_PATHS
12
8
 
13
- config_files.each do |config_file|
14
- load_config_file(config_file)
9
+ @configs_folder_paths.each do |configs_folder_path|
10
+ path_to_all_files = File.join(configs_folder_path, '**/*.json')
11
+ config_files = Dir.glob(path_to_all_files)
12
+
13
+ config_files.each do |config_file|
14
+ load_config_file(configs_folder_path, config_file)
15
+ end
15
16
  end
16
17
  end
17
18
 
@@ -20,27 +21,30 @@ module RubyPitaya
20
21
  end
21
22
 
22
23
  def [](key)
23
- @config[key]
24
+ split_key = key.split('/')
25
+ @config.dig(*split_key)
24
26
  end
25
27
 
26
28
  def auto_reload
27
29
  require 'listen'
28
30
 
29
- @config_files_listener = Listen.to(@configs_folder_path, only: /\.json$/) do |modified, added, removed|
30
- import_added_files(added)
31
- reload_modified_files(modified)
32
- end
31
+ @configs_folder_paths.each do |configs_folder_path|
32
+ config_files_listener = Listen.to(configs_folder_path, only: /\.json$/) do |modified, added, removed|
33
+ import_added_files(configs_folder_path, added)
34
+ reload_modified_files(configs_folder_path, modified)
35
+ end
33
36
 
34
- @config_files_listener.start
37
+ config_files_listener.start
38
+ end
35
39
  end
36
40
 
37
41
  private
38
42
 
39
- def load_config_file(file_path)
43
+ def load_config_file(configs_folder_path, file_path)
40
44
  config_text = File.open(file_path, &:read)
41
45
  config_hash = JSON.parse(config_text)
42
46
 
43
- path_array = file_path.sub(/^#{@configs_folder_path}/, '')[0..-6]
47
+ path_array = file_path.sub(/^#{configs_folder_path}/, '')[0..-6]
44
48
  .split('/')
45
49
 
46
50
  set_config_value(path_array, config_hash)
@@ -50,17 +54,17 @@ module RubyPitaya
50
54
  puts error.backtrace
51
55
  end
52
56
 
53
- def import_added_files(files_path)
57
+ def import_added_files(configs_folder_path, files_path)
54
58
  files_path.each do |path|
55
- load_config_file(path)
59
+ load_config_file(configs_folder_path, path)
56
60
 
57
61
  puts "ADDED config: #{path}"
58
62
  end
59
63
  end
60
64
 
61
- def reload_modified_files(files_path)
65
+ def reload_modified_files(configs_folder_path, files_path)
62
66
  files_path.each do |path|
63
- load_config_file(path)
67
+ load_config_file(configs_folder_path, path)
64
68
 
65
69
  puts "MODIFIED @config: #{path}"
66
70
  end
@@ -75,7 +79,7 @@ module RubyPitaya
75
79
  if is_last_index
76
80
  config[key] = value
77
81
  else
78
- config[key] = {}
82
+ config[key] = {} unless config.key?(key)
79
83
  config = config[key]
80
84
  end
81
85
  end
@@ -4,9 +4,15 @@ module RubyPitaya
4
4
 
5
5
  class HandlerRouter
6
6
 
7
- def initialize(handler_folder_path, routes_path)
7
+ def initialize()
8
+ routes_path = Path::ROUTES_FILE_PATH
9
+ handler_folder_paths = [Path::HANDLERS_FOLDER_PATH] + Path::Plugins::HANDLERS_FOLDER_PATHS
10
+
8
11
  import_routes_file(routes_path)
9
- import_handler_files(handler_folder_path)
12
+
13
+ handler_folder_paths.each do |handler_folder_path|
14
+ import_handler_files(handler_folder_path)
15
+ end
10
16
 
11
17
  import_routes_class
12
18
  import_handler_classes
@@ -2,11 +2,12 @@ module RubyPitaya
2
2
 
3
3
  class InitializerContent
4
4
 
5
- attr_reader :bll, :redis
5
+ attr_reader :bll, :redis, :config
6
6
 
7
- def initialize(bll, redis)
7
+ def initialize(bll, redis, config)
8
8
  @bll = bll
9
9
  @redis = redis
10
+ @config = config
10
11
  end
11
12
  end
12
13
  end
@@ -62,17 +62,18 @@ module RubyPitaya
62
62
 
63
63
  @session = Session.new
64
64
  @postman = Postman.new(@nats_connector)
65
- @config = Config.new(Path::APP_CONFIG_FOLDER_PATH)
65
+ @config = Config.new()
66
66
  @config.auto_reload if @is_development_environment
67
67
 
68
68
  @bll = InstanceHolder.new
69
69
 
70
- @initializer_content = InitializerContent.new(@bll, @redis_connector.redis)
70
+ @initializer_content = InitializerContent.new(@bll,
71
+ @redis_connector.redis,
72
+ @config)
71
73
  @initializer_broadcast = InitializerBroadcast.new
72
74
  @initializer_broadcast.run(@initializer_content)
73
75
 
74
- @handler_router = HandlerRouter.new(Path::HANDLERS_FOLDER_PATH,
75
- Path::ROUTES_FILE_PATH)
76
+ @handler_router = HandlerRouter.new()
76
77
 
77
78
  run_server
78
79
  end
@@ -8,8 +8,20 @@ module RubyPitaya
8
8
  APP_FOLDER_PATH = File.join(Dir.pwd, 'app/')
9
9
  HANDLERS_FOLDER_PATH = File.join(Dir.pwd, 'app/handlers/')
10
10
  APP_CONFIG_FOLDER_PATH = File.join(Dir.pwd, 'app/config/')
11
- MIGRATIONS_FOLDER_PATH = File.join(Dir.pwd, 'db/migrate/')
11
+ MIGRATIONS_FOLDER_PATH = File.join(Dir.pwd, 'db/migration/')
12
12
 
13
13
  ROUTES_FILE_PATH = File.join(Dir.pwd, 'config/routes.rb')
14
+
15
+ class Core
16
+ APP_FOLDER_PATH = File.join(__dir__, 'app/')
17
+ MIGRATIONS_FOLDER_PATH = File.join(__dir__, 'db/migration/')
18
+ end
19
+
20
+ class Plugins
21
+ APP_FOLDER_PATHS = Dir.glob(File.join(Dir.pwd, 'plugins/*/app/'))
22
+ HANDLERS_FOLDER_PATHS = Dir.glob(File.join(Dir.pwd, 'plugins/*/app/handlers'))
23
+ APP_CONFIG_FOLDER_PATHS = Dir.glob(File.join(Dir.pwd, 'plugins/*/app/config/'))
24
+ MIGRATIONS_FOLDER_PATHS = Dir.glob(File.join(Dir.pwd, 'plugins/*/db/migration'))
25
+ end
14
26
  end
15
27
  end
@@ -1,3 +1,3 @@
1
1
  module RubyPitaya
2
- VERSION = "1.8.1"
2
+ VERSION = '2.2.1'
3
3
  end
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: 1.8.1
4
+ version: 2.2.1
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: 2020-09-08 00:00:00.000000000 Z
11
+ date: 2020-10-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pg
@@ -204,8 +204,7 @@ files:
204
204
  - "./lib/rubypitaya/app-template/bin/console"
205
205
  - "./lib/rubypitaya/app-template/config/database.yml"
206
206
  - "./lib/rubypitaya/app-template/config/routes.rb"
207
- - "./lib/rubypitaya/app-template/db/migrate/001_create_user_migration.rb"
208
- - "./lib/rubypitaya/app-template/db/migrate/002_create_player_migration.rb"
207
+ - "./lib/rubypitaya/app-template/db/migration/0000000002_create_player_migration.rb"
209
208
  - "./lib/rubypitaya/app-template/docker-compose.yml"
210
209
  - "./lib/rubypitaya/app-template/docker/dev/Dockerfile"
211
210
  - "./lib/rubypitaya/app-template/docker/entrypoint.sh"
@@ -225,10 +224,12 @@ files:
225
224
  - "./lib/rubypitaya/app-template/kubernetes/statefulset-nats.yaml"
226
225
  - "./lib/rubypitaya/app-template/kubernetes/statefulset-postgres.yaml"
227
226
  - "./lib/rubypitaya/app-template/kubernetes/statefulset-redis.yaml"
227
+ - "./lib/rubypitaya/core/app/models/user.rb"
228
228
  - "./lib/rubypitaya/core/application_files_importer.rb"
229
229
  - "./lib/rubypitaya/core/config.rb"
230
230
  - "./lib/rubypitaya/core/database_config.rb"
231
231
  - "./lib/rubypitaya/core/database_connector.rb"
232
+ - "./lib/rubypitaya/core/db/migration/0000000001_create_user_migration.rb"
232
233
  - "./lib/rubypitaya/core/etcd_connector.rb"
233
234
  - "./lib/rubypitaya/core/handler_base.rb"
234
235
  - "./lib/rubypitaya/core/handler_router.rb"