tiny_dyno 0.1.21 → 0.1.22

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
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