active_form_model 0.4.1 → 0.5.1

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: 3fa5b1a5d67328998e1001805d4ff580315861877e7d6bd423de7dc280fa80a9
4
- data.tar.gz: 95779536fb96ffa77cf4bf984c58ab992fedb5dfa1e5c8fa5eef6455f076ffd1
3
+ metadata.gz: de72c984ffa5024c2d6a9fc463f1b5172fab8fd277ac2b4d0e63ecab4cac0fb0
4
+ data.tar.gz: 447721a252e308d83e003cbe6eeba66b1962887519b1e0d2b1d965d07e10b24a
5
5
  SHA512:
6
- metadata.gz: 2c192c1f9f633ebb23ff7a0e16c4186f251e31063103124f11d2a51b73783077c0336478686f38b517d6ac67a522ce4eac9e72cf9c68d27019659d08363f9353
7
- data.tar.gz: eb21b19c8e05a3409699d3f56d8bce70d84e3d2b0f27ea1ec1fa7cd7dc9f1aed4d39e8fcaf81a444f9ccc37a3131bacb20322a7eaaa544d9262308299d38368c
6
+ metadata.gz: a01bb1ed3a10f455cbdaa366fc9cd1d23c41fc57650efe10b57817369f5d476eabe26e82ba8add31ed754fb9f77ddf396fe523f40c9acc45709c750139c1c276
7
+ data.tar.gz: 38bdf5f2dc51c249c04d41fb0fbb7c57d008c4a745dd5c783e0be54188ea68ce7d8893480d9f148f1eee2f9c457381586b1939f39bd0fb8b56a4ebf71146f0e5
data/.rubocop.yml CHANGED
@@ -14,7 +14,8 @@ require:
14
14
 
15
15
  AllCops:
16
16
  NewCops: enable
17
- TargetRubyVersion: 2.7
17
+ Exclude:
18
+ - 'lib/generators/**/*.rb'
18
19
 
19
20
  Style/Documentation:
20
21
  Enabled: false
data/Gemfile CHANGED
@@ -11,6 +11,10 @@ gem 'rake'
11
11
 
12
12
  gem 'rubocop'
13
13
 
14
+ gem 'actionpack'
15
+ gem 'activemodel'
16
+ gem 'activerecord'
14
17
  gem 'minitest-power_assert'
15
18
  gem 'rubocop-minitest'
16
19
  gem 'rubocop-rake'
20
+ gem 'sqlite3', '~> 1.7'
data/README.md CHANGED
@@ -49,7 +49,7 @@ class UserSignUpForm < User
49
49
  include ActiveFormModel
50
50
 
51
51
  # list all the permitted params
52
- fields :first_name, :email, :password
52
+ permit :first_name, :email, :password
53
53
 
54
54
  # add validation if necessary
55
55
  # they will be merged with base class' validation
@@ -12,12 +12,13 @@ Gem::Specification.new do |spec|
12
12
  spec.description = 'Based on inheritance'
13
13
  spec.homepage = 'https://github.com/Hexlet/active_form_model'
14
14
  spec.license = 'MIT'
15
- spec.required_ruby_version = Gem::Requirement.new('>= 2.7.0')
15
+ spec.required_ruby_version = Gem::Requirement.new('>= 3.0.0')
16
16
 
17
17
  # spec.metadata["allowed_push_host"] = "TODO: Set to 'http://mygemserver.com'"
18
18
 
19
19
  spec.metadata['homepage_uri'] = spec.homepage
20
20
  spec.metadata['source_code_uri'] = 'https://github.com/Hexlet/form-model.git'
21
+ spec.metadata['rubygems_mfa_required'] = 'true'
21
22
  # spec.metadata["changelog_uri"] = "TODO: Put your gem's CHANGELOG.md URL here."
22
23
 
23
24
  # Specify which files should be added to the gem when it is released.
@@ -30,7 +31,4 @@ Gem::Specification.new do |spec|
30
31
  spec.require_paths = ['lib']
31
32
 
32
33
  spec.add_dependency('activesupport', '>= 3')
33
-
34
- spec.add_development_dependency('actionpack', '>= 5')
35
- spec.add_development_dependency('activemodel', '>= 5')
36
34
  end
@@ -1,34 +1,32 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'active_support/deprecation/reporting'
3
+ require 'active_support/deprecation'
4
+ require 'active_support/core_ext/class/attribute'
4
5
 
5
6
  module ActiveFormModel
6
7
  module Permittable
7
8
  extend ActiveSupport::Concern
8
9
 
9
10
  included do
10
- prepend Prepended
11
- end
12
-
13
- module Prepended
14
- def initialize(attrs = {})
15
- permitted_attrs = permit_attrs(attrs)
16
- super(permitted_attrs)
17
- end
11
+ class_attribute(:_permitted_args, instance_predicate: false, default: [])
18
12
  end
19
13
 
20
14
  class_methods do
21
- def fields(*args)
22
- @_permitted_args = args
15
+ def new(attrs = nil, &block)
16
+ attrs = _permit_attrs(attrs) if attrs
17
+
18
+ super
23
19
  end
24
20
 
25
21
  def permit(*args)
26
- ActiveSupport::Deprecation.warn('permit is deprecated in favor of fields')
27
- @_permitted_args = args
22
+ self._permitted_args = _permitted_args | args
28
23
  end
29
24
 
30
- def _permitted_args
31
- @_permitted_args || (superclass.respond_to?(:_permitted_args) && superclass._permitted_args) || []
25
+ alias_method :fields, :permit
26
+ deprecate fields: :permit, deprecator: ActiveSupport::Deprecation.new('0.6.0', 'ActiveFormModel')
27
+
28
+ def _permit_attrs(attrs)
29
+ attrs.respond_to?(:permit) ? attrs.send(:permit, _permitted_args) : attrs
32
30
  end
33
31
  end
34
32
 
@@ -50,7 +48,7 @@ module ActiveFormModel
50
48
  private
51
49
 
52
50
  def permit_attrs(attrs)
53
- attrs.respond_to?(:permit) ? attrs.send(:permit, self.class._permitted_args) : attrs
51
+ self.class._permit_attrs(attrs)
54
52
  end
55
53
  end
56
54
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ActiveFormModel
4
- VERSION = '0.4.1'
4
+ VERSION = '0.5.1'
5
5
  end
@@ -10,7 +10,7 @@ module ActiveFormModel
10
10
  class_methods do
11
11
  def fields(*attrs)
12
12
  send(:attr_accessor, *attrs)
13
- super(attrs)
13
+ permit(*attrs)
14
14
  end
15
15
  end
16
16
  end
@@ -7,7 +7,7 @@ module ActiveFormModel
7
7
  source_root File.expand_path('templates', __dir__)
8
8
 
9
9
  def create_form
10
- template 'form.rb', File.join('app/forms', class_path, "#{file_name}_form.erb")
10
+ template 'form.rb', File.join('app/forms', class_path, "#{file_name}_form.rb")
11
11
  end
12
12
  end
13
13
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_form_model
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kirill
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-12-29 00:00:00.000000000 Z
11
+ date: 2024-06-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -24,34 +24,6 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '3'
27
- - !ruby/object:Gem::Dependency
28
- name: actionpack
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: '5'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: '5'
41
- - !ruby/object:Gem::Dependency
42
- name: activemodel
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: '5'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- version: '5'
55
27
  description: Based on inheritance
56
28
  email:
57
29
  - mokevnin@gmail.com
@@ -77,13 +49,14 @@ files:
77
49
  - lib/active_form_model/virtual.rb
78
50
  - lib/generators/active_form_model/USAGE
79
51
  - lib/generators/active_form_model/form_generator.rb
80
- - lib/generators/active_form_model/templates/form.erb
52
+ - lib/generators/active_form_model/templates/form.rb
81
53
  homepage: https://github.com/Hexlet/active_form_model
82
54
  licenses:
83
55
  - MIT
84
56
  metadata:
85
57
  homepage_uri: https://github.com/Hexlet/active_form_model
86
58
  source_code_uri: https://github.com/Hexlet/form-model.git
59
+ rubygems_mfa_required: 'true'
87
60
  post_install_message:
88
61
  rdoc_options: []
89
62
  require_paths:
@@ -92,14 +65,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
92
65
  requirements:
93
66
  - - ">="
94
67
  - !ruby/object:Gem::Version
95
- version: 2.7.0
68
+ version: 3.0.0
96
69
  required_rubygems_version: !ruby/object:Gem::Requirement
97
70
  requirements:
98
71
  - - ">="
99
72
  - !ruby/object:Gem::Version
100
73
  version: '0'
101
74
  requirements: []
102
- rubygems_version: 3.2.32
75
+ rubygems_version: 3.4.10
103
76
  signing_key:
104
77
  specification_version: 4
105
78
  summary: Painless forms for ActiveRecord