appfuel 0.5.12 → 0.5.13

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
  SHA1:
3
- metadata.gz: c0364e623e6f2573b4c821a242437a15b6085718
4
- data.tar.gz: b9231f2ba15988e210b61a68fcd60eeff9c7e631
3
+ metadata.gz: 9042cb7e13be9707fd722aa2fd93103b573c8194
4
+ data.tar.gz: 3c37b1b8ce0dd9f390628d1132a2678142562056
5
5
  SHA512:
6
- metadata.gz: f211340b01ed7b283b2d0999822021f85689a0c92bce670c2340238b7ea9f8e159913aaded2c258253c41b5c17bcb0a4ab229dbe395c5ee63cda7f1fdbe12057
7
- data.tar.gz: 42fdce54686c9a8f11e7a791a4f0db2935d24bd8a52690f6270b19874122eda216f9013d1e8c30214907dab97ce0771b7d7a962550878fbd8f36a1e25d4473fc
6
+ metadata.gz: c98a4ec95b9ecffc0d92a5cf3911b694524318376ea78b4cdc4fe1367c1e3d9e013fe5d1279e405ffae2af0617cec4623f84adb756d29b7f74947f95c5a38d3e
7
+ data.tar.gz: 9584eb1c0f2d96c2296565ed0725e1f0d5da2ddfeeaaacd1d4963ce359919c8dd18225792c41c2d91d0d664a968ea36ec1b0c90c21eb2d385a12744a2f2a3cf4
data/CHANGELOG.md CHANGED
@@ -5,6 +5,11 @@ All notable changes to this project will be documented in this file. (Pending ap
5
5
 
6
6
 
7
7
  # Releases
8
+ ## [[0.5.12]](https://github.com/rsb/appfuel/releases/tag/0.5.13) 2017-08-01
9
+ ### Fixed
10
+ - when you override an entity attribute it fails to initialize when value is
11
+ undefined
12
+
8
13
  ## [[0.5.12]](https://github.com/rsb/appfuel/releases/tag/0.5.12) 2017-07-31
9
14
  ### Fixed
10
15
  - `dynamodb adapter` `index` does not check for existing prefix
@@ -189,17 +189,12 @@ module Appfuel
189
189
  end
190
190
 
191
191
  def initialize_value(key, type, input)
192
- if (input == Types::Undefined || input == nil) && type.default?
193
- input = type[nil]
194
- end
195
- # manual overrides have to manually type check themselves
196
- setter = "#{key}="
197
- return send(setter, input) if respond_to?(setter)
198
-
199
- if input != Types::Undefined && input != nil
200
- input = type[input]
192
+ input = handle_default_value(input, type)
193
+ if respond_to?("#{key}=")
194
+ return handle_defined_setter(key, input)
201
195
  end
202
196
 
197
+ input = type_check_value(type, input)
203
198
  instance_variable_set("@#{key}", input)
204
199
  rescue => e
205
200
  msg = "#{domain_name} could not assign :#{key} #{e.message}"
@@ -208,6 +203,30 @@ module Appfuel
208
203
  raise error
209
204
  end
210
205
 
206
+ def handle_defined_setter(key, input)
207
+ return if undefined?(input)
208
+ send("#{key}=", input)
209
+ end
210
+
211
+ def handle_default_value(input, type)
212
+ return input unless type.default?
213
+ if undefined?(input) || input.nil?
214
+ return type[nil]
215
+ end
216
+ input
217
+ end
218
+
219
+ def type_check_value(type, input)
220
+ if !undefined?(input) && !input.nil?
221
+ input = type[input]
222
+ end
223
+ input
224
+ end
225
+
226
+ def setter_defined?(key)
227
+ respond_to?("#{key}=")
228
+ end
229
+
211
230
  def define_getter(key)
212
231
  return if respond_to?(key)
213
232
  define_singleton_method(key) do
@@ -232,6 +251,10 @@ module Appfuel
232
251
  end
233
252
 
234
253
 
254
+ def undefined?(value)
255
+ Types::Undefined
256
+ end
257
+
235
258
  def is_entity?(value, type)
236
259
  value.respond_to?(:domain_name) && value.domain_name == type.domain_name
237
260
  end
@@ -1,3 +1,3 @@
1
1
  module Appfuel
2
- VERSION = "0.5.12"
2
+ VERSION = "0.5.13"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: appfuel
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.12
4
+ version: 0.5.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Scott-Buccleuch
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-07-31 00:00:00.000000000 Z
11
+ date: 2017-08-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord