yuba 0.0.3 → 0.0.8
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/README.md +15 -2
- data/lib/yuba/service.rb +37 -1
- data/lib/yuba/version.rb +1 -1
- metadata +10 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5194de3e17a63c28eea57ebb3d33e4a8ae03fae8a4433bcaad3514110586de2b
|
4
|
+
data.tar.gz: a85114bd871291f3436afae4c878f07fcfbd7e713e26c42439a21c975278efda
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b3e1cd7e45ac09787b546db39fea103c4d396a8d2ca33df494e6d475291e954a03ecbda027039292fdf4f41782238dc3d0fb3f329fc84f40a7c0810fc5831942
|
7
|
+
data.tar.gz: fbb40d7809090a4ed252d4c801939e354fb0b6b7051be9b7c9860aba81fac9bdcdcefcf7be5fd02ae4a97832a3dcb06c803d061e48498edb03cace5997812f97
|
data/README.md
CHANGED
@@ -35,8 +35,8 @@ $ bundle install
|
|
35
35
|
|
36
36
|
## Support
|
37
37
|
|
38
|
-
- Rails
|
39
|
-
- Ruby 2.
|
38
|
+
- Rails 5.2+
|
39
|
+
- Ruby 2.5+
|
40
40
|
|
41
41
|
## ViewModel
|
42
42
|
|
@@ -154,6 +154,18 @@ end
|
|
154
154
|
- `.call` invokes `#call` after assigning arguments as properties.
|
155
155
|
- `#success?` returns `true` if you don't invoke `#fail!`
|
156
156
|
|
157
|
+
You have inspection methods for properties.
|
158
|
+
|
159
|
+
```ruby
|
160
|
+
service = CreatePostService.new(user: someuser)
|
161
|
+
service.has_property?(:user) #=> true
|
162
|
+
service.has_value?(:user) #=> true
|
163
|
+
service.has_public_property?(:user) #=> true
|
164
|
+
service.has_private_property?(:user) #=> false
|
165
|
+
service.has_required_property?(:user) #=> true
|
166
|
+
service.has_optional_property?(:user) #=> false
|
167
|
+
```
|
168
|
+
|
157
169
|
## Form
|
158
170
|
|
159
171
|
Form is just wrapper of [reform-rails](https://github.com/trailblazer/reform-rails) for now.
|
@@ -178,6 +190,7 @@ class ArtistsController < ApplicationController
|
|
178
190
|
render :new
|
179
191
|
end
|
180
192
|
end
|
193
|
+
end
|
181
194
|
```
|
182
195
|
|
183
196
|
```ruby
|
data/lib/yuba/service.rb
CHANGED
@@ -11,7 +11,7 @@ module Yuba
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def property(name, options = {})
|
14
|
-
_properties
|
14
|
+
self._properties = _properties.merge(name.to_sym => options)
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
@@ -37,6 +37,32 @@ module Yuba
|
|
37
37
|
!@_success
|
38
38
|
end
|
39
39
|
|
40
|
+
def has_property?(property)
|
41
|
+
_properties.has_key?(property.to_sym)
|
42
|
+
end
|
43
|
+
|
44
|
+
def has_required_property?(property)
|
45
|
+
has_property?(property) && !_properties.dig(property.to_sym, :optional)
|
46
|
+
end
|
47
|
+
|
48
|
+
def has_optional_property?(property)
|
49
|
+
has_property?(property) && !has_required_property?(property)
|
50
|
+
end
|
51
|
+
|
52
|
+
def has_public_property?(property)
|
53
|
+
has_property?(property) && !has_private_property?(property)
|
54
|
+
end
|
55
|
+
|
56
|
+
def has_private_property?(property)
|
57
|
+
has_property?(property) && !_properties.dig(property.to_sym, :public)
|
58
|
+
end
|
59
|
+
|
60
|
+
def has_value?(property)
|
61
|
+
has_property?(property) && respond_to?(property, true) && !send(property).nil?
|
62
|
+
end
|
63
|
+
|
64
|
+
alias_method :value?, :has_value?
|
65
|
+
|
40
66
|
private
|
41
67
|
|
42
68
|
def validate_arguments(args)
|
@@ -45,6 +71,12 @@ module Yuba
|
|
45
71
|
raise ArgumentError, "missing 'property :#{key}' in #{self.class.name} class"
|
46
72
|
end
|
47
73
|
end
|
74
|
+
|
75
|
+
required_keys = _required_properties.keys
|
76
|
+
missing_keys = required_keys - args.keys
|
77
|
+
unless missing_keys.empty?
|
78
|
+
raise ArgumentError, "missing required arguments: #{missing_keys.join(',')}"
|
79
|
+
end
|
48
80
|
end
|
49
81
|
|
50
82
|
def define_accessors(args)
|
@@ -56,5 +88,9 @@ module Yuba
|
|
56
88
|
self.singleton_class.class_eval { private key.to_sym } unless public_method
|
57
89
|
end
|
58
90
|
end
|
91
|
+
|
92
|
+
def _required_properties
|
93
|
+
_properties.reject { |_, value| value[:optional] }
|
94
|
+
end
|
59
95
|
end
|
60
96
|
end
|
data/lib/yuba/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yuba
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- willnet
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-04-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 5.2.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 5.2.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: reform-rails
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -42,16 +42,16 @@ dependencies:
|
|
42
42
|
name: dry-types
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: 0.12.2
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
54
|
+
version: 0.12.2
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: sqlite3
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -123,7 +123,7 @@ dependencies:
|
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '0'
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
|
-
name:
|
126
|
+
name: webdrivers
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
128
128
|
requirements:
|
129
129
|
- - ">="
|
@@ -179,8 +179,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
179
179
|
- !ruby/object:Gem::Version
|
180
180
|
version: '0'
|
181
181
|
requirements: []
|
182
|
-
|
183
|
-
rubygems_version: 2.7.6
|
182
|
+
rubygems_version: 3.1.6
|
184
183
|
signing_key:
|
185
184
|
specification_version: 4
|
186
185
|
summary: Add New Layers to Rails
|