parse-stack 1.1.0 → 1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Changes.md +9 -0
- data/Gemfile.lock +3 -3
- data/lib/parse/api/batch.rb +1 -1
- data/lib/parse/model/associations/belongs_to.rb +5 -5
- data/lib/parse/model/associations/has_many.rb +1 -1
- data/lib/parse/model/model.rb +4 -4
- data/lib/parse/query.rb +1 -1
- data/lib/parse/query/constraint.rb +1 -0
- data/lib/parse/stack/version.rb +1 -1
- data/lib/parse/webhooks.rb +1 -1
- data/lib/parse/webhooks/payload.rb +5 -1
- data/parse-stack.gemspec +2 -2
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bf40f379f94d3898e1137ebea7234f26ac72ba83
|
4
|
+
data.tar.gz: 465a943525167ee9d4f817d5b0591d2c930f4099
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 69209f3b6b89af9f4f7f0f91f4848a76497359b47300b75d662261482deded101bff8b80f5ce230671c2459da2789a9af7e7473af54d8efd7ff6bd7dfc8b1a15
|
7
|
+
data.tar.gz: cfca41f8ff74a8f4b3df8374d3e0de9ef47ee4ff25cd39df288f6f33dc8a01e6946b6d78580b09d74b5771d79e14e8a258a48c5e51ad7c7c7e22a5960ac0b68f
|
data/Changes.md
CHANGED
@@ -1,5 +1,14 @@
|
|
1
1
|
# Parse-Stack Changes
|
2
2
|
|
3
|
+
1.2
|
4
|
+
-----------
|
5
|
+
- Fixes issues with first_or_create.
|
6
|
+
- Fixes issue when singularizing :belongs_to and :has_many property names.
|
7
|
+
- Makes sure time is sent as UTC in queries.
|
8
|
+
- Allows for authData to be applied as an update to a before_save for a Parse::User.
|
9
|
+
- Webhooks allow for returning empty data sets and `false` from webhook functions.
|
10
|
+
- Minimum version for ActiveModel and ActiveSupport is now 4.2.1
|
11
|
+
|
3
12
|
1.1
|
4
13
|
-----------
|
5
14
|
- In Query `join` has been renamed to `matches`.
|
data/Gemfile.lock
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
parse-stack (1.
|
4
|
+
parse-stack (1.2)
|
5
5
|
active_model_serializers (>= 0.9, < 1)
|
6
|
-
activemodel (>= 4, < 5)
|
7
|
-
activesupport (>= 4, < 5)
|
6
|
+
activemodel (>= 4.2.1, < 5)
|
7
|
+
activesupport (>= 4.2.1, < 5)
|
8
8
|
faraday (>= 0.8, < 1)
|
9
9
|
faraday_middleware (>= 0.9, < 1)
|
10
10
|
moneta (>= 0.7, < 1)
|
data/lib/parse/api/batch.rb
CHANGED
@@ -30,10 +30,10 @@ module Parse
|
|
30
30
|
# These items are added as attributes with the special data type of :pointer
|
31
31
|
def belongs_to(key, opts = {})
|
32
32
|
opts = {as: key, field: key.to_s.camelize(:lower), required: false}.merge(opts)
|
33
|
-
|
33
|
+
klassName = opts[:as].to_parse_class
|
34
34
|
parse_field = opts[:field].to_sym
|
35
35
|
if self.fields[key].present? && Parse::Properties::BASE_FIELD_MAP[key].nil?
|
36
|
-
raise Parse::Properties::DefinitionError, "Belongs relation #{self}##{key} already defined with type #{
|
36
|
+
raise Parse::Properties::DefinitionError, "Belongs relation #{self}##{key} already defined with type #{klassName}"
|
37
37
|
end
|
38
38
|
if self.fields[parse_field].present?
|
39
39
|
raise Parse::Properties::DefinitionError, "Alias belongs_to #{self}##{parse_field} conflicts with previously defined property."
|
@@ -42,7 +42,7 @@ module Parse
|
|
42
42
|
# we know the type is pointer.
|
43
43
|
self.attributes.merge!( parse_field => :pointer )
|
44
44
|
# Add them to our list of pointer references
|
45
|
-
self.references.merge!( parse_field =>
|
45
|
+
self.references.merge!( parse_field => klassName )
|
46
46
|
# Add them to the list of fields in our class model
|
47
47
|
self.fields.merge!( key => :pointer, parse_field => :pointer )
|
48
48
|
# Mapping between local attribute name and the remote column name
|
@@ -69,7 +69,7 @@ module Parse
|
|
69
69
|
# hash, lets try to buid a Pointer of that type.
|
70
70
|
|
71
71
|
if val.is_a?(Hash) && ( val["__type"].freeze == "Pointer".freeze || val["__type"].freeze == "Object".freeze )
|
72
|
-
val = Parse::Object.build val, ( val["className"] ||
|
72
|
+
val = Parse::Object.build val, ( val["className"] || klassName )
|
73
73
|
instance_variable_set ivar, val
|
74
74
|
end
|
75
75
|
val
|
@@ -87,7 +87,7 @@ module Parse
|
|
87
87
|
# We only support pointers, either by object or by transforming a hash.
|
88
88
|
define_method("#{key}_set_attribute!") do |val, track = true|
|
89
89
|
if val.is_a?(Hash) && ( val["__type"].freeze == "Pointer".freeze || val["__type"].freeze == "Object".freeze )
|
90
|
-
val = Parse::Object.build val, ( val["className"] ||
|
90
|
+
val = Parse::Object.build val, ( val["className"] || klassName )
|
91
91
|
end
|
92
92
|
if track == true
|
93
93
|
send :"#{key}_will_change!" unless val == instance_variable_get( :"@#{key}" )
|
@@ -62,7 +62,7 @@ module Parse
|
|
62
62
|
required: false,
|
63
63
|
as: key}.merge(opts)
|
64
64
|
|
65
|
-
klassName = opts[:as].to_parse_class
|
65
|
+
klassName = opts[:as].to_parse_class singularize: true
|
66
66
|
parse_field = opts[:field].to_sym
|
67
67
|
access_type = opts[:through].to_sym
|
68
68
|
# verify that the user did not duplicate properties or defined different properties with the same name
|
data/lib/parse/model/model.rb
CHANGED
@@ -91,8 +91,8 @@ class String
|
|
91
91
|
end;
|
92
92
|
|
93
93
|
#users for properties: ex. :users -> "_User" or :songs -> Song
|
94
|
-
def to_parse_class
|
95
|
-
final_class = self.singularize.camelize
|
94
|
+
def to_parse_class(singularize: false)
|
95
|
+
final_class = singularize ? self.singularize.camelize : self.camelize
|
96
96
|
klass = Parse::Model.find_class(final_class) || Parse::Model.find_class(self)
|
97
97
|
#handles the case that a class has a custom parse table
|
98
98
|
final_class = klass.parse_class if klass.present?
|
@@ -114,7 +114,7 @@ class Symbol
|
|
114
114
|
to_s.camelize
|
115
115
|
end
|
116
116
|
|
117
|
-
def to_parse_class
|
118
|
-
to_s.to_parse_class
|
117
|
+
def to_parse_class(singularize: false)
|
118
|
+
to_s.to_parse_class(singularize: singularize)
|
119
119
|
end
|
120
120
|
end
|
data/lib/parse/query.rb
CHANGED
@@ -116,6 +116,7 @@ module Parse
|
|
116
116
|
# This method formats the value based on some specific data types.
|
117
117
|
def formatted_value
|
118
118
|
d = @value
|
119
|
+
d = { __type: "Date", iso: d.utc.iso8601(3) } if d.respond_to?(:utc)
|
119
120
|
d = { __type: "Date", iso: d.iso8601(3) } if d.respond_to?(:iso8601)
|
120
121
|
d = d.pointer if d.respond_to?(:pointer) #simplified query object
|
121
122
|
d = d.to_s if d.is_a?(Regexp)
|
data/lib/parse/stack/version.rb
CHANGED
data/lib/parse/webhooks.rb
CHANGED
@@ -209,7 +209,7 @@ module Parse
|
|
209
209
|
puts "[ParseWebhooks] --> Could not find mapping route for #{payload}"
|
210
210
|
end
|
211
211
|
|
212
|
-
result = true if result.
|
212
|
+
result = true if result.nil?
|
213
213
|
if self.logging.present?
|
214
214
|
puts "[ParseWebhooks Response] ----------------------------"
|
215
215
|
puts success(result)
|
@@ -27,7 +27,7 @@ module Parse
|
|
27
27
|
@object = hash[:object]
|
28
28
|
@trigger_name = hash[:trigger_name]
|
29
29
|
@original = hash[:original]
|
30
|
-
@update = hash[:update] #it comes as an update hash
|
30
|
+
@update = hash[:update] || {} #it comes as an update hash
|
31
31
|
end
|
32
32
|
|
33
33
|
def function?
|
@@ -93,6 +93,10 @@ module Parse
|
|
93
93
|
if @original.present? && @original.is_a?(Hash)
|
94
94
|
o = Parse::Object.build @original
|
95
95
|
o.apply_attributes! @object, dirty_track: true
|
96
|
+
|
97
|
+
if o.is_a?(Parse::User) && @update.present? && @update["authData"].present?
|
98
|
+
o.auth_data = @update["authData"]
|
99
|
+
end
|
96
100
|
return o
|
97
101
|
else #else the object must be new
|
98
102
|
klass = Parse::Object.find_class parse_class
|
data/parse-stack.gemspec
CHANGED
@@ -26,8 +26,8 @@ Gem::Specification.new do |spec|
|
|
26
26
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
27
27
|
spec.require_paths = ["lib"]
|
28
28
|
|
29
|
-
spec.add_runtime_dependency "activemodel", [">= 4", "< 5"]
|
30
|
-
spec.add_runtime_dependency "activesupport", [">= 4", "< 5"]
|
29
|
+
spec.add_runtime_dependency "activemodel", [">= 4.2.1", "< 5"]
|
30
|
+
spec.add_runtime_dependency "activesupport", [">= 4.2.1", "< 5"]
|
31
31
|
spec.add_runtime_dependency "active_model_serializers", [">= 0.9", "< 1"]
|
32
32
|
spec.add_runtime_dependency "parallel", [">= 1.6", "< 2"]
|
33
33
|
spec.add_runtime_dependency "faraday", [">= 0.8", "< 1"]
|
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.
|
4
|
+
version: '1.2'
|
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-
|
12
|
+
date: 2016-06-08 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activemodel
|
@@ -17,7 +17,7 @@ dependencies:
|
|
17
17
|
requirements:
|
18
18
|
- - ">="
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version:
|
20
|
+
version: 4.2.1
|
21
21
|
- - "<"
|
22
22
|
- !ruby/object:Gem::Version
|
23
23
|
version: '5'
|
@@ -27,7 +27,7 @@ dependencies:
|
|
27
27
|
requirements:
|
28
28
|
- - ">="
|
29
29
|
- !ruby/object:Gem::Version
|
30
|
-
version:
|
30
|
+
version: 4.2.1
|
31
31
|
- - "<"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '5'
|
@@ -37,7 +37,7 @@ dependencies:
|
|
37
37
|
requirements:
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 4.2.1
|
41
41
|
- - "<"
|
42
42
|
- !ruby/object:Gem::Version
|
43
43
|
version: '5'
|
@@ -47,7 +47,7 @@ dependencies:
|
|
47
47
|
requirements:
|
48
48
|
- - ">="
|
49
49
|
- !ruby/object:Gem::Version
|
50
|
-
version:
|
50
|
+
version: 4.2.1
|
51
51
|
- - "<"
|
52
52
|
- !ruby/object:Gem::Version
|
53
53
|
version: '5'
|