act_form 0.3.1 → 0.4.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
- SHA1:
3
- metadata.gz: d7268ff41b24e1e8e2d261dcdf0f3897b2cfd486
4
- data.tar.gz: d54b5aaa9ce7c3f554f1363a11b9e6bdee2120c4
2
+ SHA256:
3
+ metadata.gz: 1f096ba9408679e014443f6ebc3ac2f2083b1f081ac923c97a485d9ea1c67784
4
+ data.tar.gz: cee283b7050b2d532d10ce998102c42aad399739f3841e025cf41a4cc92afdc7
5
5
  SHA512:
6
- metadata.gz: 5bb5e6f1d241079aeb70354f5ea8a11b681a368f5666820e20cbbbb446c556215e4a5f538f031158eb5288d0e00083704d7ee68396504f700bcb734941955f6b
7
- data.tar.gz: ef28b81f64dd99df42391460c6d2cf27de9c750d4d9e55f5411f31357149b8401eae07b1a1b119c02c1884ed2f35a131f91df92c86efafa82ce8836d1192b77f
6
+ metadata.gz: 755641d26b589a199cb05e36c9c6063ece293010fedac1e6c34d7229e51bd0692d32e32420ce42cd1a2fb2491b83d279aa022cb234f406335f559d66fd6a2150
7
+ data.tar.gz: 8089ca663ee9a24b144497d2dc462a76e802989f15e3bce9af75e42f1cbba6328349a0d87aac37b8cc183d8680fd62a4c0d6bcf6c1be922f80a42bd1f3c50780
data/CHANGELOG.md ADDED
@@ -0,0 +1,9 @@
1
+ # 0.4.1
2
+ * fix issue#5
3
+
4
+ # 0.4.0
5
+ * update bundler dependency to `2.1.x`
6
+ * update spec syntex
7
+ * support rails `6.0`
8
+ * add shortcut alias method `attr` for `attribute`
9
+ * fix issue#2
data/act_form.gemspec CHANGED
@@ -26,8 +26,8 @@ Gem::Specification.new do |spec|
26
26
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
27
27
  spec.require_paths = ['lib']
28
28
 
29
- spec.add_runtime_dependency 'activemodel', '~> 5.0', '>= 5.0.0'
29
+ spec.add_runtime_dependency 'activemodel', '>= 5.0.0'
30
30
 
31
- spec.add_development_dependency 'bundler', '~> 1.12'
32
- spec.add_development_dependency 'rake', '~> 10.0'
31
+ spec.add_development_dependency 'bundler', '~> 2.1'
32
+ spec.add_development_dependency 'rake', '~> 13.0'
33
33
  end
@@ -34,9 +34,16 @@ module ActForm
34
34
 
35
35
  name
36
36
  end
37
+ alias_method :attr, :attribute
37
38
 
38
39
  def define_reader_method(name, default: NO_DEFAULT_PROVIDED)
39
- define_method(name) { attributes[name] || get_default(default, NO_DEFAULT_PROVIDED) }
40
+ define_method(name) do
41
+ if attributes.key?(name)
42
+ attributes[name]
43
+ else
44
+ get_default(default, NO_DEFAULT_PROVIDED)
45
+ end
46
+ end
40
47
  end
41
48
 
42
49
  def define_writer_method(name, cast_type)
@@ -19,17 +19,14 @@ module ActForm
19
19
  end
20
20
 
21
21
  def record=(record)
22
- if record.respond_to?(:attributes)
23
- @record = record
24
- else
25
- raise ArgumentError, 'Record must respond to attributes method!'
26
- end
22
+ raise ArgumentError, 'Record must respond to attributes method!' unless record.respond_to?(:attributes)
23
+ @record = record
27
24
  end
28
25
 
29
26
  # Record must respond_to attributes method
30
27
  def init_by(record, **attrs)
31
- @record = record
32
- _attrs = record.attributes.extract! *self.class.attribute_set.keys.map(&:to_s)
28
+ self.record = record
29
+ _attrs = record.attributes.extract! *self.class.attribute_set.keys.map(&:to_s)
33
30
  assign_attributes _attrs.merge(attrs)
34
31
  end
35
32
 
@@ -59,6 +56,7 @@ module ActForm
59
56
  def validate_required_attributes
60
57
  self.class.attribute_set.each do |attr_name, arr|
61
58
  _, options = arr
59
+ next if options.key?(:default)
62
60
  next if !options[:required]
63
61
  if attributes[attr_name].nil?
64
62
  errors.add(attr_name, :required)
@@ -68,7 +66,6 @@ module ActForm
68
66
  end
69
67
 
70
68
  class_methods do
71
- private
72
69
  def inherited(child_class)
73
70
  child_class.include Combinable
74
71
  super
@@ -1,3 +1,3 @@
1
1
  module ActForm
2
- VERSION = '0.3.1'
2
+ VERSION = '0.4.1'
3
3
  end
data/lib/act_form.rb CHANGED
@@ -7,7 +7,8 @@ module ActForm
7
7
  include Model
8
8
  end
9
9
 
10
- class Command < Base
10
+ class Command
11
+ include Model
11
12
  include Runnable
12
13
  private_class_method :new
13
14
  end
metadata CHANGED
@@ -1,22 +1,19 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: act_form
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - zires
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-07-14 00:00:00.000000000 Z
11
+ date: 2022-03-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '5.0'
20
17
  - - ">="
21
18
  - !ruby/object:Gem::Version
22
19
  version: 5.0.0
@@ -24,9 +21,6 @@ dependencies:
24
21
  prerelease: false
25
22
  version_requirements: !ruby/object:Gem::Requirement
26
23
  requirements:
27
- - - "~>"
28
- - !ruby/object:Gem::Version
29
- version: '5.0'
30
24
  - - ">="
31
25
  - !ruby/object:Gem::Version
32
26
  version: 5.0.0
@@ -36,28 +30,28 @@ dependencies:
36
30
  requirements:
37
31
  - - "~>"
38
32
  - !ruby/object:Gem::Version
39
- version: '1.12'
33
+ version: '2.1'
40
34
  type: :development
41
35
  prerelease: false
42
36
  version_requirements: !ruby/object:Gem::Requirement
43
37
  requirements:
44
38
  - - "~>"
45
39
  - !ruby/object:Gem::Version
46
- version: '1.12'
40
+ version: '2.1'
47
41
  - !ruby/object:Gem::Dependency
48
42
  name: rake
49
43
  requirement: !ruby/object:Gem::Requirement
50
44
  requirements:
51
45
  - - "~>"
52
46
  - !ruby/object:Gem::Version
53
- version: '10.0'
47
+ version: '13.0'
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
51
  requirements:
58
52
  - - "~>"
59
53
  - !ruby/object:Gem::Version
60
- version: '10.0'
54
+ version: '13.0'
61
55
  description: The simple way to create form objects or command/service objects with
62
56
  ActiveModel.
63
57
  email:
@@ -67,6 +61,7 @@ extensions: []
67
61
  extra_rdoc_files: []
68
62
  files:
69
63
  - ".gitignore"
64
+ - CHANGELOG.md
70
65
  - CODE_OF_CONDUCT.md
71
66
  - Gemfile
72
67
  - LICENSE.txt
@@ -101,8 +96,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
101
96
  - !ruby/object:Gem::Version
102
97
  version: '0'
103
98
  requirements: []
104
- rubyforge_project:
105
- rubygems_version: 2.5.1
99
+ rubygems_version: 3.0.3
106
100
  signing_key:
107
101
  specification_version: 4
108
102
  summary: A simple way to create form/command/service objects.