rubypitaya 3.0.1 → 3.1.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.
Files changed (29) hide show
  1. checksums.yaml +4 -4
  2. data/lib/rubypitaya/app-template/Gemfile +3 -2
  3. data/lib/rubypitaya/app-template/Gemfile.lock +19 -19
  4. data/lib/rubypitaya/app-template/Makefile +1 -1
  5. data/lib/rubypitaya/app-template/app/app_initializer.rb +3 -1
  6. data/lib/rubypitaya/app-template/app/handlers/player_handler.rb +9 -3
  7. data/lib/rubypitaya/app-template/app/setup/rubypitaya.yml +1 -0
  8. data/lib/rubypitaya/app-template/docker/prod/Dockerfile +12 -3
  9. data/lib/rubypitaya/app-template/docker-compose.yml +4 -4
  10. data/lib/rubypitaya/app-template/helm/templates/deployments/rubypitaya.yaml +2 -0
  11. data/lib/rubypitaya/app-template/helm/templates/statefulsets/etcd.yaml +1 -1
  12. data/lib/rubypitaya/app-template/helm/templates/statefulsets/nats.yaml +1 -1
  13. data/lib/rubypitaya/app-template/helm/values.yaml +1 -0
  14. data/lib/rubypitaya/app-template/kubernetes/statefulset-etcd.yaml +1 -1
  15. data/lib/rubypitaya/app-template/kubernetes/statefulset-nats.yaml +1 -1
  16. data/lib/rubypitaya/app-template/kubernetes/statefulset-postgres.yaml +1 -1
  17. data/lib/rubypitaya/core/database_connector.rb +2 -1
  18. data/lib/rubypitaya/core/handler_base.rb +6 -5
  19. data/lib/rubypitaya/core/handler_router.rb +7 -2
  20. data/lib/rubypitaya/core/http_base.rb +20 -0
  21. data/lib/rubypitaya/core/http_routes.rb +1 -1
  22. data/lib/rubypitaya/core/instance_holder.rb +1 -1
  23. data/lib/rubypitaya/core/main.rb +5 -7
  24. data/lib/rubypitaya/core/spec-helpers/handler_spec_helper.rb +2 -1
  25. data/lib/rubypitaya/core/spec-helpers/setup_spec_helper.rb +4 -0
  26. data/lib/rubypitaya/core/status_codes.rb +1 -0
  27. data/lib/rubypitaya/core/templates/template_migration.rb.erb +4 -1
  28. data/lib/rubypitaya/version.rb +1 -1
  29. metadata +28 -27
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d50d6d5ffeeab38f9d623c33970eb87e4e89ad64e385f4fe57a8d414342e969a
4
- data.tar.gz: 7fb8db293deae83dd0de428a825588b9ca6418eab26a220ab983ac6b1737ab69
3
+ metadata.gz: 389476c46fdeca5de859eb5c321e9d00a7f6a5c6217fcc71f48846c2cd235e25
4
+ data.tar.gz: 52c092098d7e9e67a110177b09b00b3e028c5186488356b4fd90a465f2d20f47
5
5
  SHA512:
6
- metadata.gz: 88510c87137b193a0f4f1f2a12ad7fd7c2c9acb1be8d2aaeee7545b8f1832b380b4e57a4e9d072deef7e526cc87dfd86461584933fc4e9e0d5f466c520408831
7
- data.tar.gz: 341555828f6ed7c3996210cf64bc21cc36e756940b1f506cf81f62aaecbc0aadb18fe07fb9cc6c525d3455c4d45ff22e82efa257e6eee63d41b59b502a85c2c9
6
+ metadata.gz: bdcda255a6e884370d695a72fabc8a544cd1cb539fd58dcd9b6eda1e03cae4deda54aeb5b7c3f6718881d6cb4bd2cd24f8c65bd7f483d6ffb699000415c59bd5
7
+ data.tar.gz: '096980a813c199d27414fc584fae9e47436ce8a47347e47b9d00e92a348e9862d783b4b3b36c1e763899a377a0a24c08c9bff89fa86d1b5011be046fe718b235'
@@ -1,11 +1,12 @@
1
1
  source "https://rubygems.org"
2
2
 
3
- gem 'rubypitaya', '3.0.1'
3
+ gem 'rubypitaya', '3.1.1'
4
4
 
5
5
  group :development do
6
6
  gem 'pry', '0.14.1'
7
- gem 'bundler', '2.2.22'
8
7
  gem 'rspec', '3.10.0'
9
8
  gem 'listen', '3.7.0'
9
+ gem 'bundler', '2.2.22'
10
10
  gem 'cucumber', '7.0.0'
11
+ gem 'sinatra-contrib', '2.1.0'
11
12
  end
@@ -33,8 +33,8 @@ GEM
33
33
  cucumber-gherkin (~> 20.0, >= 20.0.1)
34
34
  cucumber-messages (~> 17.0, >= 17.0.1)
35
35
  cucumber-tag-expressions (~> 3.0, >= 3.0.1)
36
- cucumber-create-meta (6.0.1)
37
- cucumber-messages (~> 17.0, >= 17.0.1)
36
+ cucumber-create-meta (6.0.4)
37
+ cucumber-messages (~> 17.1, >= 17.1.1)
38
38
  sys-uname (~> 1.2, >= 1.2.2)
39
39
  cucumber-cucumber-expressions (12.1.3)
40
40
  cucumber-gherkin (20.0.1)
@@ -52,23 +52,23 @@ GEM
52
52
  grpc (~> 1.17)
53
53
  eventmachine (1.2.7)
54
54
  ffi (1.15.4)
55
- google-protobuf (3.18.0-x86_64-linux)
56
- googleapis-common-protos-types (1.2.0)
55
+ google-protobuf (3.18.1-x86_64-linux)
56
+ googleapis-common-protos-types (1.3.0)
57
57
  google-protobuf (~> 3.14)
58
- grpc (1.40.0-x86_64-linux)
59
- google-protobuf (~> 3.15)
58
+ grpc (1.41.1-x86_64-linux)
59
+ google-protobuf (~> 3.17)
60
60
  googleapis-common-protos-types (~> 1.0)
61
- i18n (1.8.10)
61
+ i18n (1.8.11)
62
62
  concurrent-ruby (~> 1.0)
63
63
  listen (3.7.0)
64
64
  rb-fsevent (~> 0.10, >= 0.10.3)
65
65
  rb-inotify (~> 0.9, >= 0.9.10)
66
66
  method_source (1.0.0)
67
- mime-types (3.3.1)
67
+ mime-types (3.4.1)
68
68
  mime-types-data (~> 3.2015)
69
- mime-types-data (3.2021.0901)
69
+ mime-types-data (3.2021.1115)
70
70
  minitest (5.14.4)
71
- mongo (2.15.0)
71
+ mongo (2.16.0)
72
72
  bson (>= 4.8.2, < 5.0.0)
73
73
  multi_json (1.15.0)
74
74
  multi_test (0.1.2)
@@ -88,7 +88,7 @@ GEM
88
88
  rb-fsevent (0.11.0)
89
89
  rb-inotify (0.10.1)
90
90
  ffi (~> 1.0)
91
- redis (4.4.0)
91
+ redis (4.5.1)
92
92
  rspec (3.10.0)
93
93
  rspec-core (~> 3.10.0)
94
94
  rspec-expectations (~> 3.10.0)
@@ -101,20 +101,19 @@ GEM
101
101
  rspec-mocks (3.10.2)
102
102
  diff-lcs (>= 1.2.0, < 2.0)
103
103
  rspec-support (~> 3.10.0)
104
- rspec-support (3.10.2)
104
+ rspec-support (3.10.3)
105
105
  ruby2_keywords (0.0.5)
106
- rubypitaya (3.0.1)
106
+ rubypitaya (3.1.1)
107
107
  activerecord (= 6.1.4.1)
108
108
  etcdv3 (= 0.11.4)
109
- google-protobuf (= 3.18.0)
110
- mongo (= 2.15.0)
109
+ google-protobuf (= 3.18.1)
110
+ mongo (= 2.16.0)
111
111
  nats (= 0.11.0)
112
112
  ostruct (= 0.4.0)
113
113
  pg (= 1.2.3)
114
114
  rake (= 13.0.6)
115
- redis (= 4.4.0)
115
+ redis (= 4.5.1)
116
116
  sinatra (= 2.1.0)
117
- sinatra-contrib (= 2.1.0)
118
117
  webrick (= 1.7.0)
119
118
  sinatra (2.1.0)
120
119
  mustermann (~> 1.0)
@@ -133,7 +132,7 @@ GEM
133
132
  tzinfo (2.0.4)
134
133
  concurrent-ruby (~> 1.0)
135
134
  webrick (1.7.0)
136
- zeitwerk (2.4.2)
135
+ zeitwerk (2.5.1)
137
136
 
138
137
  PLATFORMS
139
138
  x86_64-linux
@@ -144,7 +143,8 @@ DEPENDENCIES
144
143
  listen (= 3.7.0)
145
144
  pry (= 0.14.1)
146
145
  rspec (= 3.10.0)
147
- rubypitaya (= 3.0.1)
146
+ rubypitaya (= 3.1.1)
147
+ sinatra-contrib (= 2.1.0)
148
148
 
149
149
  BUNDLED WITH
150
150
  2.2.22
@@ -36,7 +36,7 @@ test-rspec:
36
36
 
37
37
  ## Run cucumber tests. FILE=something.feature
38
38
  test-cucumber:
39
- @docker-compose run --service-ports --rm rubypitaya bundle exec cucumber $(FILE)
39
+ @docker-compose run --service-ports --rm rubypitaya bundle exec cucumber --publish-quiet $(FILE)
40
40
 
41
41
  ## Update gems dependencies on Gemfile.lock
42
42
  update-dependencies:
@@ -5,9 +5,11 @@ class AppInitializer < RubyPitaya::InitializerBase
5
5
  # attributes:
6
6
  # - redis
7
7
  # - link: https://github.com/redis/redis-rb/
8
+ #
8
9
  # - mongo
9
10
  # - class: Mongo::Client
10
11
  # - link: https://docs.mongodb.com/ruby-driver/current/tutorials/quick-start/
12
+ #
11
13
  # - config
12
14
  # - class: RubyPitaya::Config
13
15
  # - link: https://gitlab.com/LucianoPC/ruby-pitaya/-/blob/master/lib/rubypitaya/core/config.rb
@@ -30,7 +32,7 @@ class AppInitializer < RubyPitaya::InitializerBase
30
32
  def run(initializer_content)
31
33
  playerBll = PlayerBLL.new
32
34
 
33
- PlayerHandler.bll.add_instance(:player, playerBll)
35
+ PlayerHandler.objects.add(:bll, playerBll)
34
36
  end
35
37
 
36
38
  def self.path
@@ -2,11 +2,11 @@ class PlayerHandler < RubyPitaya::HandlerBase
2
2
 
3
3
  # class: HandlerBase
4
4
  # attributes:
5
- # - @bll
5
+ # - @objects
6
6
  # - class: InstanceHolder
7
7
  # - methods:
8
8
  # - [](key)
9
- # - info: get bll by key
9
+ # - info: get object by key
10
10
  #
11
11
  # - @redis
12
12
  # - link: https://github.com/redis/redis-rb/
@@ -51,7 +51,7 @@ class PlayerHandler < RubyPitaya::HandlerBase
51
51
  user_id = @params[:userId]
52
52
 
53
53
  player = Player.find_by_user_id(user_id)
54
- player = @bll[:player].create_new_player(@setup, @config) if player.nil?
54
+ player = bll.create_new_player(@setup, @config) if player.nil?
55
55
 
56
56
  @session.uid = player.user_id
57
57
 
@@ -80,4 +80,10 @@ class PlayerHandler < RubyPitaya::HandlerBase
80
80
  data: player.to_hash,
81
81
  }
82
82
  end
83
+
84
+ private
85
+
86
+ def bll
87
+ @bll ||= @objects[:bll]
88
+ end
83
89
  end
@@ -1,6 +1,7 @@
1
1
  server:
2
2
  name: 'rubypitaya'
3
3
  environment: development
4
+ cheats: true
4
5
 
5
6
  nats:
6
7
  url: 'nats://nats:4222'
@@ -15,6 +15,18 @@ RUN bundle config --global jobs 4 && \
15
15
  bundle config --global without "development test" && \
16
16
  bundle install
17
17
 
18
+ RUN rm -rf /usr/local/bundle/cache && \
19
+ rm -rf /usr/local/bundle/build_info && \
20
+ rm -rf /usr/local/bundle/doc && \
21
+ rm -rf /usr/local/bundle/doc && \
22
+ find /usr/local/bundle/gems/grpc-*/src/ruby/lib/grpc/2.4/ -name "*.so" -delete && \
23
+ find /usr/local/bundle/gems/grpc-*/src/ruby/lib/grpc/2.5/ -name "*.so" -delete && \
24
+ find /usr/local/bundle/gems/grpc-*/src/ruby/lib/grpc/2.6/ -name "*.so" -delete && \
25
+ find /usr/local/bundle/gems/grpc-*/src/ruby/lib/grpc/2.7/ -name "*.so" -delete && \
26
+ find /usr/local/bundle/gems/ -name "*.c" -delete && \
27
+ find /usr/local/bundle/gems/ -name "*.o" -delete && \
28
+ find /usr/local/bundle/gems/ -name "spec" -exec rm -rv {} +
29
+
18
30
  # 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
19
31
 
20
32
  FROM ruby:3.0.2-slim
@@ -29,9 +41,6 @@ RUN apt update && \
29
41
  && rm -rf /var/lib/apt/lists/*
30
42
 
31
43
  COPY --from=builder /usr/local/bundle /usr/local/bundle
32
- RUN rm -rf /usr/local/bundle/cache
33
- RUN rm -rf /usr/local/bundle/build_info
34
- RUN rm -rf /usr/local/bundle/doc
35
44
 
36
45
  # COPY --from=builder /kubectl /usr/local/bin/kubectl
37
46
  # RUN chmod +x /usr/local/bin/kubectl
@@ -1,12 +1,12 @@
1
1
  version: '3'
2
2
  services:
3
3
  nats:
4
- image: 'nats:2.1.4'
4
+ image: 'nats:2.6.2-alpine'
5
5
  ports:
6
6
  - '4222:4222'
7
7
 
8
8
  etcd:
9
- image: 'appcelerator/etcd:3.0.15'
9
+ image: 'appcelerator/etcd:3.3.3'
10
10
  ports:
11
11
  - '2379:2379'
12
12
  - '2380:2380'
@@ -17,7 +17,7 @@ services:
17
17
  - '9001:6379'
18
18
 
19
19
  db:
20
- image: 'postgres:9.6.17'
20
+ image: 'postgres:14.0-alpine'
21
21
  volumes:
22
22
  - 'postgres:/var/lib/postgresql/data'
23
23
  environment:
@@ -27,7 +27,7 @@ services:
27
27
  - '9100:5432'
28
28
 
29
29
  mongo:
30
- image: mongo:5.0.0
30
+ image: mongo:5.0.3
31
31
  restart: always
32
32
  ports:
33
33
  - 27017:27017
@@ -27,6 +27,8 @@ spec:
27
27
  env:
28
28
  - name: RUBYPITAYA_SERVER_ENVIRONMENT
29
29
  value: {{ .Values.rubypitaya.server.environment | quote }}
30
+ - name: RUBYPITAYA_SERVER_CHEATS
31
+ value: {{ .Values.rubypitaya.server.cheats | quote }}
30
32
  - name: RUBYPITAYA_NATS_URL
31
33
  value: "nats://nats.{{ .Values.namespace }}.svc.cluster.local:4222"
32
34
  - name: RUBYPITAYA_ETCD_URL
@@ -20,7 +20,7 @@ spec:
20
20
  spec:
21
21
  containers:
22
22
  - name: etcd
23
- image: appcelerator/etcd:3.0.15
23
+ image: appcelerator/etcd:3.3.3
24
24
  ports:
25
25
  - containerPort: 2379
26
26
  name: etcd-2379
@@ -20,7 +20,7 @@ spec:
20
20
  spec:
21
21
  containers:
22
22
  - name: nats
23
- image: nats:2.1.4
23
+ image: nats:2.6.2-alpine
24
24
  ports:
25
25
  - containerPort: 4222
26
26
  name: nats
@@ -9,6 +9,7 @@ connector:
9
9
  rubypitaya:
10
10
  server:
11
11
  environment: production
12
+ cheats: true
12
13
  image:
13
14
  repository: [metagame-repository-link]
14
15
  tag: latest
@@ -17,7 +17,7 @@ spec:
17
17
  spec:
18
18
  containers:
19
19
  - name: etcd
20
- image: appcelerator/etcd:3.0.15
20
+ image: appcelerator/etcd:3.3.3
21
21
  ports:
22
22
  - containerPort: 2379
23
23
  name: etcd-2379
@@ -17,7 +17,7 @@ spec:
17
17
  spec:
18
18
  containers:
19
19
  - name: nats
20
- image: nats:2.1.4
20
+ image: nats:2.6.2-alpine
21
21
  ports:
22
22
  - containerPort: 4222
23
23
  name: nats
@@ -17,7 +17,7 @@ spec:
17
17
  spec:
18
18
  containers:
19
19
  - name: postgres
20
- image: postgres:9.6.17
20
+ image: postgres:14.0-alpine
21
21
  env:
22
22
  - name: POSTGRES_USER
23
23
  value: "postgres"
@@ -5,8 +5,9 @@ module RubyPitaya
5
5
 
6
6
  class DatabaseConnector
7
7
 
8
- def initialize(database_config)
8
+ def initialize(database_config, logger = nil)
9
9
  @database_config = database_config
10
+ @logger ||= ActiveSupport::Logger.new(STDOUT)
10
11
  end
11
12
 
12
13
  def connect
@@ -5,9 +5,9 @@ module RubyPitaya
5
5
  class HandlerBase
6
6
 
7
7
  class_attribute :non_authenticated_routes, default: []
8
- class_attribute :handler_bll, default: nil, instance_reader: false, instance_writer: false, instance_accessor: false, instance_predicate: false
8
+ class_attribute :handler_objects, default: nil, instance_reader: false, instance_writer: false, instance_accessor: false, instance_predicate: false
9
9
 
10
- attr_reader :bll, :log, :redis, :setup, :config, :params, :session, :postman
10
+ attr_reader :objects, :log, :redis, :setup, :config, :params, :session, :postman
11
11
 
12
12
  def initialize
13
13
  @log = nil
@@ -18,7 +18,7 @@ module RubyPitaya
18
18
  @session = nil
19
19
  @postman = nil
20
20
 
21
- @bll = self.class.bll
21
+ @objects = self.class.objects
22
22
  end
23
23
 
24
24
  def set_attributes(log, redis, mongo, setup, config, params, session, postman)
@@ -32,8 +32,9 @@ module RubyPitaya
32
32
  @postman = postman
33
33
  end
34
34
 
35
- def self.bll
36
- self.handler_bll ||= InstanceHolder.new
35
+ def self.objects
36
+ self.handler_objects ||= InstanceHolder.new
37
+ return self.handler_objects
37
38
  end
38
39
 
39
40
  def self.non_authenticated_actions(*action_names)
@@ -8,7 +8,9 @@ module RubyPitaya
8
8
 
9
9
  INVALID_ACTION_NAMES = ['initialize', 'set_attributes']
10
10
 
11
- def initialize()
11
+ def initialize(is_cheats_enabled)
12
+ @is_cheats_enabled = is_cheats_enabled
13
+
12
14
  routes_path = Path::ROUTES_FILE_PATH
13
15
  handler_folder_paths = Path::Plugins::HANDLERS_FOLDER_PATHS + [Path::HANDLERS_FOLDER_PATH]
14
16
 
@@ -35,7 +37,10 @@ module RubyPitaya
35
37
  end
36
38
 
37
39
  def import_handler_files(handler_folder_path)
38
- Gem.find_files("#{handler_folder_path}/*.rb").each { |path| require path }
40
+ handler_files = Gem.find_files("#{handler_folder_path}/*.rb")
41
+ handler_files = handler_files.select { |a| !a[/.+_cheats.rb/] && !a[/.+_cheat.rb/] } unless @is_cheats_enabled
42
+
43
+ handler_files.each { |path| require path }
39
44
  end
40
45
 
41
46
  def import_handler_classes
@@ -0,0 +1,20 @@
1
+ require 'rubypitaya/core/instance_holder'
2
+
3
+ module RubyPitaya
4
+
5
+ class HttpBase
6
+
7
+ class_attribute :handler_objects, default: nil, instance_reader: false, instance_writer: false, instance_accessor: false, instance_predicate: false
8
+
9
+ attr_reader :objects
10
+
11
+ def initialize
12
+ @objects = self.class.objects
13
+ end
14
+
15
+ def self.objects
16
+ self.handler_objects ||= InstanceHolder.new
17
+ return self.handler_objects
18
+ end
19
+ end
20
+ end
@@ -23,12 +23,12 @@ module RubyPitaya
23
23
  before do
24
24
  content_type :json
25
25
 
26
- @bll = settings.bll
27
26
  @log = settings.log
28
27
  @mongo = settings.mongo
29
28
  @setup = settings.setup
30
29
  @redis = settings.redis
31
30
  @config = settings.config
31
+ @objects = settings.objects
32
32
  @session = nil
33
33
  @postman = nil
34
34
 
@@ -6,7 +6,7 @@ module RubyPitaya
6
6
  @instances = {}
7
7
  end
8
8
 
9
- def add_instance(key, instance)
9
+ def add(key, instance)
10
10
  @instances[key] = instance
11
11
  end
12
12
 
@@ -28,8 +28,6 @@ module RubyPitaya
28
28
 
29
29
  class Main
30
30
 
31
- attr_reader :redis_connector, :config, :bll
32
-
33
31
  def initialize
34
32
  @setup = Setup.new
35
33
  @environment_name = @setup.fetch('rubypitaya.server.environment', 'development')
@@ -69,7 +67,7 @@ module RubyPitaya
69
67
  @redis_connector.connect
70
68
 
71
69
  @database_config = DatabaseConfig.new
72
- @database_connector = DatabaseConnector.new(@database_config)
70
+ @database_connector = DatabaseConnector.new(@database_config, @log)
73
71
  @database_connector.connect
74
72
 
75
73
  @mongo_address = @setup['rubypitaya.mongo.url']
@@ -85,7 +83,7 @@ module RubyPitaya
85
83
  @config = Config.new
86
84
  @config.auto_reload if @is_development_environment
87
85
 
88
- @bll = InstanceHolder.new
86
+ @objects = InstanceHolder.new
89
87
 
90
88
  @initializer_content = InitializerContent.new(@log,
91
89
  @redis_connector.redis,
@@ -95,7 +93,8 @@ module RubyPitaya
95
93
  @initializer_broadcast = InitializerBroadcast.new
96
94
  @initializer_broadcast.run(@initializer_content)
97
95
 
98
- @handler_router = HandlerRouter.new()
96
+ @is_cheats_enabled = @setup.fetch('rubypitaya.server.cheats', false)
97
+ @handler_router = HandlerRouter.new(@is_cheats_enabled)
99
98
 
100
99
  run_http
101
100
  run_server
@@ -104,12 +103,12 @@ module RubyPitaya
104
103
  private
105
104
 
106
105
  def run_http
107
- HttpRoutes.set :bll, @bll
108
106
  HttpRoutes.set :log, @log
109
107
  HttpRoutes.set :redis, @redis_connector.redis
110
108
  HttpRoutes.set :mongo, @mongo_connector.mongo
111
109
  HttpRoutes.set :setup, @setup
112
110
  HttpRoutes.set :config, @config
111
+ HttpRoutes.set :objects, @objects
113
112
  HttpRoutes.set :views, [Path::HTTP_VIEWS_PATH] + Path::Plugins::HTTP_VIEWS_PATHS
114
113
 
115
114
  HttpRoutes.auto_reload if @is_development_environment
@@ -173,7 +172,6 @@ module RubyPitaya
173
172
  @session.update(session_id, session_uid, session_data, metadata,
174
173
  frontend_id)
175
174
 
176
- # TODO: Validate if handler and action names are not nil
177
175
  handler_name, action_name = message_route.scan(/\A\w+\.(\w+)\.(\w+)\z/)[0]
178
176
 
179
177
  @log.info "request -> route: #{message_route}"
@@ -23,7 +23,8 @@ module RubyPitaya
23
23
  initialize_redis
24
24
  initialize_mongo
25
25
 
26
- @@handler_router ||= HandlerRouter.new()
26
+ is_cheats_enabled = @@setup.fetch('rubypitaya.server.cheats', false)
27
+ @@handler_router ||= HandlerRouter.new(is_cheats_enabled)
27
28
 
28
29
 
29
30
  @@initializer_content = InitializerContent.new(@@log,
@@ -24,6 +24,10 @@ module RubyPitaya
24
24
  @setup_mock = merge_recursively(@setup_mock, add_hash)
25
25
  end
26
26
 
27
+ def fetch(*args)
28
+ @setup_mock.fetch(*args)
29
+ end
30
+
27
31
  private
28
32
 
29
33
  def undig(*keys, value)
@@ -5,6 +5,7 @@ module RubyPitaya
5
5
  CODE_OK = 'RP-200'
6
6
 
7
7
  # Error codes
8
+ CODE_ERROR = 'RP-201'
8
9
  CODE_UNKNOWN = 'RP-000'
9
10
  CODE_HANDLER_NOT_FOUND = 'RP-001'
10
11
  CODE_ACTION_NOT_FOUND = 'RP-002'
@@ -2,11 +2,14 @@ require 'active_record'
2
2
 
3
3
  class <%= class_name %> < ActiveRecord::Migration[6.1]
4
4
 
5
- enable_extension 'pgcrypto'
5
+ enable_extension 'pgcrypto' unless extension_enabled?('pgcrypto')
6
+
7
+ # Migration suported types reference: https://guides.rubyonrails.org/v3.2/migrations.html#supported-types
6
8
 
7
9
  def change
8
10
  create_table :[table-name-here-in-plural], id: :uuid do |t|
9
11
  # t.belongs_to :user, type: :uuid, foreing_key: true
12
+ # t.belongs_to :user, type: :uuid, foreing_key: true, index: { unique: true }
10
13
  t.timestamps null: false
11
14
  end
12
15
  end
@@ -1,3 +1,3 @@
1
1
  module RubyPitaya
2
- VERSION = '3.0.1'
2
+ VERSION = '3.1.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: 3.0.1
4
+ version: 3.1.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: 2021-09-24 00:00:00.000000000 Z
11
+ date: 2021-11-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pg
@@ -58,28 +58,28 @@ dependencies:
58
58
  requirements:
59
59
  - - '='
60
60
  - !ruby/object:Gem::Version
61
- version: 2.15.0
61
+ version: 2.16.0
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - '='
67
67
  - !ruby/object:Gem::Version
68
- version: 2.15.0
68
+ version: 2.16.0
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: redis
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - '='
74
74
  - !ruby/object:Gem::Version
75
- version: 4.4.0
75
+ version: 4.5.1
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - '='
81
81
  - !ruby/object:Gem::Version
82
- version: 4.4.0
82
+ version: 4.5.1
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: etcdv3
85
85
  requirement: !ruby/object:Gem::Requirement
@@ -156,98 +156,98 @@ dependencies:
156
156
  requirements:
157
157
  - - '='
158
158
  - !ruby/object:Gem::Version
159
- version: 3.18.0
159
+ version: 3.18.1
160
160
  type: :runtime
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
164
  - - '='
165
165
  - !ruby/object:Gem::Version
166
- version: 3.18.0
166
+ version: 3.18.1
167
167
  - !ruby/object:Gem::Dependency
168
- name: sinatra-contrib
168
+ name: pry
169
169
  requirement: !ruby/object:Gem::Requirement
170
170
  requirements:
171
171
  - - '='
172
172
  - !ruby/object:Gem::Version
173
- version: 2.1.0
174
- type: :runtime
173
+ version: 0.14.1
174
+ type: :development
175
175
  prerelease: false
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
178
  - - '='
179
179
  - !ruby/object:Gem::Version
180
- version: 2.1.0
180
+ version: 0.14.1
181
181
  - !ruby/object:Gem::Dependency
182
- name: pry
182
+ name: rspec
183
183
  requirement: !ruby/object:Gem::Requirement
184
184
  requirements:
185
185
  - - '='
186
186
  - !ruby/object:Gem::Version
187
- version: 0.14.1
187
+ version: 3.10.0
188
188
  type: :development
189
189
  prerelease: false
190
190
  version_requirements: !ruby/object:Gem::Requirement
191
191
  requirements:
192
192
  - - '='
193
193
  - !ruby/object:Gem::Version
194
- version: 0.14.1
194
+ version: 3.10.0
195
195
  - !ruby/object:Gem::Dependency
196
- name: bundler
196
+ name: listen
197
197
  requirement: !ruby/object:Gem::Requirement
198
198
  requirements:
199
199
  - - '='
200
200
  - !ruby/object:Gem::Version
201
- version: 2.2.22
201
+ version: 3.7.0
202
202
  type: :development
203
203
  prerelease: false
204
204
  version_requirements: !ruby/object:Gem::Requirement
205
205
  requirements:
206
206
  - - '='
207
207
  - !ruby/object:Gem::Version
208
- version: 2.2.22
208
+ version: 3.7.0
209
209
  - !ruby/object:Gem::Dependency
210
- name: rspec
210
+ name: bundler
211
211
  requirement: !ruby/object:Gem::Requirement
212
212
  requirements:
213
213
  - - '='
214
214
  - !ruby/object:Gem::Version
215
- version: 3.10.0
215
+ version: 2.2.22
216
216
  type: :development
217
217
  prerelease: false
218
218
  version_requirements: !ruby/object:Gem::Requirement
219
219
  requirements:
220
220
  - - '='
221
221
  - !ruby/object:Gem::Version
222
- version: 3.10.0
222
+ version: 2.2.22
223
223
  - !ruby/object:Gem::Dependency
224
- name: listen
224
+ name: cucumber
225
225
  requirement: !ruby/object:Gem::Requirement
226
226
  requirements:
227
227
  - - '='
228
228
  - !ruby/object:Gem::Version
229
- version: 3.7.0
229
+ version: 7.0.0
230
230
  type: :development
231
231
  prerelease: false
232
232
  version_requirements: !ruby/object:Gem::Requirement
233
233
  requirements:
234
234
  - - '='
235
235
  - !ruby/object:Gem::Version
236
- version: 3.7.0
236
+ version: 7.0.0
237
237
  - !ruby/object:Gem::Dependency
238
- name: cucumber
238
+ name: sinatra-contrib
239
239
  requirement: !ruby/object:Gem::Requirement
240
240
  requirements:
241
241
  - - '='
242
242
  - !ruby/object:Gem::Version
243
- version: 7.0.0
243
+ version: 2.1.0
244
244
  type: :development
245
245
  prerelease: false
246
246
  version_requirements: !ruby/object:Gem::Requirement
247
247
  requirements:
248
248
  - - '='
249
249
  - !ruby/object:Gem::Version
250
- version: 7.0.0
250
+ version: 2.1.0
251
251
  description: RubyPitaya is an application to create servers using the pitaya protocol.
252
252
  email:
253
253
  - lucianopcbr@gmail.com
@@ -342,6 +342,7 @@ files:
342
342
  - "./lib/rubypitaya/core/handler_base.rb"
343
343
  - "./lib/rubypitaya/core/handler_router.rb"
344
344
  - "./lib/rubypitaya/core/helpers/setup_helper.rb"
345
+ - "./lib/rubypitaya/core/http_base.rb"
345
346
  - "./lib/rubypitaya/core/http_routes.rb"
346
347
  - "./lib/rubypitaya/core/initializer_base.rb"
347
348
  - "./lib/rubypitaya/core/initializer_broadcast.rb"