ph_model 1.1.0 → 1.1.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 45d4629bdc212f29675b3b25d5c86fb28688af9a
4
- data.tar.gz: 9cf7cbc3e9903b1c84ea2bc0b4de7e68edb71647
2
+ SHA256:
3
+ metadata.gz: b21ee085fad1255502d03a29da7c57d01cbea98465169b750643ad41544170fe
4
+ data.tar.gz: b558977aa8e7620fb580b5861f7706b8af7019363debc34c6465b7236f11f750
5
5
  SHA512:
6
- metadata.gz: 5301189e640e50e16f1910f8d8b824b45439c6c221c6f4a0d9358cf18b1f744db8c1d4ae9ccb0a1a29142e49a2b70383bcfbf1f9be5a353d91aae481d38b7a0e
7
- data.tar.gz: c3e8f29ce56c2663900ec45d9a0ffae810b41df4d53b174796d1eb847e5b07898931b591ba06ccfaa38a66588e6e9f1eae9982acbd8f07888c45883bf705d3a8
6
+ metadata.gz: e381cc246de657326afcb31e75b8a6dd7e48f1dfde51b8645b66d9efee197381838c996ffebd89884e57447e496116153fa1679b885488e89784862d65193c9e
7
+ data.tar.gz: 2c86ce6deccccf5e63332c9e3c6387d7195254cc6b8e02a7220d8a7462a53f13c9adae2c9c6dc30baa70e0d1a133d64c96fb98ca65a99c9d14d5b7b4a18449e6
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
  [![Code Climate](https://codeclimate.com/github/payrollhero/ph_model/badges/gpa.svg)](https://codeclimate.com/github/payrollhero/ph_model)
12
12
  [![Issue Count](https://codeclimate.com/github/payrollhero/ph_model/badges/issue_count.svg)](https://codeclimate.com/github/payrollhero/ph_model)
13
13
  [![Dependency Status](https://gemnasium.com/payrollhero/ph_model.svg)](https://gemnasium.com/payrollhero/ph_model)
14
+ [![Gem Version](https://badge.fury.io/rb/ph_model.svg)](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[attribute] << (options[:message] || "must be a #{allowed_classes}")
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, "#{attribute_name}[#{index}]")
16
+ check_one(item_value, format_nested_attribute_name(attribute_name, index, item_value))
17
17
  end
18
18
  end
19
19
  else
@@ -22,8 +22,13 @@ 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
- return if !value.respond_to?(:valid?) || !value.respond_to?(:errors) || value.errors.nil? || value.valid?
30
+ return if !value.respond_to?(:valid?) || !value.respond_to?(:errors) || value.errors.nil? ||
31
+ (value.respond_to?(:frozen?) && value.frozen?) || value.valid?
27
32
  value.errors.full_messages.each do |message|
28
33
  errors.add(:base, "#{attribute_name}.#{message}")
29
34
  end
@@ -40,8 +40,8 @@ module PhModel
40
40
  when nil
41
41
  true
42
42
  when Array
43
- if type.count != 1
44
- raise ArgumentError, "don't know how to handle type: #{type.inspect}"
43
+ if type.count > 1
44
+ type.any? { |typ| value.is_a?(typ) }
45
45
  else
46
46
  if value.kind_of? Array
47
47
  value.all? { |item| item.is_a?(type.first) }
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module PhModel
3
- VERSION = '1.1.0'.freeze
3
+ VERSION = '1.1.3'.freeze
4
4
  end
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.1.0
4
+ version: 1.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Piotr Banasik
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-05-23 00:00:00.000000000 Z
11
+ date: 2022-03-23 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
- rubyforge_project:
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