ph_model 1.0.2 → 1.1.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 +5 -5
- data/CHANGELOG.md +9 -0
- data/README.md +1 -0
- data/lib/active_model/validations/type_validator.rb +1 -1
- data/lib/ph_model/concerns/attribute_nested_validation.rb +5 -1
- data/lib/ph_model/concerns/attribute_type_validation.rb +7 -1
- data/lib/ph_model/version.rb +1 -1
- data/lib/ph_model.rb +1 -1
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 22c9a24cf0e12f417a5dfa23f3fb967828e9772533bfde21e1ea8ff4547d8bfe
|
4
|
+
data.tar.gz: b5ea967101912061b338ed8d80e9bdd06f79848cd3996e7fa51234bd77bec316
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b33ddd683bbee7054fa38ba0ee5ca8841276d75a3cba2cc3c5915297a9a4a4bcecd9a826339ab23048c8d42a54b26977bc5b6e93765ced081b753b99367c157d
|
7
|
+
data.tar.gz: e6b149296201228a3d72a4dd6edad1480a4a97b904e3fa35a1782be1d36e1a4ab8f192395fc15794642c21f8aff62912bec6dee7cf9d909271fad5012ec692bd
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,14 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
+
## [v1.1.0](https://github.com/payrollhero/ph_model/tree/v1.1.0) (2017-05-23)
|
4
|
+
[Full Changelog](https://github.com/payrollhero/ph_model/compare/v1.0.2...v1.1.0)
|
5
|
+
|
6
|
+
## [v1.0.2](https://github.com/payrollhero/ph_model/tree/v1.0.2) (2017-04-06)
|
7
|
+
[Full Changelog](https://github.com/payrollhero/ph_model/compare/v1.0.1...v1.0.2)
|
8
|
+
|
9
|
+
## [v1.0.1](https://github.com/payrollhero/ph_model/tree/v1.0.1) (2017-04-04)
|
10
|
+
[Full Changelog](https://github.com/payrollhero/ph_model/compare/v1.0.0...v1.0.1)
|
11
|
+
|
3
12
|
## [v1.0.0](https://github.com/payrollhero/ph_model/tree/v1.0.0) (2017-04-04)
|
4
13
|
[Full Changelog](https://github.com/payrollhero/ph_model/compare/v0.0.1...v1.0.0)
|
5
14
|
|
data/README.md
CHANGED
@@ -11,6 +11,7 @@
|
|
11
11
|
[](https://codeclimate.com/github/payrollhero/ph_model)
|
12
12
|
[](https://codeclimate.com/github/payrollhero/ph_model)
|
13
13
|
[](https://gemnasium.com/payrollhero/ph_model)
|
14
|
+
[](https://badge.fury.io/rb/ph_model)
|
14
15
|
|
15
16
|
This Gem basically marries ActiveModel and ActiveAttr is a nice package.
|
16
17
|
|
@@ -18,7 +18,7 @@ module ActiveModel
|
|
18
18
|
allowed_classes = classes.to_sentence two_words_connector: " or ",
|
19
19
|
last_word_connector: ", or "
|
20
20
|
|
21
|
-
record.errors
|
21
|
+
record.errors.add(attribute, (options[:message] || "must be a #{allowed_classes}"))
|
22
22
|
end
|
23
23
|
end
|
24
24
|
end
|
@@ -13,7 +13,7 @@ module PhModel
|
|
13
13
|
if info[:type].is_a? Array
|
14
14
|
if value.respond_to? :each_with_index
|
15
15
|
value.each_with_index do |item_value, index|
|
16
|
-
check_one(item_value,
|
16
|
+
check_one(item_value, format_nested_attribute_name(attribute_name, index, item_value))
|
17
17
|
end
|
18
18
|
end
|
19
19
|
else
|
@@ -22,6 +22,10 @@ module PhModel
|
|
22
22
|
end
|
23
23
|
end
|
24
24
|
|
25
|
+
def format_nested_attribute_name(attribute_name, index, item_value)
|
26
|
+
"#{attribute_name}[#{index}]"
|
27
|
+
end
|
28
|
+
|
25
29
|
def check_one(value, attribute_name)
|
26
30
|
return if !value.respond_to?(:valid?) || !value.respond_to?(:errors) || value.errors.nil? || value.valid?
|
27
31
|
value.errors.full_messages.each do |message|
|
@@ -1,5 +1,11 @@
|
|
1
1
|
module PhModel
|
2
2
|
module Concerns
|
3
|
+
|
4
|
+
# This will validate any attribute defined with `type: `
|
5
|
+
# the type value should be a class, or the special notation `[SomeClass]` which is meant to designate that this is
|
6
|
+
# a collection of those classes
|
7
|
+
#
|
8
|
+
# `no_type_check: true` can be optionally passed to disable this check (other features might use the `type` column)
|
3
9
|
module AttributeTypeValidation
|
4
10
|
extend ActiveSupport::Concern
|
5
11
|
|
@@ -9,7 +15,7 @@ module PhModel
|
|
9
15
|
|
10
16
|
def ensure_typed_attributes_class
|
11
17
|
self.class.attributes.each do |attribute_name, info|
|
12
|
-
if info[:type] && !type_match?(attribute_name)
|
18
|
+
if info[:type] && !info[:no_type_check] && !type_match?(attribute_name)
|
13
19
|
errors.add(attribute_name, "must be #{info[:type].inspect}, was #{type_summary(attribute_name)}")
|
14
20
|
end
|
15
21
|
end
|
data/lib/ph_model/version.rb
CHANGED
data/lib/ph_model.rb
CHANGED
@@ -31,7 +31,7 @@ module PhModel
|
|
31
31
|
include Concerns::AttributeNestedValidation
|
32
32
|
include Concerns::AttributeOfArrayTypeInitialization
|
33
33
|
|
34
|
-
def as_json
|
34
|
+
def as_json(*)
|
35
35
|
{}.tap do |hash|
|
36
36
|
self.class.attributes.each do |attribute_name, _info|
|
37
37
|
hash[attribute_name] = send(attribute_name).as_json
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ph_model
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Piotr Banasik
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-03-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -231,8 +231,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
231
231
|
- !ruby/object:Gem::Version
|
232
232
|
version: '0'
|
233
233
|
requirements: []
|
234
|
-
|
235
|
-
rubygems_version: 2.5.2
|
234
|
+
rubygems_version: 3.2.32
|
236
235
|
signing_key:
|
237
236
|
specification_version: 4
|
238
237
|
summary: ph-model -- active_model, active_attr brought together at last
|