tiny_dyno 0.1.21 → 0.1.22

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: 15a24d190e7a8c71b181f60e5f6948330ea172f5
4
- data.tar.gz: 4aa100afdd6f39bd56a42f90929d3f2c0a48a8e5
3
+ metadata.gz: 0eeaba04a85bbf554f20bb8193bcc4a6701ff2ce
4
+ data.tar.gz: 52468e676a52ae2a190df1d84355bd04f47c4011
5
5
  SHA512:
6
- metadata.gz: eff1e433f7e299372697d9b275e307ab4a7d5d2b6ccafb00bbbb4fe86c600ade7385fa14a978855149e8cf983821cf03849dedefcfd2700b9684d1032dbacfe6
7
- data.tar.gz: 684897839a8bc5ef2a63ffb2c7eafe3f2b059af96c888c0ab7833a62867265780677e3253746d23e2dce2b04572914af540adcad53407b5b26e38a85e141301a
6
+ metadata.gz: e6bd51cf221620d0efcd57de2989c8fd92bfe11f4609d3214cc8a5df29a2d6e1f5dfd10c180e602a3238df4c317d92d31dfd3354e19119e737aeb39de8f730cb
7
+ data.tar.gz: c7e5d45da48fb83ac6344d57e4d24708321fa4a2a022fb100b155aa22821fed82669501d615dd17114b33bf389efdcb59096235ac91a7eea4a65b8e2adb005a8
data/CHANGES.md CHANGED
@@ -1,3 +1,9 @@
1
+ 0.1.22 (2015-09-09)
2
+ -------------------
3
+
4
+ * Fix/New - Check document validity before storing the document
5
+ * Change - permit storing nil values on boolean fields, fields need to be able to be nil on creation (in the current implementation), thus permit nil as value even on a boolean field
6
+
1
7
  0.1.21 (2015-09-09)
2
8
  -------------------
3
9
 
@@ -30,6 +30,7 @@ module TinyDyno
30
30
  class Marshaler
31
31
 
32
32
  def format(type: 'auto', obj:)
33
+ return { null: true } if obj.nil?
33
34
  type = obj.class.to_s if type == 'auto'
34
35
  case type.to_s
35
36
  when 'Hash'
@@ -40,12 +41,7 @@ module TinyDyno
40
41
  obj.each.with_object(l:[]) do |value, list|
41
42
  list[:l] << format(type: value.class, obj: value)
42
43
  end
43
- when 'String'
44
- if obj.nil?
45
- { null: true }
46
- else
47
- { s: obj }
48
- end
44
+ when 'String' then { s: obj }
49
45
  when 'Symbol' then { s: obj.to_s }
50
46
  when 'Numeric', 'Fixnum', 'Float', 'Integer'
51
47
  if obj.to_i != 0 and obj != '0'
@@ -55,7 +51,7 @@ module TinyDyno
55
51
  elsif obj.is_a?(Integer)
56
52
  { n: obj.to_s }
57
53
  elsif obj.nil?
58
- { n: nil }
54
+ { null: true }
59
55
  else
60
56
  raise TinyDyno::Errors::InvalidValueType.new(klass: self.class, name: type, value: obj)
61
57
  end
@@ -142,6 +138,7 @@ module TinyDyno
142
138
  end
143
139
 
144
140
  def doc_attribute(value)
141
+ return nil if value.nil?
145
142
  av = TinyDyno::Adapter::AttributeValue.new
146
143
  av.unmarshal(value)
147
144
  end
@@ -68,7 +68,6 @@ module TinyDyno
68
68
  end
69
69
  end
70
70
 
71
-
72
71
  private
73
72
 
74
73
  # minimimum implementation for now
@@ -3,6 +3,7 @@ module TinyDyno
3
3
  extend ActiveSupport::Concern
4
4
 
5
5
  def save(options = {})
6
+ return false unless self.valid?
6
7
  if new_record?
7
8
  if request_put_item(options)
8
9
  changes_applied
@@ -1,3 +1,3 @@
1
1
  module TinyDyno
2
- VERSION = '0.1.21'
2
+ VERSION = '0.1.22'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tiny_dyno
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.21
4
+ version: 0.1.22
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tobias Gerschner