parse-stack 1.0.4 → 1.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Changes.md +5 -0
- data/Gemfile.lock +1 -1
- data/lib/parse/model/core/properties.rb +22 -6
- data/lib/parse/model/object.rb +7 -0
- data/lib/parse/stack/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 93fb8b8b1962db48f30eb4e1ae2f7172b8377ed6
|
4
|
+
data.tar.gz: 8dbf85b25286a790c48d88dbc52228bbf8a66838
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3768e70a0e368697101e6a6d12e178cae15593950441876999b4e01377aa14ebb721be405d910651ffa399b5e6d760fa7f7a47b268665b760e5b47f4704f1b59
|
7
|
+
data.tar.gz: 56cb920091be91a880acd7667732f7d90f88fcd6dc174a7bd0bd5048b336a5538713f1117e0a5149beec612c13802669b1b28452bf4a9279a666d34f2f1dbe5e
|
data/Changes.md
CHANGED
data/Gemfile.lock
CHANGED
@@ -61,6 +61,10 @@ module Parse
|
|
61
61
|
@attributes ||= BASE.dup
|
62
62
|
end
|
63
63
|
|
64
|
+
def defaults_list
|
65
|
+
@defaults_list ||= []
|
66
|
+
end
|
67
|
+
|
64
68
|
# property :songs, :array
|
65
69
|
# property :my_date, :date, field: "myRemoteCOLUMNName"
|
66
70
|
# property :my_int, :integer, required: true, default: ->{ rand(10) }
|
@@ -126,9 +130,8 @@ module Parse
|
|
126
130
|
validates_presence_of key
|
127
131
|
end
|
128
132
|
|
129
|
-
# get the default value if provided (or Proc)
|
130
|
-
default_value = opts[:default]
|
131
133
|
symbolize_value = opts[:symbolize]
|
134
|
+
|
132
135
|
#only support symbolization of string data types
|
133
136
|
if symbolize_value && data_type != :string
|
134
137
|
raise 'Symbolization is only supported on :string data types.'
|
@@ -137,6 +140,18 @@ module Parse
|
|
137
140
|
# Here is the where the 'magic' begins. For each property defined, we will
|
138
141
|
# generate special setters and getters that will take advantage of ActiveModel
|
139
142
|
# helpers.
|
143
|
+
# get the default value if provided (or Proc)
|
144
|
+
default_value = opts[:default]
|
145
|
+
if default_value.present?
|
146
|
+
defaults_list.push(key) if default_value.present?
|
147
|
+
|
148
|
+
define_method("#{key}_default") do
|
149
|
+
# If the default object provided is a Proc, then run the proc, otherwise
|
150
|
+
# we'll assume it's just a plain literal value
|
151
|
+
default_value.is_a?(Proc) ? default_value.call(self) : default_value
|
152
|
+
end
|
153
|
+
|
154
|
+
end
|
140
155
|
|
141
156
|
# We define a getter with the key
|
142
157
|
define_method(key) do
|
@@ -158,12 +173,12 @@ module Parse
|
|
158
173
|
|
159
174
|
# if value is nil (even after fetching), then lets see if the developer
|
160
175
|
# set a default value for this attribute.
|
161
|
-
if value.nil? &&
|
162
|
-
|
163
|
-
|
164
|
-
value = default_value.is_a?(Proc) ? default_value.call : default_value
|
176
|
+
if value.nil? && respond_to?("#{key}_default")
|
177
|
+
|
178
|
+
value = send("#{key}_default")
|
165
179
|
# lets set the variable with the updated value
|
166
180
|
instance_variable_set ivar, value
|
181
|
+
send "#{key}_will_change!"
|
167
182
|
end
|
168
183
|
|
169
184
|
# if the value is a String (like an iso8601 date) and the data type of
|
@@ -171,6 +186,7 @@ module Parse
|
|
171
186
|
if value.is_a?(String) && data_type == :date
|
172
187
|
value = Parse::Date.parse value
|
173
188
|
instance_variable_set ivar, value
|
189
|
+
send "#{key}_will_change!"
|
174
190
|
end
|
175
191
|
# finally return the value
|
176
192
|
symbolize_value && value.respond_to?(:to_sym) ? value.to_sym : value
|
data/lib/parse/model/object.rb
CHANGED
@@ -142,9 +142,16 @@ module Parse
|
|
142
142
|
self.acl = self.class.acl({}, owner: self) || Parse::ACL.new(owner: self)
|
143
143
|
end
|
144
144
|
clear_changes! if @id.present? #then it was an import
|
145
|
+
apply_defaults!
|
145
146
|
# do not call super since it is Pointer subclass
|
146
147
|
end
|
147
148
|
|
149
|
+
def apply_defaults!
|
150
|
+
self.class.defaults_list.each do |key|
|
151
|
+
send(key) # should call set default proc/values if nil
|
152
|
+
end
|
153
|
+
end
|
154
|
+
|
148
155
|
def self.pointer(id)
|
149
156
|
return nil if id.nil?
|
150
157
|
Parse::Pointer.new self.parse_class, id
|
data/lib/parse/stack/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: parse-stack
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Anthony Persaud
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-02-
|
12
|
+
date: 2016-02-13 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activemodel
|