data_steroid 0.5.0.1 → 0.5.1
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 +4 -4
- data/lib/data_steroid/entity.rb +19 -8
- data/lib/data_steroid/persistable/savable.rb +13 -11
- data/lib/data_steroid/properties.rb +1 -1
- data/lib/data_steroid/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 417fc8643cd58e294b41e4e398f2d396926433fa
|
4
|
+
data.tar.gz: ae03ebb310a2ea626a9f632e0588fc191aebdaeb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e8f27753c9ba2a3955736aa1e63b1e778ce3d26fbcf4c320172757ab5f143bdf90f9c258859947f509cfaaf380ddc5047eb570921e5f04882103a4cb617fe33a
|
7
|
+
data.tar.gz: a52d9ce78d4294f353483cf699218617ac215f1fcb29bf5604302ab5c39a1857c430bd59fd894ae48b87594600680c2217eb0f253a74485a15c8e9d60b0e9513
|
data/lib/data_steroid/entity.rb
CHANGED
@@ -27,19 +27,18 @@ module DataSteroid
|
|
27
27
|
end
|
28
28
|
|
29
29
|
def to_gcloud
|
30
|
-
|
31
|
-
|
32
|
-
hash[property] = send(property)
|
30
|
+
properties_names.each_with_object({}) do |property, hash|
|
31
|
+
hash[property] = type_cast_for_storage send(property)
|
33
32
|
end
|
34
|
-
hash.sort.to_h
|
35
33
|
end
|
36
34
|
|
37
35
|
def to_csv
|
38
|
-
values = to_gcloud.sort.to_h.values.map! do |
|
39
|
-
|
40
|
-
|
36
|
+
values = to_gcloud.sort.to_h.values.map! do |value|
|
37
|
+
case value
|
38
|
+
when Time
|
39
|
+
value.to_formatted_s(:db)
|
41
40
|
else
|
42
|
-
|
41
|
+
value.to_s.gsub(',', '')
|
43
42
|
end
|
44
43
|
end
|
45
44
|
values.join(',')
|
@@ -48,6 +47,18 @@ module DataSteroid
|
|
48
47
|
def self.kind(kind_name)
|
49
48
|
self.kind = kind_name
|
50
49
|
end
|
50
|
+
|
51
|
+
protected
|
52
|
+
|
53
|
+
# Based on https://github.com/rails/rails/blob/v5.0.0.1/activerecord/lib/active_record/type_caster/map.rb
|
54
|
+
def type_cast_for_storage(value)
|
55
|
+
case value
|
56
|
+
when Symbol
|
57
|
+
value.to_s
|
58
|
+
else
|
59
|
+
value
|
60
|
+
end
|
61
|
+
end
|
51
62
|
end
|
52
63
|
|
53
64
|
class_methods do
|
@@ -16,29 +16,31 @@ module DataSteroid
|
|
16
16
|
send(name)
|
17
17
|
end
|
18
18
|
|
19
|
-
@gcloud_entity ||= self.class.datastore_entity
|
20
|
-
|
21
19
|
to_gcloud.each_pair do |key, value|
|
22
20
|
if key == 'id' && value.present?
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
elsif @gcloud_entity.properties.exist? key
|
29
|
-
@gcloud_entity.properties.delete key
|
21
|
+
gcloud_entity.key = gcloud_key unless gcloud_entity.persisted?
|
22
|
+
elsif value.present?
|
23
|
+
gcloud_entity[key] = value
|
24
|
+
elsif gcloud_entity.properties.exist? key
|
25
|
+
gcloud_entity.properties.delete key
|
30
26
|
end
|
31
27
|
end
|
32
28
|
|
33
|
-
if (result = self.class.datastore.save(
|
29
|
+
if (result = self.class.datastore.save(gcloud_entity).first)
|
34
30
|
send('id=', result.key.id) if id.nil?
|
35
31
|
true
|
36
32
|
else
|
37
33
|
false
|
38
34
|
end
|
39
35
|
end
|
36
|
+
|
37
|
+
protected
|
38
|
+
|
39
|
+
def gcloud_entity
|
40
|
+
@gcloud_entity ||= self.class.datastore_entity
|
41
|
+
end
|
40
42
|
end
|
41
|
-
|
43
|
+
|
42
44
|
class_methods do
|
43
45
|
def before_save(method)
|
44
46
|
before_save_methods << method
|
data/lib/data_steroid/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: data_steroid
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Fabio Tomio
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-10-
|
11
|
+
date: 2016-10-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activemodel
|
@@ -108,7 +108,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
108
108
|
version: '0'
|
109
109
|
requirements: []
|
110
110
|
rubyforge_project:
|
111
|
-
rubygems_version: 2.6.
|
111
|
+
rubygems_version: 2.6.7
|
112
112
|
signing_key:
|
113
113
|
specification_version: 4
|
114
114
|
summary: Google Datastore ODM
|