jetra 1.2.0 → 1.3.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/jetra.rb +1 -1
- data/lib/jetra/adapter/grpc.rb +71 -71
- data/lib/jetra/adapter/grpc/jetra_pb.rb +28 -28
- data/lib/jetra/adapter/grpc/jetra_services_pb.rb +24 -24
- data/lib/jetra/adapter/rack.rb +62 -62
- data/lib/jetra/adapter/thrift.rb +110 -110
- data/lib/jetra/adapter/thrift/jetra_constants.rb +10 -10
- data/lib/jetra/adapter/thrift/jetra_types.rb +46 -46
- data/lib/jetra/adapter/thrift/service.rb +81 -81
- data/lib/jetra/application.rb +9 -9
- data/lib/jetra/base.rb +311 -311
- data/lib/jetra/builder.rb +50 -50
- data/lib/jetra/combiner.rb +52 -52
- data/lib/jetra/middleware/sample.rb +29 -29
- data/lib/jetra/middleware/validater.rb +36 -36
- data/lib/jetra/version.rb +4 -4
- metadata +3 -4
data/lib/jetra/builder.rb
CHANGED
@@ -1,51 +1,51 @@
|
|
1
|
-
require "jetra/application"
|
2
|
-
|
3
|
-
module Jetra
|
4
|
-
|
5
|
-
class Builder
|
6
|
-
|
7
|
-
def initialize(&block)
|
8
|
-
@use = []
|
9
|
-
instance_eval(&block) if block_given?
|
10
|
-
|
11
|
-
@app = build_app
|
12
|
-
end
|
13
|
-
|
14
|
-
def call(route, params={})
|
15
|
-
@app.call(route, params)
|
16
|
-
end
|
17
|
-
|
18
|
-
def routes
|
19
|
-
@run.routes
|
20
|
-
end
|
21
|
-
|
22
|
-
def to_app
|
23
|
-
|
24
|
-
newApp = Jetra::Application.new(self)
|
25
|
-
routes.each_key do |route|
|
26
|
-
eval("newApp.define_singleton_method(route) do |params={}| ; @app.call(route, params) ; end ")
|
27
|
-
end
|
28
|
-
|
29
|
-
eval("newApp.define_singleton_method(:method_missing) do |methodName, params={}| ; @app.call(methodName, params) ; end ")
|
30
|
-
|
31
|
-
newApp
|
32
|
-
end
|
33
|
-
|
34
|
-
private
|
35
|
-
|
36
|
-
def use(middleware)
|
37
|
-
@use << proc { |app| middleware.new(app) }
|
38
|
-
end
|
39
|
-
|
40
|
-
def run(app)
|
41
|
-
@run = app
|
42
|
-
end
|
43
|
-
|
44
|
-
def build_app
|
45
|
-
app = @run
|
46
|
-
fail "missing run statement" unless app
|
47
|
-
app = @use.reverse.inject(app) { |a,e| e[a] }
|
48
|
-
app
|
49
|
-
end
|
50
|
-
end
|
1
|
+
require "jetra/application"
|
2
|
+
|
3
|
+
module Jetra
|
4
|
+
|
5
|
+
class Builder
|
6
|
+
|
7
|
+
def initialize(&block)
|
8
|
+
@use = []
|
9
|
+
instance_eval(&block) if block_given?
|
10
|
+
|
11
|
+
@app = build_app
|
12
|
+
end
|
13
|
+
|
14
|
+
def call(route, params={})
|
15
|
+
@app.call(route, params)
|
16
|
+
end
|
17
|
+
|
18
|
+
def routes
|
19
|
+
@run.routes
|
20
|
+
end
|
21
|
+
|
22
|
+
def to_app
|
23
|
+
|
24
|
+
newApp = Jetra::Application.new(self)
|
25
|
+
routes.each_key do |route|
|
26
|
+
eval("newApp.define_singleton_method(route) do |params={}| ; @app.call(route, params) ; end ")
|
27
|
+
end
|
28
|
+
|
29
|
+
eval("newApp.define_singleton_method(:method_missing) do |methodName, params={}| ; @app.call(methodName, params) ; end ")
|
30
|
+
|
31
|
+
newApp
|
32
|
+
end
|
33
|
+
|
34
|
+
private
|
35
|
+
|
36
|
+
def use(middleware)
|
37
|
+
@use << proc { |app| middleware.new(app) }
|
38
|
+
end
|
39
|
+
|
40
|
+
def run(app)
|
41
|
+
@run = app
|
42
|
+
end
|
43
|
+
|
44
|
+
def build_app
|
45
|
+
app = @run
|
46
|
+
fail "missing run statement" unless app
|
47
|
+
app = @use.reverse.inject(app) { |a,e| e[a] }
|
48
|
+
app
|
49
|
+
end
|
50
|
+
end
|
51
51
|
end
|
data/lib/jetra/combiner.rb
CHANGED
@@ -1,53 +1,53 @@
|
|
1
|
-
require "jetra/application"
|
2
|
-
|
3
|
-
module Jetra
|
4
|
-
|
5
|
-
class Combiner
|
6
|
-
|
7
|
-
def initialize(&block)
|
8
|
-
|
9
|
-
@leader = nil
|
10
|
-
@routes = {}
|
11
|
-
|
12
|
-
instance_eval(&block) if block_given?
|
13
|
-
|
14
|
-
fail "missing mount statement" unless @leader
|
15
|
-
end
|
16
|
-
|
17
|
-
def call(route, params={})
|
18
|
-
if app = @routes[route]
|
19
|
-
app.call(route, params)
|
20
|
-
else
|
21
|
-
@leader.call(route, params)
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
def routes
|
26
|
-
@routes
|
27
|
-
end
|
28
|
-
|
29
|
-
def to_app
|
30
|
-
|
31
|
-
newApp = Jetra::Application.new(self)
|
32
|
-
routes.each_key do |route|
|
33
|
-
eval("newApp.define_singleton_method(route) do |params={}| ; @app.call(route, params) ; end ")
|
34
|
-
end
|
35
|
-
|
36
|
-
eval("newApp.define_singleton_method(:method_missing) do |method_name, params={}| ; @app.call(method_name, params) ; end ")
|
37
|
-
|
38
|
-
newApp
|
39
|
-
end
|
40
|
-
|
41
|
-
private
|
42
|
-
|
43
|
-
def mount(app)
|
44
|
-
|
45
|
-
app.routes.each_key do |route|
|
46
|
-
@routes[route] ||= app
|
47
|
-
end
|
48
|
-
|
49
|
-
@leader ||= app
|
50
|
-
end
|
51
|
-
|
52
|
-
end
|
1
|
+
require "jetra/application"
|
2
|
+
|
3
|
+
module Jetra
|
4
|
+
|
5
|
+
class Combiner
|
6
|
+
|
7
|
+
def initialize(&block)
|
8
|
+
|
9
|
+
@leader = nil
|
10
|
+
@routes = {}
|
11
|
+
|
12
|
+
instance_eval(&block) if block_given?
|
13
|
+
|
14
|
+
fail "missing mount statement" unless @leader
|
15
|
+
end
|
16
|
+
|
17
|
+
def call(route, params={})
|
18
|
+
if app = @routes[route]
|
19
|
+
app.call(route, params)
|
20
|
+
else
|
21
|
+
@leader.call(route, params)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def routes
|
26
|
+
@routes
|
27
|
+
end
|
28
|
+
|
29
|
+
def to_app
|
30
|
+
|
31
|
+
newApp = Jetra::Application.new(self)
|
32
|
+
routes.each_key do |route|
|
33
|
+
eval("newApp.define_singleton_method(route) do |params={}| ; @app.call(route, params) ; end ")
|
34
|
+
end
|
35
|
+
|
36
|
+
eval("newApp.define_singleton_method(:method_missing) do |method_name, params={}| ; @app.call(method_name, params) ; end ")
|
37
|
+
|
38
|
+
newApp
|
39
|
+
end
|
40
|
+
|
41
|
+
private
|
42
|
+
|
43
|
+
def mount(app)
|
44
|
+
|
45
|
+
app.routes.each_key do |route|
|
46
|
+
@routes[route] ||= app
|
47
|
+
end
|
48
|
+
|
49
|
+
@leader ||= app
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
53
53
|
end
|
@@ -1,30 +1,30 @@
|
|
1
|
-
module Jetra
|
2
|
-
|
3
|
-
module Middleware
|
4
|
-
|
5
|
-
#简单的中间件示例
|
6
|
-
class Sample
|
7
|
-
|
8
|
-
def initialize(app)
|
9
|
-
@app = app
|
10
|
-
end
|
11
|
-
|
12
|
-
def call(route, params)
|
13
|
-
|
14
|
-
#you can do something you like before call
|
15
|
-
|
16
|
-
#puts "sample middleware call start.."
|
17
|
-
|
18
|
-
response = @app.call(route, params)
|
19
|
-
|
20
|
-
#puts "sample middleware call finish.."
|
21
|
-
|
22
|
-
#you can do something you like after call
|
23
|
-
|
24
|
-
response
|
25
|
-
end
|
26
|
-
|
27
|
-
end
|
28
|
-
|
29
|
-
end
|
1
|
+
module Jetra
|
2
|
+
|
3
|
+
module Middleware
|
4
|
+
|
5
|
+
#简单的中间件示例
|
6
|
+
class Sample
|
7
|
+
|
8
|
+
def initialize(app)
|
9
|
+
@app = app
|
10
|
+
end
|
11
|
+
|
12
|
+
def call(route, params)
|
13
|
+
|
14
|
+
#you can do something you like before call
|
15
|
+
|
16
|
+
#puts "sample middleware call start.."
|
17
|
+
|
18
|
+
response = @app.call(route, params)
|
19
|
+
|
20
|
+
#puts "sample middleware call finish.."
|
21
|
+
|
22
|
+
#you can do something you like after call
|
23
|
+
|
24
|
+
response
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
30
|
end
|
@@ -1,37 +1,37 @@
|
|
1
|
-
module Jetra
|
2
|
-
|
3
|
-
module Middleware
|
4
|
-
|
5
|
-
#验证参数和返回值的基本类型
|
6
|
-
class Validater
|
7
|
-
|
8
|
-
def initialize(app)
|
9
|
-
@app = app
|
10
|
-
end
|
11
|
-
|
12
|
-
def call(route, params)
|
13
|
-
|
14
|
-
if !params.kind_of?(Hash)
|
15
|
-
response = Jetra::Response.new
|
16
|
-
response.status = -1
|
17
|
-
response.body = {msg: "Jetra::Middleware::Validater: params type miss match. excepted Hash, got #{params.class.to_s}"}
|
18
|
-
else
|
19
|
-
response = @app.call(route, params)
|
20
|
-
if !response.status.kind_of?(Integer)
|
21
|
-
response.status = -1
|
22
|
-
response.body = {msg: "Jetra::Middleware::Validater: response.status type miss match. excepted Integer, got #{response.status.class.to_s}"}
|
23
|
-
else
|
24
|
-
if !response.body.kind_of?(Hash)
|
25
|
-
response.status = -1
|
26
|
-
response.body = {msg: "Jetra::Middleware::Validater: response.body type miss match. excepted Hash, got #{response.body.class.to_s}"}
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
response
|
32
|
-
end
|
33
|
-
|
34
|
-
end
|
35
|
-
|
36
|
-
end
|
1
|
+
module Jetra
|
2
|
+
|
3
|
+
module Middleware
|
4
|
+
|
5
|
+
#验证参数和返回值的基本类型
|
6
|
+
class Validater
|
7
|
+
|
8
|
+
def initialize(app)
|
9
|
+
@app = app
|
10
|
+
end
|
11
|
+
|
12
|
+
def call(route, params)
|
13
|
+
|
14
|
+
if !params.kind_of?(Hash)
|
15
|
+
response = Jetra::Response.new
|
16
|
+
response.status = -1
|
17
|
+
response.body = {msg: "Jetra::Middleware::Validater: params type miss match. excepted Hash, got #{params.class.to_s}"}
|
18
|
+
else
|
19
|
+
response = @app.call(route, params)
|
20
|
+
if !response.status.kind_of?(Integer)
|
21
|
+
response.status = -1
|
22
|
+
response.body = {msg: "Jetra::Middleware::Validater: response.status type miss match. excepted Integer, got #{response.status.class.to_s}"}
|
23
|
+
else
|
24
|
+
if !response.body.kind_of?(Hash)
|
25
|
+
response.status = -1
|
26
|
+
response.body = {msg: "Jetra::Middleware::Validater: response.body type miss match. excepted Hash, got #{response.body.class.to_s}"}
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
response
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
37
|
end
|
data/lib/jetra/version.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
module Jetra
|
2
|
-
|
3
|
-
Version = "1.
|
4
|
-
|
1
|
+
module Jetra
|
2
|
+
|
3
|
+
Version = "1.3.0"
|
4
|
+
|
5
5
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jetra
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeffrey
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-05-12 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: micro DSL
|
14
14
|
email:
|
@@ -52,8 +52,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
52
52
|
- !ruby/object:Gem::Version
|
53
53
|
version: '0'
|
54
54
|
requirements: []
|
55
|
-
|
56
|
-
rubygems_version: 2.7.8
|
55
|
+
rubygems_version: 3.0.3
|
57
56
|
signing_key:
|
58
57
|
specification_version: 4
|
59
58
|
summary: make it easy to write micro service
|