rubypitaya 1.4.1 → 1.5.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 -2
- data/lib/rubypitaya/app-template/app/handlers/hello_world_handler.rb +10 -8
- data/lib/rubypitaya/app-template/config/routes.rb +11 -0
- data/lib/rubypitaya/core/handler_router.rb +18 -1
- data/lib/rubypitaya/core/main.rb +3 -1
- data/lib/rubypitaya/core/path.rb +2 -0
- data/lib/rubypitaya/core/routes_base.rb +36 -0
- data/lib/rubypitaya/version.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 8ce9fce444231d413f663d1af94356f0a04204af86050e6041a24f3b2bf37d8d
|
|
4
|
+
data.tar.gz: cc4c79730ea4e46891bff56f635c0135c62adc0f5ce06c6a473567bd46a48b78
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 46fff9b02c5d40577864c21bd226d7b412b93d70af22612b3dfe39409546d2b14361f2f63d0ba0f4c07db5fe118908d4700b804c5ad134f7ceb06e8c94b5cdc2
|
|
7
|
+
data.tar.gz: 40b3def401682e4f98e6efaabaad9afc384128f6e0a39a3ae495d36643155bab86c1913969fd3ac35f647275836b06c24aafd818dcf7e2657618ffb1754587ee
|
|
@@ -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.
|
|
65
|
+
rubypitaya (1.5.0)
|
|
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.
|
|
88
|
+
rubypitaya (= 1.5.0)
|
|
89
89
|
|
|
90
90
|
BUNDLED WITH
|
|
91
91
|
1.17.2
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
|
|
1
|
+
module MyApp
|
|
2
|
+
class HelloWorldHandler < RubyPitaya::HandlerBase
|
|
2
3
|
|
|
3
|
-
|
|
4
|
+
non_authenticated_actions :sayHello
|
|
4
5
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
def sayHello
|
|
7
|
+
response = {
|
|
8
|
+
code: 'RP-200',
|
|
9
|
+
msg: 'Hello!'
|
|
10
|
+
}
|
|
11
|
+
end
|
|
10
12
|
end
|
|
11
|
-
end
|
|
13
|
+
end
|
|
@@ -4,11 +4,26 @@ module RubyPitaya
|
|
|
4
4
|
|
|
5
5
|
class HandlerRouter
|
|
6
6
|
|
|
7
|
-
def initialize(handler_folder_path)
|
|
7
|
+
def initialize(handler_folder_path, routes_path)
|
|
8
|
+
import_routes_file(routes_path)
|
|
8
9
|
import_handler_files(handler_folder_path)
|
|
10
|
+
|
|
11
|
+
import_routes_class
|
|
9
12
|
import_handler_classes
|
|
10
13
|
end
|
|
11
14
|
|
|
15
|
+
def import_routes_file(routes_path)
|
|
16
|
+
require routes_path
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def import_routes_class
|
|
20
|
+
routes_classes = ObjectSpace.each_object(RoutesBase.singleton_class).select do |klass|
|
|
21
|
+
klass != RoutesBase
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
@routes = routes_classes.first.new
|
|
25
|
+
end
|
|
26
|
+
|
|
12
27
|
def import_handler_files(handler_folder_path)
|
|
13
28
|
Gem.find_files("#{handler_folder_path}/*.rb").each { |path| require path }
|
|
14
29
|
end
|
|
@@ -22,6 +37,8 @@ module RubyPitaya
|
|
|
22
37
|
|
|
23
38
|
@handler_name_map = @handlers.map do |handler|
|
|
24
39
|
handler_name = handler.class.to_s
|
|
40
|
+
handler_name = @routes.get_new_handler_name(handler_name)
|
|
41
|
+
handler_name = handler_name.split('::').last
|
|
25
42
|
handler_name = handler_name[0].downcase + handler_name[1..-1]
|
|
26
43
|
|
|
27
44
|
[handler_name, handler]
|
data/lib/rubypitaya/core/main.rb
CHANGED
|
@@ -7,6 +7,7 @@ require 'rubypitaya/core/config'
|
|
|
7
7
|
require 'rubypitaya/core/session'
|
|
8
8
|
require 'rubypitaya/core/postman'
|
|
9
9
|
require 'rubypitaya/core/parameters'
|
|
10
|
+
require 'rubypitaya/core/routes_base'
|
|
10
11
|
require 'rubypitaya/core/handler_router'
|
|
11
12
|
require 'rubypitaya/core/etcd_connector'
|
|
12
13
|
require 'rubypitaya/core/nats_connector'
|
|
@@ -69,7 +70,8 @@ module RubyPitaya
|
|
|
69
70
|
@initializer_broadcast = InitializerBroadcast.new
|
|
70
71
|
@initializer_broadcast.run(@initializer_content)
|
|
71
72
|
|
|
72
|
-
@handler_router = HandlerRouter.new(Path::HANDLERS_FOLDER_PATH
|
|
73
|
+
@handler_router = HandlerRouter.new(Path::HANDLERS_FOLDER_PATH,
|
|
74
|
+
Path::ROUTES_FILE_PATH)
|
|
73
75
|
|
|
74
76
|
run_server
|
|
75
77
|
end
|
data/lib/rubypitaya/core/path.rb
CHANGED
|
@@ -9,5 +9,7 @@ module RubyPitaya
|
|
|
9
9
|
HANDLERS_FOLDER_PATH = File.join(Dir.pwd, 'app/handlers/')
|
|
10
10
|
APP_CONFIG_FOLDER_PATH = File.join(Dir.pwd, 'app/config/')
|
|
11
11
|
MIGRATIONS_FOLDER_PATH = File.join(Dir.pwd, 'db/migrate/')
|
|
12
|
+
|
|
13
|
+
ROUTES_FILE_PATH = File.join(Dir.pwd, 'config/routes.rb')
|
|
12
14
|
end
|
|
13
15
|
end
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
|
|
2
|
+
module RubyPitaya
|
|
3
|
+
|
|
4
|
+
class RoutesBase
|
|
5
|
+
|
|
6
|
+
def initialize
|
|
7
|
+
@handler_name_map = {}
|
|
8
|
+
|
|
9
|
+
setup
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def setup
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def match(route_name, to:)
|
|
16
|
+
handler_name, action_name = to.split('#')
|
|
17
|
+
new_handler_name, new_action_name = route_name.split('.')
|
|
18
|
+
|
|
19
|
+
if new_action_name.nil?
|
|
20
|
+
set_handler_name(handler_name, new_handler_name)
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def get_new_handler_name(handler_name)
|
|
25
|
+
return handler_name unless @handler_name_map.include?(handler_name)
|
|
26
|
+
|
|
27
|
+
@handler_name_map[handler_name]
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
private
|
|
31
|
+
|
|
32
|
+
def set_handler_name(handler_name, new_handler_name)
|
|
33
|
+
@handler_name_map[handler_name] = new_handler_name
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
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: 1.
|
|
4
|
+
version: 1.5.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: 2020-05-
|
|
11
|
+
date: 2020-05-30 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: pg
|
|
@@ -203,6 +203,7 @@ files:
|
|
|
203
203
|
- "./lib/rubypitaya/app-template/app/models/user.rb"
|
|
204
204
|
- "./lib/rubypitaya/app-template/bin/console"
|
|
205
205
|
- "./lib/rubypitaya/app-template/config/database.yml"
|
|
206
|
+
- "./lib/rubypitaya/app-template/config/routes.rb"
|
|
206
207
|
- "./lib/rubypitaya/app-template/db/migrate/001_create_user_migration.rb"
|
|
207
208
|
- "./lib/rubypitaya/app-template/db/migrate/002_create_player_migration.rb"
|
|
208
209
|
- "./lib/rubypitaya/app-template/docker-compose.yml"
|
|
@@ -227,6 +228,7 @@ files:
|
|
|
227
228
|
- "./lib/rubypitaya/core/path.rb"
|
|
228
229
|
- "./lib/rubypitaya/core/postman.rb"
|
|
229
230
|
- "./lib/rubypitaya/core/redis_connector.rb"
|
|
231
|
+
- "./lib/rubypitaya/core/routes_base.rb"
|
|
230
232
|
- "./lib/rubypitaya/core/session.rb"
|
|
231
233
|
- "./lib/rubypitaya/version.rb"
|
|
232
234
|
- bin/rubypitaya
|