options_model 0.0.18 → 0.0.19

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: ab42d3e3b9e4a75c96044749d91848d29e8c9b619e6256cc106820a4ed2b97d0
4
- data.tar.gz: 86e1a7eef5263efceb7a035cb00f017b22e50e7eefa320e1d6cc9b213668a9b3
3
+ metadata.gz: 28e0b4a7b8338b22d82fe86ab8953ab930bef18fa0f8841b5561909d02b29bae
4
+ data.tar.gz: 72fa3751a21a14d82a38111435c8a26fb4570415d5c3ff065c54a0939926e88c
5
5
  SHA512:
6
- metadata.gz: bbfa20c312c15fb5ab84bbdb5f2691dd2848203b5f45f63253c7570a152574abedf95db3c501d20631734232b94c4b5eeb1a74d51cec25e3eba20e70d08291ca
7
- data.tar.gz: c0c165ba0542fe6ac1d1e542a50c6944adb312055253d6d3026a2950626431b7cc62bbd356b09ce02907833376aed321ec4de6597e9c0ad61f2b48fff614e0b1
6
+ metadata.gz: 8e0bdaf0cb45c615834c311045d16905c4e1dcccccca8a6e7b3741e80a498d32a06012152f6e2f53b8ce048256d88569ce019f9705108e3695adbdaee645e8f8
7
+ data.tar.gz: b8a10cb002ab6a58f85c5c368c89e00e1d3c806d98925671dc9e822d300859314ccd21f6e93eadd7e9b42b404c84764111b6a60b9f9a354ee9121b72d6baac90
@@ -24,18 +24,17 @@ module OptionsModel
24
24
  ""
25
25
  end
26
26
 
27
- generated_attribute_methods.synchronize do
28
- generated_attribute_methods.module_eval <<-STR, __FILE__, __LINE__ + 1
27
+ generated_attribute_methods.module_eval <<-STR, __FILE__, __LINE__ + 1
29
28
  def #{name}
30
29
  value = attributes[:#{name}]
31
30
  return value unless value.nil?
32
31
  attributes[:#{name}] = self.class.attribute_defaults[:#{name}]#{default_extractor}
33
32
  attributes[:#{name}]
34
33
  end
35
- STR
34
+ STR
36
35
 
37
- if array
38
- generated_attribute_methods.module_eval <<-STR, __FILE__, __LINE__ + 1
36
+ if array
37
+ generated_attribute_methods.module_eval <<-STR, __FILE__, __LINE__ + 1
39
38
  def #{name}=(value)
40
39
  if value.respond_to?(:to_a)
41
40
  attributes[:#{name}] = value.to_a.map { |i| ActiveModel::Type.lookup(:#{cast_type}).cast(i) }
@@ -46,16 +45,15 @@ module OptionsModel
46
45
  "`value` should respond to `to_a`, but got \#{value.class} -- \#{value.inspect}"
47
46
  end
48
47
  end
49
- STR
50
- else
51
- generated_attribute_methods.module_eval <<-STR, __FILE__, __LINE__ + 1
48
+ STR
49
+ else
50
+ generated_attribute_methods.module_eval <<-STR, __FILE__, __LINE__ + 1
52
51
  def #{name}=(value)
53
52
  attributes[:#{name}] = ActiveModel::Type.lookup(:#{cast_type}).cast(value)
54
53
  end
55
- STR
54
+ STR
56
55
 
57
- generated_attribute_methods.send :alias_method, :"#{name}?", name if cast_type == :boolean
58
- end
56
+ generated_attribute_methods.send :alias_method, :"#{name}?", name if cast_type == :boolean
59
57
  end
60
58
 
61
59
  attribute_names_for_inlining << name
@@ -100,14 +98,13 @@ module OptionsModel
100
98
  anonymous_class
101
99
  end
102
100
 
103
- generated_attribute_methods.synchronize do
104
- generated_attribute_methods.module_eval <<-STR, __FILE__, __LINE__ + 1
101
+ generated_attribute_methods.module_eval <<-STR, __FILE__, __LINE__ + 1
105
102
  def #{name}
106
103
  nested_attributes[:#{name}] ||= self.class.nested_classes[:#{name}].new(attributes[:#{name}])
107
104
  end
108
- STR
105
+ STR
109
106
 
110
- generated_attribute_methods.module_eval <<-STR, __FILE__, __LINE__ + 1
107
+ generated_attribute_methods.module_eval <<-STR, __FILE__, __LINE__ + 1
111
108
  def #{name}=(value)
112
109
  klass = self.class.nested_classes[:#{name}]
113
110
  if value.respond_to?(:to_h)
@@ -121,8 +118,7 @@ module OptionsModel
121
118
  "`value` should respond to `to_h` or \#{klass}, but got \#{value.class}"
122
119
  end
123
120
  end
124
- STR
125
- end
121
+ STR
126
122
 
127
123
  attribute_names_for_nesting << name
128
124
 
@@ -194,15 +190,11 @@ module OptionsModel
194
190
  end
195
191
 
196
192
  def generated_attribute_methods
197
- @generated_attribute_methods ||= Module.new do
198
- extend Mutex_m
199
- end.tap { |mod| include mod }
193
+ @generated_attribute_methods ||= Module.new.tap { |mod| include mod }
200
194
  end
201
195
 
202
196
  def generated_class_methods
203
- @generated_class_methods ||= Module.new do
204
- extend Mutex_m
205
- end.tap { |mod| extend mod }
197
+ @generated_class_methods ||= Module.new.tap { |mod| include mod }
206
198
  end
207
199
  end
208
200
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module OptionsModel
4
- VERSION = "0.0.18"
4
+ VERSION = "0.0.19"
5
5
  end
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  # desc "Explaining what the task does"
3
4
  # task :options_model do
4
5
  # # Task goes here
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: options_model
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.18
4
+ version: 0.0.19
5
5
  platform: ruby
6
6
  authors:
7
7
  - jasl
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2021-12-25 00:00:00.000000000 Z
10
+ date: 2025-02-08 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: activemodel
@@ -19,7 +18,7 @@ dependencies:
19
18
  version: '5'
20
19
  - - "<"
21
20
  - !ruby/object:Gem::Version
22
- version: '8'
21
+ version: '9'
23
22
  type: :runtime
24
23
  prerelease: false
25
24
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,7 +28,7 @@ dependencies:
29
28
  version: '5'
30
29
  - - "<"
31
30
  - !ruby/object:Gem::Version
32
- version: '8'
31
+ version: '9'
33
32
  - !ruby/object:Gem::Dependency
34
33
  name: activesupport
35
34
  requirement: !ruby/object:Gem::Requirement
@@ -39,7 +38,7 @@ dependencies:
39
38
  version: '5'
40
39
  - - "<"
41
40
  - !ruby/object:Gem::Version
42
- version: '8'
41
+ version: '9'
43
42
  type: :runtime
44
43
  prerelease: false
45
44
  version_requirements: !ruby/object:Gem::Requirement
@@ -49,7 +48,7 @@ dependencies:
49
48
  version: '5'
50
49
  - - "<"
51
50
  - !ruby/object:Gem::Version
52
- version: '8'
51
+ version: '9'
53
52
  - !ruby/object:Gem::Dependency
54
53
  name: psych
55
54
  requirement: !ruby/object:Gem::Requirement
@@ -87,7 +86,6 @@ homepage: https://github.com/jasl-lab/options_model
87
86
  licenses:
88
87
  - MIT
89
88
  metadata: {}
90
- post_install_message:
91
89
  rdoc_options: []
92
90
  require_paths:
93
91
  - lib
@@ -102,8 +100,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
102
100
  - !ruby/object:Gem::Version
103
101
  version: '0'
104
102
  requirements: []
105
- rubygems_version: 3.2.32
106
- signing_key:
103
+ rubygems_version: 3.6.3
107
104
  specification_version: 4
108
105
  summary: Make easier to handle model which will be serialized in a real model.
109
106
  test_files: []