active_form_model 0.5.1 → 0.6.0

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
2
  SHA256:
3
- metadata.gz: de72c984ffa5024c2d6a9fc463f1b5172fab8fd277ac2b4d0e63ecab4cac0fb0
4
- data.tar.gz: 447721a252e308d83e003cbe6eeba66b1962887519b1e0d2b1d965d07e10b24a
3
+ metadata.gz: b88234532e25374abf52ad4d112acf0bb6ead7c354ee3ea14e6b5a48d93683d2
4
+ data.tar.gz: b729d96a365226698fa5759a1fd235b33f6857395465f56f2cede90b29d6121f
5
5
  SHA512:
6
- metadata.gz: a01bb1ed3a10f455cbdaa366fc9cd1d23c41fc57650efe10b57817369f5d476eabe26e82ba8add31ed754fb9f77ddf396fe523f40c9acc45709c750139c1c276
7
- data.tar.gz: 38bdf5f2dc51c249c04d41fb0fbb7c57d008c4a745dd5c783e0be54188ea68ce7d8893480d9f148f1eee2f9c457381586b1939f39bd0fb8b56a4ebf71146f0e5
6
+ metadata.gz: 69425d5be399e0a00ab7c80d4075bbaff5f0c2098a2a48264f9715cab1e69ec8918058fb361cac72fb862ea134979695707f909977b38cd65a6ab7009b0e62bd
7
+ data.tar.gz: 26862a8cf1410986d7ad1252d7ac1a4854f600a159803bd281af067e53a02c6fbf09717ea92bf2b96f914dd2be51971dfe57ab1cdf0c4ab9b8a8c565b28bddd3
@@ -7,10 +7,10 @@ jobs:
7
7
  matrix:
8
8
  os: [ubuntu-latest, macos-latest]
9
9
  # Due to https://github.com/actions/runner/issues/849, we have to use quotes for '3.0'
10
- ruby: [2.7, '3.0', head]
10
+ ruby: ['3.0', head]
11
11
  runs-on: ${{ matrix.os }}
12
12
  steps:
13
- - uses: actions/checkout@v2
13
+ - uses: actions/checkout@v4
14
14
  - uses: ruby/setup-ruby@v1
15
15
  with:
16
16
  ruby-version: ${{ matrix.ruby }}
data/Gemfile CHANGED
@@ -17,4 +17,5 @@ gem 'activerecord'
17
17
  gem 'minitest-power_assert'
18
18
  gem 'rubocop-minitest'
19
19
  gem 'rubocop-rake'
20
- gem 'sqlite3', '~> 1.7'
20
+ gem 'ruby-lsp', require: false
21
+ gem 'sqlite3'
@@ -9,6 +9,7 @@ module ActiveFormModel
9
9
 
10
10
  included do
11
11
  class_attribute(:_permitted_args, instance_predicate: false, default: [])
12
+ class_attribute(:_skipped_args, instance_predicate: false, default: [])
12
13
  end
13
14
 
14
15
  class_methods do
@@ -22,11 +23,24 @@ module ActiveFormModel
22
23
  self._permitted_args = _permitted_args | args
23
24
  end
24
25
 
26
+ def skip_if_empty(*args)
27
+ self._skipped_args = args
28
+ end
29
+
25
30
  alias_method :fields, :permit
26
31
  deprecate fields: :permit, deprecator: ActiveSupport::Deprecation.new('0.6.0', 'ActiveFormModel')
27
32
 
28
33
  def _permit_attrs(attrs)
29
- attrs.respond_to?(:permit) ? attrs.send(:permit, _permitted_args) : attrs
34
+ permitted = attrs.respond_to?(:permit) ? attrs.send(:permit, _permitted_args) : attrs
35
+ _skipped_args.each do |key|
36
+ value = permitted[key.to_s] || permitted[key.to_sym]
37
+ if value.blank?
38
+ permitted.delete(key.to_s)
39
+ permitted.delete(key.to_sym)
40
+ end
41
+ end
42
+
43
+ permitted
30
44
  end
31
45
  end
32
46
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ActiveFormModel
4
- VERSION = '0.5.1'
4
+ VERSION = '0.6.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_form_model
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kirill
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2024-06-01 00:00:00.000000000 Z
10
+ date: 2025-03-26 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: activesupport
@@ -57,7 +56,6 @@ metadata:
57
56
  homepage_uri: https://github.com/Hexlet/active_form_model
58
57
  source_code_uri: https://github.com/Hexlet/form-model.git
59
58
  rubygems_mfa_required: 'true'
60
- post_install_message:
61
59
  rdoc_options: []
62
60
  require_paths:
63
61
  - lib
@@ -72,8 +70,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
72
70
  - !ruby/object:Gem::Version
73
71
  version: '0'
74
72
  requirements: []
75
- rubygems_version: 3.4.10
76
- signing_key:
73
+ rubygems_version: 3.6.2
77
74
  specification_version: 4
78
75
  summary: Painless forms for ActiveRecord
79
76
  test_files: []