rubypitaya 1.8.1 → 2.2.1

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 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"