readymade 0.1.1 → 0.1.5
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/CHANGELOG.md +24 -0
- data/Gemfile.lock +1 -1
- data/README.md +33 -5
- data/lib/readymade/action.rb +0 -2
- data/lib/readymade/form.rb +9 -5
- data/lib/readymade/instant_form.rb +7 -0
- data/lib/readymade/operation.rb +4 -1
- data/lib/readymade/version.rb +1 -1
- data/lib/readymade.rb +1 -0
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: aefd7011aa28dd0d0e9d5c1d219bc27d2ccbce37d3f28ffc6139a488847c9d8d
|
4
|
+
data.tar.gz: 2d5698abc2a38900d633f52315bfd5b05014eb77a6db7958d62146f3cda6be7c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d35e1e55adebd637434ebcae14bdfb99203f6cf4807fa940f019edf87a2c4f14bf36bc7d45dd8af1385740ca06e4445bcaa6ad8b3b18cc4f3e4eef3897d63624
|
7
|
+
data.tar.gz: f09669c314759e0b72e9754e0a842f87fcf8a280a94c7994801f9851e739a40b0dc7144c69628bc461b4588a9e13284c29039a3682c7e842d50839c5ca5a2ac6
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
Changelog
|
2
|
+
All notable changes to this project will be documented in this file.
|
3
|
+
|
4
|
+
## [0.1.5] - 2021-12-07
|
5
|
+
|
6
|
+
### Improvements
|
7
|
+
|
8
|
+
* Better errors with Rails 6.1.
|
9
|
+
|
10
|
+
## [0.1.4] - 2021-11-22
|
11
|
+
|
12
|
+
### Features
|
13
|
+
|
14
|
+
* Add `Readymade::InstantForm`
|
15
|
+
|
16
|
+
### Improvements
|
17
|
+
|
18
|
+
* Call `build_form` inside `form_valid?` if `@form` is not defined
|
19
|
+
|
20
|
+
## [0.1.3] - 2021-11-20
|
21
|
+
|
22
|
+
### Improvements
|
23
|
+
|
24
|
+
* Fix error when required param for instant form is not defined
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -1,8 +1,6 @@
|
|
1
|
-
#
|
1
|
+
# Readymade
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
TODO: Delete this and the text above, and describe your gem
|
3
|
+
This gems contains basic components to follow [ABDI architecture](https://github.com/OrestF/OrestF/blob/master/abdi/ABDI_architecture.md)
|
6
4
|
|
7
5
|
## Installation
|
8
6
|
|
@@ -22,7 +20,37 @@ Or install it yourself as:
|
|
22
20
|
|
23
21
|
## Usage
|
24
22
|
|
25
|
-
|
23
|
+
Inherit your components from:
|
24
|
+
* `Readymade::Response`
|
25
|
+
* `Readymade::Form`
|
26
|
+
* `Readymade::InstantForm`
|
27
|
+
* `Readymade::Action`
|
28
|
+
* `Readymade::Operation`
|
29
|
+
|
30
|
+
### Readymade::Response
|
31
|
+
|
32
|
+
```TODO: add```
|
33
|
+
|
34
|
+
### Readymade::Form
|
35
|
+
|
36
|
+
```TODO: add```
|
37
|
+
|
38
|
+
### Readymade::InstantForm
|
39
|
+
|
40
|
+
Permit params and validates presence inline
|
41
|
+
|
42
|
+
```ruby
|
43
|
+
Readymade::InstantForm.new(my_params, permitted: %i[name phone], required: %i[email]) # permits: name, phone, email; validates on presence: email
|
44
|
+
```
|
45
|
+
|
46
|
+
### Readymade::Action
|
47
|
+
|
48
|
+
```TODO: add```
|
49
|
+
|
50
|
+
### Readymade::Operation
|
51
|
+
|
52
|
+
```TODO: add```
|
53
|
+
|
26
54
|
|
27
55
|
## Development
|
28
56
|
|
data/lib/readymade/action.rb
CHANGED
data/lib/readymade/form.rb
CHANGED
@@ -26,7 +26,7 @@ module Readymade
|
|
26
26
|
@params&.slice!(*permitted_attributes) # if permitted_attributes.present?
|
27
27
|
|
28
28
|
# dynamically creates attr accessors
|
29
|
-
@
|
29
|
+
@permitted_attributes&.each do |key|
|
30
30
|
singleton_class.class_eval do
|
31
31
|
attr_accessor key
|
32
32
|
end
|
@@ -84,11 +84,15 @@ module Readymade
|
|
84
84
|
def sync_errors(from: self, to: record)
|
85
85
|
return if [from, to].any?(&:blank?)
|
86
86
|
|
87
|
-
|
88
|
-
|
87
|
+
if Rails.version.to_f > 6.0
|
88
|
+
to.errors.merge!(from.errors)
|
89
|
+
else
|
90
|
+
errors = from.errors.instance_variable_get('@messages').to_h
|
91
|
+
errors.merge!(to.errors.instance_variable_get('@messages').to_h)
|
89
92
|
|
90
|
-
|
91
|
-
|
93
|
+
to.errors.instance_variable_set('@messages', errors)
|
94
|
+
to.errors.messages.transform_values!(&:uniq) # Does not work with rails 6.1
|
95
|
+
end
|
92
96
|
rescue FrozenError => _e
|
93
97
|
end
|
94
98
|
|
data/lib/readymade/operation.rb
CHANGED
@@ -14,6 +14,8 @@ module Readymade
|
|
14
14
|
end
|
15
15
|
|
16
16
|
def form_valid?
|
17
|
+
build_form if @form.nil? && defined?(:build_form)
|
18
|
+
|
17
19
|
form.validate
|
18
20
|
end
|
19
21
|
|
@@ -24,7 +26,7 @@ module Readymade
|
|
24
26
|
def record_valid?
|
25
27
|
return true if record.errors.none? && record.valid?
|
26
28
|
|
27
|
-
|
29
|
+
false
|
28
30
|
end
|
29
31
|
|
30
32
|
def save_record
|
@@ -41,6 +43,7 @@ module Readymade
|
|
41
43
|
|
42
44
|
def validation_fail(status = :validation_fail, args = {})
|
43
45
|
sync_errors_to_form
|
46
|
+
|
44
47
|
response(status, args.merge!(record: record,
|
45
48
|
record_params: record_params,
|
46
49
|
form: form,
|
data/lib/readymade/version.rb
CHANGED
data/lib/readymade.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: readymade
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- OrestF
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-12-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: byebug
|
@@ -62,6 +62,7 @@ files:
|
|
62
62
|
- ".gitignore"
|
63
63
|
- ".rspec"
|
64
64
|
- ".travis.yml"
|
65
|
+
- CHANGELOG.md
|
65
66
|
- CODE_OF_CONDUCT.md
|
66
67
|
- Gemfile
|
67
68
|
- Gemfile.lock
|
@@ -73,6 +74,7 @@ files:
|
|
73
74
|
- lib/readymade.rb
|
74
75
|
- lib/readymade/action.rb
|
75
76
|
- lib/readymade/form.rb
|
77
|
+
- lib/readymade/instant_form.rb
|
76
78
|
- lib/readymade/operation.rb
|
77
79
|
- lib/readymade/response.rb
|
78
80
|
- lib/readymade/version.rb
|
@@ -99,7 +101,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
99
101
|
- !ruby/object:Gem::Version
|
100
102
|
version: '0'
|
101
103
|
requirements: []
|
102
|
-
rubygems_version: 3.1.
|
104
|
+
rubygems_version: 3.1.4
|
103
105
|
signing_key:
|
104
106
|
specification_version: 4
|
105
107
|
summary: Set of base classes for ABDI architecture
|