active_form_model 0.4.1 → 0.5.1

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: 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