act_form 0.3.1 → 0.4.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
- 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.