readymade 0.2.4 → 0.2.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1a6e8e90fddf55567acfe262c31551b786d880250075f4cd9c5c651cc4838dfe
4
- data.tar.gz: e2349c3664e83acbeb0321d822ae80ddab1ad3a8ec8f97377cc0b2a2117ede68
3
+ metadata.gz: d8b0938bb39253068f0b78cd62841b08aa118f9ae51fb8e8e49c59a47cc5d6dc
4
+ data.tar.gz: 59fa97d3a17ab1b7330a1af92399a09aceb8843b81f1adb4f667580e495685f1
5
5
  SHA512:
6
- metadata.gz: e71191a5f142db70281225f3593f26b3f1e063c5a700ee029db55ca99486ed5e734490da0bd9ed360abb0544f8d4d567949c10f8baef33653a6497934dc99320
7
- data.tar.gz: e1c077924ee5fa51a9e2e2ce9f7e520fcf75dda30c3a1400afc938154366abb587b8a0fda092d4dfb283d576a66b90ea34ee7823d21e4a8c880fd09f08c898ef
6
+ metadata.gz: 5496ed0f230582f69b423e15561ba247d5967b44242fe3baa0611f4056e207ab8752dd2360380dc20a3072fea94ceac176f6098b84a07ea263ecd314ff735f3e
7
+ data.tar.gz: 99a797b196fc7d20c60026b39e5500c7b5a048ce743d92ae37b55412370b429c52a9623cc74031535811ce9743ba43dc197d923cae99fa4a5623ee368cec9ca2
data/CHANGELOG.md CHANGED
@@ -1,6 +1,12 @@
1
1
  Changelog
2
2
  All notable changes to this project will be documented in this file.
3
3
 
4
+ ## [0.2.5] - 2022-05-19
5
+
6
+ # Improvements
7
+
8
+ * Form#required_attributes returns `[]` if `params[:_destroy]` present
9
+
4
10
  ## [0.2.4] - 2022-05-12
5
11
 
6
12
  ### Fixes
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- readymade (0.2.4)
4
+ readymade (0.2.5)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -45,6 +45,8 @@ module Readymade
45
45
  end
46
46
 
47
47
  def required_attributes
48
+ return [] if params.try(:[], :_destroy).present?
49
+
48
50
  @required_attributes ||= self.class::REQUIRED_ATTRIBUTES
49
51
  end
50
52
 
@@ -79,9 +81,17 @@ module Readymade
79
81
 
80
82
  # copy errors from nested forms into parent form
81
83
  def sync_nested_errors(nested_forms)
82
- nested_forms.each do |n_form|
83
- n_form.errors.each do |code, text|
84
- errors.add("#{n_form.humanized_name}.#{code}", text)
84
+ if rails_errors_v2?
85
+ nested_forms.each do |n_form|
86
+ n_form.errors.each do |code|
87
+ errors.add("#{n_form.humanized_name}.#{code.attribute}", code.message)
88
+ end
89
+ end
90
+ else
91
+ nested_forms.each do |n_form|
92
+ n_form.errors.each do |code, text|
93
+ errors.add("#{n_form.humanized_name}.#{code}", text)
94
+ end
85
95
  end
86
96
  end
87
97
 
@@ -92,7 +102,7 @@ module Readymade
92
102
  def sync_errors(from: self, to: record)
93
103
  return if [from, to].any?(&:blank?)
94
104
 
95
- if Rails.version.to_f > 6.0
105
+ if rails_errors_v2?
96
106
  from.errors.messages.each do |key, values|
97
107
  Array.wrap(values).uniq.each do |uv|
98
108
  to.errors.add(key, uv)
@@ -145,6 +155,12 @@ module Readymade
145
155
  {}
146
156
  end
147
157
 
158
+ private
159
+
160
+ def rails_errors_v2?
161
+ Rails.version.to_f > 6.0
162
+ end
163
+
148
164
  # EXAMPLE
149
165
  # class Items::Forms::Create::Value < ::Readymade::Form
150
166
  # PERMITTED_ATTRIBUTES = %i[vat_percent price_type item_category].freeze
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Readymade
4
- VERSION = '0.2.4'
4
+ VERSION = '0.2.5'
5
5
  end
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.2.4
4
+ version: 0.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - OrestF
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-05-12 00:00:00.000000000 Z
11
+ date: 2022-05-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: byebug