luna_park 0.11.0 → 0.11.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 +4 -4
- data/.gitignore +1 -17
- data/CHANGELOG.md +9 -0
- data/Gemfile.lock +1 -1
- data/lib/luna_park/errors/http.rb +5 -5
- data/lib/luna_park/extensions/injector.rb +9 -1
- data/lib/luna_park/extensions/injector/dependencies.rb +2 -9
- data/lib/luna_park/forms/simple.rb +21 -7
- data/lib/luna_park/http/send.rb +4 -4
- data/lib/luna_park/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9a850f1f3946c34d92c9f026ffb5f082abdfd066430e8e84e14284b880349cd9
|
4
|
+
data.tar.gz: 0ec998104d358ea3d025734ca7a90e4cd9b6e7a1c2d509750d8ae054b2064e74
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 702a11e09af39984d694748e7fb5464fa5595433fd5beeb951574074004c8891fd4e095b5087e9b80a4608d0f69ba0e22eddcf57012f8b100bfce76bb664b84f
|
7
|
+
data.tar.gz: 0016553ffd33fc1b6073817dedf799acc73c4c37c1ae0eda1e5a8a11188bc3b8c9c96a42fd4f33161d11d3ed7040b7fe26accaeae368ad70c4d543a7ac8f6297
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
@@ -4,6 +4,15 @@ All notable changes to this project will be documented in this file.
|
|
4
4
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
5
5
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
6
6
|
|
7
|
+
## [0.11.1] - 2021-05-24
|
8
|
+
Added
|
9
|
+
- Inheritance of `Extensions::Injector`
|
10
|
+
- Guard and meaningfull exceptions for `Extensions::Injector`
|
11
|
+
- nil dependencies caching for `Extensions::Injector`
|
12
|
+
- `Http::Client` can accept no-response
|
13
|
+
Changed
|
14
|
+
- `Forms::Simple` now has default behavior of `#perform`, that returns valid params
|
15
|
+
|
7
16
|
## [0.11.0] - 2021-03-18
|
8
17
|
Changed
|
9
18
|
- Rename Interactors to UseCases
|
data/Gemfile.lock
CHANGED
@@ -70,17 +70,17 @@ module LunaPark
|
|
70
70
|
request: {
|
71
71
|
method: request.method,
|
72
72
|
url: request.url,
|
73
|
-
body: request.body,
|
74
|
-
headers: request.headers,
|
75
73
|
open_timeout: request.open_timeout,
|
76
74
|
read_timeout: request.read_timeout,
|
77
|
-
sent_at: request.sent_at
|
75
|
+
sent_at: request.sent_at,
|
76
|
+
headers: request.headers,
|
77
|
+
body: request.body
|
78
78
|
},
|
79
79
|
response: {
|
80
80
|
code: response.code,
|
81
|
-
body: response.body,
|
82
81
|
headers: response.headers,
|
83
|
-
cookies: response.cookies
|
82
|
+
cookies: response.cookies,
|
83
|
+
body: response.body
|
84
84
|
},
|
85
85
|
error_details: super
|
86
86
|
}
|
@@ -108,6 +108,12 @@ module LunaPark
|
|
108
108
|
end
|
109
109
|
|
110
110
|
module ClassMethods
|
111
|
+
def inherited(inheritor)
|
112
|
+
dependencies.each_pair do |key, block|
|
113
|
+
inheritor.dependency(key, &block)
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
111
117
|
##
|
112
118
|
# Set dependency
|
113
119
|
#
|
@@ -118,7 +124,9 @@ module LunaPark
|
|
118
124
|
# dependency(:example) { Bar.new }
|
119
125
|
# end
|
120
126
|
def dependency(name, &block)
|
121
|
-
|
127
|
+
raise ArgumentError, 'no block given' unless block_given?
|
128
|
+
|
129
|
+
self.dependencies[name] = block
|
122
130
|
|
123
131
|
define_method(name) do
|
124
132
|
dependencies.call_with_cache(name)
|
@@ -48,11 +48,11 @@ module LunaPark
|
|
48
48
|
# use_case.dependencies[:messenger] # => #<Proc:0x0000564a0d90d438@t.rb:34>
|
49
49
|
# use_case.dependencies.call_with_cache(:messenger) # => 'Foobar'
|
50
50
|
def call_with_cache(key)
|
51
|
-
cache[key]
|
51
|
+
cache.key?(key) ? cache[key] : cache[key] = self.fetch(key).call
|
52
52
|
end
|
53
53
|
|
54
54
|
def []=(key, _val)
|
55
|
-
cache
|
55
|
+
cache.delete(key)
|
56
56
|
super
|
57
57
|
end
|
58
58
|
|
@@ -62,13 +62,6 @@ module LunaPark
|
|
62
62
|
@cache ||= {}
|
63
63
|
end
|
64
64
|
end
|
65
|
-
|
66
|
-
# @!parse include Injector::ClassMethods
|
67
|
-
# @!parse extend Injector::InstanceMethods
|
68
|
-
def self.included(base)
|
69
|
-
base.extend ClassMethods
|
70
|
-
base.include InstanceMethods
|
71
|
-
end
|
72
65
|
end
|
73
66
|
end
|
74
67
|
end
|
@@ -8,22 +8,36 @@ module LunaPark
|
|
8
8
|
##
|
9
9
|
# Form object represents blank document, required to filled right, and can be performed
|
10
10
|
#
|
11
|
-
# @example
|
11
|
+
# @example with default behavior
|
12
12
|
# class MyForm < LunaPark::Forms::SingleItem
|
13
13
|
# validation MyValidator # respond to .validate, #valid?, #errors, #valid_params
|
14
14
|
#
|
15
15
|
# def perform(valid_params)
|
16
|
-
# "Performed #{valid_params[:
|
16
|
+
# "Performed #{valid_params[:foo]}"
|
17
17
|
# end
|
18
18
|
# end
|
19
19
|
#
|
20
|
-
# form = MyForm.new({
|
20
|
+
# form = MyForm.new({ foo: 'Foo', excess: 'Excess' })
|
21
21
|
#
|
22
22
|
# if form.submit
|
23
|
-
# form.result # => 'Performed
|
23
|
+
# form.result # => 'Performed Foo'
|
24
24
|
# else
|
25
|
-
# form.errors # => {
|
25
|
+
# form.errors # => { foo: ['is wrong'] }
|
26
26
|
# end
|
27
|
+
#
|
28
|
+
# @example without default behavior
|
29
|
+
# class MyForm < LunaPark::Forms::SingleItem
|
30
|
+
# validation MyValidator # respond to .validate, #valid?, #errors, #valid_params
|
31
|
+
# end
|
32
|
+
#
|
33
|
+
# form = MyForm.new({ foo: 'Foo', excess: 'Excess' })
|
34
|
+
#
|
35
|
+
# if form.submit
|
36
|
+
# form.result # => { foo: 'Foo' }
|
37
|
+
# else
|
38
|
+
# form.errors # => { foo: ['is wrong'] }
|
39
|
+
# end
|
40
|
+
#
|
27
41
|
class Simple
|
28
42
|
include Extensions::Validatable
|
29
43
|
|
@@ -54,8 +68,8 @@ module LunaPark
|
|
54
68
|
# :nocov:
|
55
69
|
|
56
70
|
# @abstract
|
57
|
-
def perform(
|
58
|
-
|
71
|
+
def perform(valid_params)
|
72
|
+
valid_params
|
59
73
|
end
|
60
74
|
# :nocov:
|
61
75
|
end
|
data/lib/luna_park/http/send.rb
CHANGED
@@ -83,10 +83,10 @@ module LunaPark
|
|
83
83
|
|
84
84
|
def build_original_response(rest_response)
|
85
85
|
Response.new(
|
86
|
-
body: rest_response
|
87
|
-
code: rest_response
|
88
|
-
headers: rest_response
|
89
|
-
cookies: rest_response
|
86
|
+
body: rest_response&.body,
|
87
|
+
code: rest_response&.code || 0,
|
88
|
+
headers: rest_response&.headers,
|
89
|
+
cookies: rest_response&.cookies,
|
90
90
|
request: original_request
|
91
91
|
)
|
92
92
|
end
|
data/lib/luna_park/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: luna_park
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.11.
|
4
|
+
version: 0.11.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alexander Kudrin
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date: 2021-05-
|
12
|
+
date: 2021-05-24 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bugsnag
|