rivulet-rb 0.3.1 → 0.3.2
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/rivulet/cli/new.rb +1 -1
- data/lib/rivulet/container.rb +1 -0
- data/lib/rivulet/operations/run_console.rb +2 -0
- data/lib/rivulet/operations/startup.rb +3 -1
- data/lib/rivulet/request.rb +26 -1
- data/lib/rivulet/steps/build_context.rb +3 -11
- data/lib/rivulet/steps/compile_response.rb +1 -1
- data/lib/rivulet/steps/freeze_settings.rb +12 -0
- data/lib/rivulet/steps/load_settings.rb +0 -1
- data/lib/rivulet/version.rb +1 -1
- data/lib/rivulet.rb +1 -0
- metadata +17 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e4b42dc6a74dc928bb126b9cb6802b096b1b59b83b5c6ff0773ca1ed8922199a
|
|
4
|
+
data.tar.gz: f00390412a9018f6ef39ea9293ff62b3920107c26070cd6a7a6c7bfe9e3512e6
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e8dc3048c25021f16dd148ce023235ae01abf8655e8b0dfebd0761a9aa2c600164aaeb6143019c3fbfb4233d2efe784d28a574d28f0d1e799c352df6bb413398
|
|
7
|
+
data.tar.gz: 4ad74647d4a0a32b274672998ca6e8413f2bd03c7111f684b151e252d8ffae537feab8362b050babaa4957a50e053e6b5474ed248f3d78dc4a06b875225af812
|
data/lib/rivulet/cli/new.rb
CHANGED
data/lib/rivulet/container.rb
CHANGED
|
@@ -24,6 +24,7 @@ module Rivulet
|
|
|
24
24
|
register('run_migrations') { Rivulet::Steps::RunMigrations.new }
|
|
25
25
|
register('run_console') { Rivulet::Steps::RunConsole.new }
|
|
26
26
|
register('print_routes') { Rivulet::Steps::PrintRoutes.new }
|
|
27
|
+
register('freeze_settings') { Rivulet::Steps::FreezeSettings.new }
|
|
27
28
|
end
|
|
28
29
|
end
|
|
29
30
|
end
|
|
@@ -8,6 +8,7 @@ module Rivulet
|
|
|
8
8
|
load_db: 'steps.load_db',
|
|
9
9
|
load_routes: 'steps.load_routes',
|
|
10
10
|
load_initializers: 'steps.load_initializers',
|
|
11
|
+
freeze_settings: 'steps.freeze_settings',
|
|
11
12
|
run_console: 'steps.run_console'
|
|
12
13
|
]
|
|
13
14
|
|
|
@@ -18,6 +19,7 @@ module Rivulet
|
|
|
18
19
|
result = step load_app.(result)
|
|
19
20
|
result = step load_routes.(result)
|
|
20
21
|
result = step load_initializers.(result)
|
|
22
|
+
result = step freeze_settings.(result)
|
|
21
23
|
result = step run_console.(result)
|
|
22
24
|
|
|
23
25
|
result
|
|
@@ -7,7 +7,8 @@ module Rivulet
|
|
|
7
7
|
load_app: 'steps.load_app',
|
|
8
8
|
load_db: 'steps.load_db',
|
|
9
9
|
load_routes: 'steps.load_routes',
|
|
10
|
-
load_initializers: 'steps.load_initializers'
|
|
10
|
+
load_initializers: 'steps.load_initializers',
|
|
11
|
+
freeze_settings: 'steps.freeze_settings'
|
|
11
12
|
]
|
|
12
13
|
|
|
13
14
|
def call(input = {})
|
|
@@ -17,6 +18,7 @@ module Rivulet
|
|
|
17
18
|
result = step load_app.(result)
|
|
18
19
|
result = step load_routes.(result)
|
|
19
20
|
result = step load_initializers.(result)
|
|
21
|
+
result = step freeze_settings.(result)
|
|
20
22
|
|
|
21
23
|
result
|
|
22
24
|
end
|
data/lib/rivulet/request.rb
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
module Rivulet
|
|
2
2
|
class Request
|
|
3
|
-
attr_reader :http_method, :path, :content_type, :body, :session, :env
|
|
3
|
+
attr_reader :http_method, :path, :content_type, :query_string, :body, :session, :env
|
|
4
4
|
|
|
5
5
|
def initialize(env)
|
|
6
6
|
@http_method = env['REQUEST_METHOD'].downcase.to_sym
|
|
7
7
|
@path = env['PATH_INFO']
|
|
8
8
|
@content_type = env['CONTENT_TYPE']
|
|
9
|
+
@query_string = env['QUERY_STRING']
|
|
9
10
|
@body = env['rack.input']
|
|
10
11
|
@session = env['rack.session']
|
|
11
12
|
@env = env
|
|
@@ -14,5 +15,29 @@ module Rivulet
|
|
|
14
15
|
def cookies
|
|
15
16
|
Rack::Utils.parse_cookies(env)
|
|
16
17
|
end
|
|
18
|
+
|
|
19
|
+
def query_params
|
|
20
|
+
Rack::Utils
|
|
21
|
+
.parse_nested_query(query_string)
|
|
22
|
+
.then { |params| deep_symbolize_keys(params) }
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def body_params
|
|
26
|
+
return {} unless content_type&.include?('application/json')
|
|
27
|
+
raw = body.read
|
|
28
|
+
return {} if raw.nil? || raw.empty?
|
|
29
|
+
Oj.load(raw, symbolize_names: true)
|
|
30
|
+
rescue Oj::ParseError
|
|
31
|
+
{}
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
private
|
|
35
|
+
|
|
36
|
+
def deep_symbolize_keys(hash)
|
|
37
|
+
hash.each_with_object({}) do |(key, val), result|
|
|
38
|
+
val = deep_symbolize_keys(val) if val.is_a? Hash
|
|
39
|
+
result[key.to_sym] = val
|
|
40
|
+
end
|
|
41
|
+
end
|
|
17
42
|
end
|
|
18
43
|
end
|
|
@@ -31,17 +31,9 @@ module Rivulet
|
|
|
31
31
|
|
|
32
32
|
def build_params(route, request, path_match)
|
|
33
33
|
path_params = extract_params(route, path_match)
|
|
34
|
-
body_params =
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
def parse_body(request)
|
|
39
|
-
return {} unless request.content_type&.include?('application/json')
|
|
40
|
-
raw = request.body.read
|
|
41
|
-
return {} if raw.nil? || raw.empty?
|
|
42
|
-
Oj.load(raw, symbolize_names: true)
|
|
43
|
-
rescue Oj::ParseError
|
|
44
|
-
{}
|
|
34
|
+
body_params = request.body_params
|
|
35
|
+
query_params = request.query_params
|
|
36
|
+
query_params.merge(body_params, path_params)
|
|
45
37
|
end
|
|
46
38
|
|
|
47
39
|
def find_route(routes, request)
|
data/lib/rivulet/version.rb
CHANGED
data/lib/rivulet.rb
CHANGED
|
@@ -34,6 +34,7 @@ require_relative 'rivulet/steps/build_context'
|
|
|
34
34
|
require_relative 'rivulet/steps/validate_response'
|
|
35
35
|
require_relative 'rivulet/steps/compile_response'
|
|
36
36
|
require_relative 'rivulet/steps/dispatch'
|
|
37
|
+
require_relative 'rivulet/steps/freeze_settings'
|
|
37
38
|
require_relative 'rivulet/steps/load_app'
|
|
38
39
|
require_relative 'rivulet/steps/load_db'
|
|
39
40
|
require_relative 'rivulet/steps/load_routes'
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rivulet-rb
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.3.
|
|
4
|
+
version: 0.3.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Vladimir Dombrovskiy <vold@fastmail.com>
|
|
@@ -149,6 +149,20 @@ dependencies:
|
|
|
149
149
|
- - ">="
|
|
150
150
|
- !ruby/object:Gem::Version
|
|
151
151
|
version: '0'
|
|
152
|
+
- !ruby/object:Gem::Dependency
|
|
153
|
+
name: irb
|
|
154
|
+
requirement: !ruby/object:Gem::Requirement
|
|
155
|
+
requirements:
|
|
156
|
+
- - ">="
|
|
157
|
+
- !ruby/object:Gem::Version
|
|
158
|
+
version: '0'
|
|
159
|
+
type: :runtime
|
|
160
|
+
prerelease: false
|
|
161
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
162
|
+
requirements:
|
|
163
|
+
- - ">="
|
|
164
|
+
- !ruby/object:Gem::Version
|
|
165
|
+
version: '0'
|
|
152
166
|
- !ruby/object:Gem::Dependency
|
|
153
167
|
name: oj
|
|
154
168
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -318,6 +332,7 @@ files:
|
|
|
318
332
|
- lib/rivulet/steps/build_context.rb
|
|
319
333
|
- lib/rivulet/steps/compile_response.rb
|
|
320
334
|
- lib/rivulet/steps/dispatch.rb
|
|
335
|
+
- lib/rivulet/steps/freeze_settings.rb
|
|
321
336
|
- lib/rivulet/steps/load_app.rb
|
|
322
337
|
- lib/rivulet/steps/load_db.rb
|
|
323
338
|
- lib/rivulet/steps/load_initializers.rb
|
|
@@ -350,7 +365,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
350
365
|
- !ruby/object:Gem::Version
|
|
351
366
|
version: '0'
|
|
352
367
|
requirements: []
|
|
353
|
-
rubygems_version: 4.0.
|
|
368
|
+
rubygems_version: 4.0.23
|
|
354
369
|
specification_version: 4
|
|
355
370
|
summary: A small Rack web framework built on dry-rb, falcon and forced layering architecture
|
|
356
371
|
test_files: []
|