parse-stack 1.8.0 → 1.8.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/.solargraph.yml +23 -0
- data/.travis.yml +0 -1
- data/Gemfile +13 -12
- data/Gemfile.lock +88 -51
- data/README.md +2 -4
- data/Rakefile +14 -14
- data/lib/parse/api/aggregate.rb +4 -7
- data/lib/parse/api/all.rb +1 -1
- data/lib/parse/api/analytics.rb +0 -3
- data/lib/parse/api/batch.rb +3 -5
- data/lib/parse/api/cloud_functions.rb +0 -3
- data/lib/parse/api/config.rb +0 -4
- data/lib/parse/api/files.rb +3 -7
- data/lib/parse/api/hooks.rb +4 -8
- data/lib/parse/api/objects.rb +7 -12
- data/lib/parse/api/push.rb +0 -4
- data/lib/parse/api/schema.rb +2 -6
- data/lib/parse/api/server.rb +4 -7
- data/lib/parse/api/sessions.rb +2 -5
- data/lib/parse/api/users.rb +9 -14
- data/lib/parse/client.rb +54 -50
- data/lib/parse/client/authentication.rb +29 -33
- data/lib/parse/client/batch.rb +8 -11
- data/lib/parse/client/body_builder.rb +19 -20
- data/lib/parse/client/caching.rb +23 -28
- data/lib/parse/client/protocol.rb +11 -12
- data/lib/parse/client/request.rb +4 -6
- data/lib/parse/client/response.rb +5 -7
- data/lib/parse/model/acl.rb +14 -12
- data/lib/parse/model/associations/belongs_to.rb +14 -21
- data/lib/parse/model/associations/collection_proxy.rb +328 -329
- data/lib/parse/model/associations/has_many.rb +18 -25
- data/lib/parse/model/associations/has_one.rb +6 -11
- data/lib/parse/model/associations/pointer_collection_proxy.rb +5 -8
- data/lib/parse/model/associations/relation_collection_proxy.rb +5 -9
- data/lib/parse/model/bytes.rb +8 -10
- data/lib/parse/model/classes/installation.rb +2 -4
- data/lib/parse/model/classes/product.rb +2 -5
- data/lib/parse/model/classes/role.rb +3 -5
- data/lib/parse/model/classes/session.rb +2 -5
- data/lib/parse/model/classes/user.rb +20 -16
- data/lib/parse/model/core/actions.rb +31 -46
- data/lib/parse/model/core/builder.rb +6 -6
- data/lib/parse/model/core/errors.rb +0 -1
- data/lib/parse/model/core/fetching.rb +45 -50
- data/lib/parse/model/core/properties.rb +51 -66
- data/lib/parse/model/core/querying.rb +291 -294
- data/lib/parse/model/core/schema.rb +89 -92
- data/lib/parse/model/date.rb +16 -17
- data/lib/parse/model/file.rb +171 -174
- data/lib/parse/model/geopoint.rb +12 -16
- data/lib/parse/model/model.rb +31 -37
- data/lib/parse/model/object.rb +47 -53
- data/lib/parse/model/pointer.rb +177 -176
- data/lib/parse/model/push.rb +8 -10
- data/lib/parse/model/shortnames.rb +1 -2
- data/lib/parse/model/time_zone.rb +3 -5
- data/lib/parse/query.rb +34 -35
- data/lib/parse/query/constraint.rb +4 -6
- data/lib/parse/query/constraints.rb +21 -29
- data/lib/parse/query/operation.rb +8 -11
- data/lib/parse/query/ordering.rb +45 -49
- data/lib/parse/stack.rb +11 -12
- data/lib/parse/stack/generators/rails.rb +28 -30
- data/lib/parse/stack/generators/templates/model.erb +5 -6
- data/lib/parse/stack/generators/templates/model_installation.rb +0 -1
- data/lib/parse/stack/generators/templates/model_role.rb +0 -1
- data/lib/parse/stack/generators/templates/model_session.rb +0 -1
- data/lib/parse/stack/generators/templates/model_user.rb +0 -1
- data/lib/parse/stack/generators/templates/parse.rb +9 -9
- data/lib/parse/stack/generators/templates/webhooks.rb +1 -2
- data/lib/parse/stack/railtie.rb +2 -4
- data/lib/parse/stack/tasks.rb +70 -86
- data/lib/parse/stack/version.rb +1 -1
- data/lib/parse/webhooks.rb +19 -26
- data/lib/parse/webhooks/payload.rb +26 -28
- data/lib/parse/webhooks/registration.rb +23 -31
- data/parse-stack.gemspec +25 -25
- data/parse-stack.png +0 -0
- metadata +13 -7
- data/.github/parse-ruby-sdk.png +0 -0
data/lib/parse/stack/version.rb
CHANGED
data/lib/parse/webhooks.rb
CHANGED
@@ -1,21 +1,20 @@
|
|
1
1
|
# encoding: UTF-8
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
|
-
require
|
5
|
-
require
|
6
|
-
require
|
7
|
-
require
|
8
|
-
require
|
9
|
-
require
|
10
|
-
require
|
11
|
-
require_relative
|
12
|
-
require_relative
|
13
|
-
require_relative
|
14
|
-
require_relative
|
15
|
-
require_relative
|
4
|
+
require "active_model"
|
5
|
+
require "active_support"
|
6
|
+
require "active_support/inflector"
|
7
|
+
require "active_support/core_ext/object"
|
8
|
+
require "active_support/core_ext"
|
9
|
+
require "active_model_serializers"
|
10
|
+
require "rack"
|
11
|
+
require_relative "client"
|
12
|
+
require_relative "stack"
|
13
|
+
require_relative "model/object"
|
14
|
+
require_relative "webhooks/payload"
|
15
|
+
require_relative "webhooks/registration"
|
16
16
|
|
17
17
|
module Parse
|
18
|
-
|
19
18
|
class Object
|
20
19
|
|
21
20
|
# Register a webhook function for this subclass.
|
@@ -55,7 +54,6 @@ module Parse
|
|
55
54
|
# @param block [Symbol] the name of the method to call, if no block is passed.
|
56
55
|
# @return (see Parse::Webhooks.route)
|
57
56
|
def self.webhook(type, block = nil)
|
58
|
-
|
59
57
|
if type == :function
|
60
58
|
unless block.is_a?(String) || block.is_a?(Symbol)
|
61
59
|
raise ArgumentError, "Invalid Cloud Code function name: #{block}"
|
@@ -72,7 +70,6 @@ module Parse
|
|
72
70
|
#if block
|
73
71
|
|
74
72
|
end
|
75
|
-
|
76
73
|
end
|
77
74
|
|
78
75
|
# A Rack-based application middlware to handle incoming Parse cloud code webhook
|
@@ -80,7 +77,7 @@ module Parse
|
|
80
77
|
class Webhooks
|
81
78
|
# The error to be raised in registered trigger or function webhook blocks that
|
82
79
|
# will trigger the Parse::Webhooks application to return the proper error response.
|
83
|
-
class ResponseError < StandardError; end
|
80
|
+
class ResponseError < StandardError; end
|
84
81
|
|
85
82
|
include Client::Connectable
|
86
83
|
extend Parse::Webhooks::Registration
|
@@ -91,7 +88,6 @@ module Parse
|
|
91
88
|
# The content type that needs to be sent back to Parse server.
|
92
89
|
CONTENT_TYPE = "application/json"
|
93
90
|
|
94
|
-
|
95
91
|
# The Parse Webhook Key to be used for authenticating webhook requests.
|
96
92
|
# See {Parse::Webhooks.key} on setting this value.
|
97
93
|
# @return [String]
|
@@ -117,7 +113,7 @@ module Parse
|
|
117
113
|
def routes
|
118
114
|
return @routes unless @routes.nil?
|
119
115
|
r = Parse::API::Hooks::TRIGGER_NAMES_LOCAL + [:function]
|
120
|
-
@routes = OpenStruct.new(
|
116
|
+
@routes = OpenStruct.new(r.reduce({}) { |h, t| h[t] = {}; h })
|
121
117
|
end
|
122
118
|
|
123
119
|
# Internally registers a route for a specific webhook trigger or function.
|
@@ -142,7 +138,6 @@ module Parse
|
|
142
138
|
|
143
139
|
# AfterSave/AfterDelete hooks support more than one
|
144
140
|
if type == :after_save || type == :after_delete
|
145
|
-
|
146
141
|
routes[type][className] ||= []
|
147
142
|
routes[type][className].push block
|
148
143
|
else
|
@@ -192,7 +187,7 @@ module Parse
|
|
192
187
|
result.run_callbacks(:destroy) { false }
|
193
188
|
result = true
|
194
189
|
end
|
195
|
-
elsif type == :before_save && (
|
190
|
+
elsif type == :before_save && (result == true || result.nil?)
|
196
191
|
# Open Source Parse server does not accept true results on before_save hooks.
|
197
192
|
result = {}
|
198
193
|
end
|
@@ -219,8 +214,9 @@ module Parse
|
|
219
214
|
# the value of ENV['PARSE_SERVER_WEBHOOK_KEY'] if not configured.
|
220
215
|
# @return [String]
|
221
216
|
attr_accessor :key
|
217
|
+
|
222
218
|
def key
|
223
|
-
@key ||= ENV[
|
219
|
+
@key ||= ENV["PARSE_SERVER_WEBHOOK_KEY"] || ENV["PARSE_WEBHOOK_KEY"]
|
224
220
|
end
|
225
221
|
|
226
222
|
# Standard Rack call method. This method processes an incoming cloud code
|
@@ -238,7 +234,6 @@ module Parse
|
|
238
234
|
|
239
235
|
# @!visibility private
|
240
236
|
def call!(env)
|
241
|
-
|
242
237
|
request = Rack::Request.new env
|
243
238
|
response = Rack::Response.new
|
244
239
|
|
@@ -304,16 +299,14 @@ module Parse
|
|
304
299
|
elsif payload.function?
|
305
300
|
puts "[Webhooks::ResponseError] >> #{payload.function_name}: #{e}"
|
306
301
|
end
|
307
|
-
response.write error(
|
302
|
+
response.write error(e.to_s)
|
308
303
|
return response.finish
|
309
304
|
end
|
310
305
|
|
311
306
|
#check if we can handle the type trigger/functionName
|
312
|
-
response.write(
|
307
|
+
response.write(success)
|
313
308
|
response.finish
|
314
309
|
end # call
|
315
|
-
|
316
310
|
end #class << self
|
317
311
|
end # Webhooks
|
318
|
-
|
319
312
|
end # Parse
|
@@ -1,31 +1,31 @@
|
|
1
1
|
# encoding: UTF-8
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
|
-
require
|
5
|
-
require
|
6
|
-
require
|
7
|
-
require
|
8
|
-
require
|
9
|
-
require
|
10
|
-
require
|
4
|
+
require "active_model"
|
5
|
+
require "active_support"
|
6
|
+
require "active_support/inflector"
|
7
|
+
require "active_support/core_ext/object"
|
8
|
+
require "active_support/core_ext/string"
|
9
|
+
require "active_support/core_ext"
|
10
|
+
require "active_model_serializers"
|
11
11
|
|
12
12
|
module Parse
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
13
|
+
class Webhooks
|
14
|
+
# Represents the data structure that Parse server sends to a registered webhook.
|
15
|
+
# Parse Parse allows you to receive Cloud Code webhooks on your own hosted
|
16
|
+
# server. The `Parse::Webhooks` class is a lightweight Rack application that
|
17
|
+
# routes incoming Cloud Code webhook requests and payloads to locally
|
18
|
+
# registered handlers. The payloads are {Parse::Webhooks::Payload} type of objects that
|
19
|
+
# represent that data that Parse sends webhook handlers.
|
20
|
+
class Payload
|
21
21
|
# The set of keys that can be contained in a Parse hash payload for a webhook.
|
22
22
|
ATTRIBUTES = { master: nil, user: nil,
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
23
|
+
installationId: nil, params: nil,
|
24
|
+
functionName: nil, object: nil,
|
25
|
+
original: nil, update: nil,
|
26
|
+
query: nil, log: nil,
|
27
|
+
objects: nil,
|
28
|
+
triggerName: nil }.freeze
|
29
29
|
include ::ActiveModel::Serializers::JSON
|
30
30
|
# @!attribute [rw] master
|
31
31
|
# @return [Boolean] whether the master key was used for this request.
|
@@ -75,7 +75,7 @@ module Parse
|
|
75
75
|
# @see Parse::Webhooks
|
76
76
|
def initialize(hash = {})
|
77
77
|
hash = JSON.parse(hash) if hash.is_a?(String)
|
78
|
-
hash = Hash[hash.map{ |k, v| [k.to_s.underscore.to_sym, v] }]
|
78
|
+
hash = Hash[hash.map { |k, v| [k.to_s.underscore.to_sym, v] }]
|
79
79
|
@raw = hash
|
80
80
|
@master = hash[:master]
|
81
81
|
@user = Parse::User.new hash[:user] if hash[:user].present?
|
@@ -125,7 +125,8 @@ module Parse
|
|
125
125
|
def parse_id
|
126
126
|
return nil unless @object.present?
|
127
127
|
@object[Parse::Model::OBJECT_ID] || @object[:objectId]
|
128
|
-
end;
|
128
|
+
end;
|
129
|
+
alias_method :objectId, :parse_id
|
129
130
|
|
130
131
|
# true if this is a webhook trigger request.
|
131
132
|
def trigger?
|
@@ -218,7 +219,6 @@ module Parse
|
|
218
219
|
return o
|
219
220
|
end # if klass.present?
|
220
221
|
end # if we have original
|
221
|
-
|
222
222
|
end # if before_trigger?
|
223
223
|
Parse::Object.build(@object)
|
224
224
|
end
|
@@ -234,13 +234,11 @@ module Parse
|
|
234
234
|
raise Parse::Webhooks::ResponseError, msg
|
235
235
|
end
|
236
236
|
|
237
|
-
|
238
237
|
# @return [Parse::Query] the Parse query for a beforeFind trigger.
|
239
238
|
def parse_query
|
240
239
|
return nil unless parse_class.present? && @query.is_a?(Hash)
|
241
240
|
Parse::Query.new parse_class, @query
|
242
241
|
end
|
243
|
-
|
244
|
-
|
245
|
-
end
|
242
|
+
end # Payload
|
243
|
+
end
|
246
244
|
end
|
@@ -1,11 +1,11 @@
|
|
1
1
|
# encoding: UTF-8
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
|
-
require
|
5
|
-
require
|
6
|
-
require
|
7
|
-
require
|
8
|
-
require
|
4
|
+
require "active_support"
|
5
|
+
require "active_support/inflector"
|
6
|
+
require "active_support/core_ext/object"
|
7
|
+
require "active_support/core_ext/string"
|
8
|
+
require "active_support/core_ext"
|
9
9
|
|
10
10
|
module Parse
|
11
11
|
# Interface to the CloudCode webhooks API.
|
@@ -17,39 +17,35 @@ module Parse
|
|
17
17
|
|
18
18
|
# removes all registered webhook functions with Parse Server.
|
19
19
|
def remove_all_functions!
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
end
|
20
|
+
client.functions.results.sort_by { |f| f["functionName"] }.each do |f|
|
21
|
+
next unless f["url"].present?
|
22
|
+
client.delete_function f["functionName"]
|
23
|
+
yield(f["functionName"]) if block_given?
|
24
|
+
end
|
26
25
|
end
|
27
26
|
|
28
27
|
# removes all registered webhook triggers with Parse Server.
|
29
28
|
def remove_all_triggers!
|
30
|
-
|
31
|
-
client.triggers.results.sort_by { |f| [f['triggerName'],f['className']] }.each do |f|
|
29
|
+
client.triggers.results.sort_by { |f| [f["triggerName"], f["className"]] }.each do |f|
|
32
30
|
next unless f["url"].present?
|
33
31
|
triggerName = f["triggerName"]
|
34
32
|
className = f[Parse::Model::KEY_CLASS_NAME]
|
35
33
|
client.delete_trigger triggerName, className
|
36
|
-
yield(f[
|
34
|
+
yield(f["triggerName"], f[Parse::Model::KEY_CLASS_NAME]) if block_given?
|
37
35
|
end
|
38
|
-
|
39
36
|
end
|
40
37
|
|
41
38
|
# Registers all webhook functions registered with Parse::Stack with Parse server.
|
42
39
|
# @param endpoint [String] a https url that points to the webhook server.
|
43
40
|
def register_functions!(endpoint)
|
44
|
-
|
45
|
-
unless endpoint.present? && (endpoint.starts_with?('http://') || endpoint.starts_with?('https://') )
|
41
|
+
unless endpoint.present? && (endpoint.starts_with?("http://") || endpoint.starts_with?("https://"))
|
46
42
|
raise ArgumentError, "The HOOKS_URL must be http/s: '#{endpoint}''"
|
47
43
|
end
|
48
|
-
endpoint +=
|
44
|
+
endpoint += "/" unless endpoint.ends_with?("/")
|
49
45
|
functionsMap = {}
|
50
46
|
client.functions.results.each do |f|
|
51
47
|
next unless f["url"].present?
|
52
|
-
functionsMap[
|
48
|
+
functionsMap[f["functionName"]] = f["url"]
|
53
49
|
end
|
54
50
|
|
55
51
|
routes.function.keys.sort.each do |functionName|
|
@@ -62,18 +58,16 @@ module Parse
|
|
62
58
|
end
|
63
59
|
yield(functionName) if block_given?
|
64
60
|
end
|
65
|
-
|
66
61
|
end
|
67
62
|
|
68
63
|
# Registers all webhook triggers registered with Parse::Stack with Parse server.
|
69
64
|
# @param endpoint [String] a https url that points to the webhook server.
|
70
65
|
# @param include_wildcard [Boolean] Allow wildcard registrations
|
71
66
|
def register_triggers!(endpoint, include_wildcard: false)
|
72
|
-
|
73
|
-
unless endpoint.present? && (endpoint.starts_with?('http://') || endpoint.starts_with?('https://') )
|
67
|
+
unless endpoint.present? && (endpoint.starts_with?("http://") || endpoint.starts_with?("https://"))
|
74
68
|
raise ArgumentError, "The HOOKS_URL must be http/s: '#{endpoint}''"
|
75
69
|
end
|
76
|
-
endpoint +=
|
70
|
+
endpoint += "/" unless endpoint.ends_with?("/")
|
77
71
|
all_triggers = Parse::API::Hooks::TRIGGER_NAMES_LOCAL
|
78
72
|
|
79
73
|
current_triggers = {}
|
@@ -83,19 +77,19 @@ module Parse
|
|
83
77
|
next unless t["url"].present?
|
84
78
|
trigger_name = t["triggerName"].underscore.to_sym
|
85
79
|
current_triggers[trigger_name] ||= {}
|
86
|
-
current_triggers[trigger_name][
|
80
|
+
current_triggers[trigger_name][t["className"]] = t["url"]
|
87
81
|
end
|
88
82
|
|
89
83
|
all_triggers.each do |trigger|
|
90
84
|
classNames = routes[trigger].keys.dup
|
91
|
-
if include_wildcard && classNames.include?(
|
92
|
-
classNames.delete
|
85
|
+
if include_wildcard && classNames.include?("*") #then create the list for all classes
|
86
|
+
classNames.delete "*" #delete the wildcard before we expand it
|
93
87
|
classNames = classNames + Parse.registered_classes
|
94
88
|
classNames.uniq!
|
95
89
|
end
|
96
90
|
|
97
91
|
classNames.sort.each do |className|
|
98
|
-
next if className ==
|
92
|
+
next if className == "*"
|
99
93
|
url = endpoint + "#{trigger}/#{className}"
|
100
94
|
if current_triggers[trigger][className].present? #then you may need to update
|
101
95
|
next if current_triggers[trigger][className] == url
|
@@ -103,9 +97,8 @@ module Parse
|
|
103
97
|
else
|
104
98
|
client.create_trigger(trigger, className, url)
|
105
99
|
end
|
106
|
-
yield(trigger.columnize,className) if block_given?
|
100
|
+
yield(trigger.columnize, className) if block_given?
|
107
101
|
end
|
108
|
-
|
109
102
|
end
|
110
103
|
end
|
111
104
|
|
@@ -132,7 +125,6 @@ module Parse
|
|
132
125
|
warn "Failed to register Cloud function #{name} with #{url}" if response.error?
|
133
126
|
return response
|
134
127
|
else # must be trigger
|
135
|
-
|
136
128
|
response = client.fetch_trigger(trigger, name)
|
137
129
|
# if it is either an error (which has no results) or there is a result but
|
138
130
|
# no registered item with a URL (which implies either none registered or only cloud code registered)
|
@@ -148,7 +140,7 @@ module Parse
|
|
148
140
|
warn "Webhook Registration warning: #{response.result["warning"]}" if response.result.has_key?("warning")
|
149
141
|
warn "Webhook Registration error: #{response.error}" if response.error?
|
150
142
|
return response
|
151
|
-
|
143
|
+
end
|
152
144
|
end
|
153
145
|
end
|
154
146
|
end
|
data/parse-stack.gemspec
CHANGED
@@ -1,18 +1,18 @@
|
|
1
1
|
# coding: utf-8
|
2
|
-
lib = File.expand_path(
|
2
|
+
lib = File.expand_path("../lib", __FILE__)
|
3
3
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
-
require
|
4
|
+
require "parse/stack/version"
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
|
-
spec.name
|
8
|
-
spec.version
|
9
|
-
spec.authors
|
10
|
-
spec.email
|
7
|
+
spec.name = "parse-stack"
|
8
|
+
spec.version = Parse::Stack::VERSION
|
9
|
+
spec.authors = ["Anthony Persaud"]
|
10
|
+
spec.email = ["persaud@modernistik.com"]
|
11
11
|
|
12
|
-
spec.summary
|
13
|
-
spec.description
|
14
|
-
spec.homepage
|
15
|
-
spec.license
|
12
|
+
spec.summary = %q{Parse Server Ruby Client SDK}
|
13
|
+
spec.description = %q{Parse Server Ruby Client. Perform Object-relational mapping between Parse Server and Ruby classes, with authentication, cloud code webhooks, push notifications and more built in.}
|
14
|
+
spec.homepage = "https://github.com/modernistik/parse-stack"
|
15
|
+
spec.license = "MIT"
|
16
16
|
# Prevent pushing this gem to RubyGems.org by setting 'allowed_push_host', or
|
17
17
|
# delete this section to allow pushing this gem to any host.
|
18
18
|
# if spec.respond_to?(:metadata)
|
@@ -21,30 +21,30 @@ Gem::Specification.new do |spec|
|
|
21
21
|
# raise "RubyGems 2.0 or newer is required to protect against public gem pushes."
|
22
22
|
# end
|
23
23
|
|
24
|
-
spec.files
|
25
|
-
spec.bindir
|
26
|
-
spec.executables
|
24
|
+
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
25
|
+
spec.bindir = "bin"
|
26
|
+
spec.executables = ["parse-console"] #spec.files.grep(%r{^bin/pstack/}) { |f| File.basename(f) }
|
27
27
|
spec.require_paths = ["lib"]
|
28
|
-
spec.required_ruby_version =
|
28
|
+
spec.required_ruby_version = ">= 2.2.2"
|
29
29
|
|
30
30
|
spec.add_runtime_dependency "activemodel", [">= 4.2.1", "< 6"]
|
31
31
|
spec.add_runtime_dependency "active_model_serializers", [">= 0.9", "< 1"]
|
32
|
-
spec.add_runtime_dependency "activesupport", [">= 4.2.1", "<
|
32
|
+
spec.add_runtime_dependency "activesupport", [">= 4.2.1", "< 7"]
|
33
33
|
spec.add_runtime_dependency "parallel", [">= 1.6", "< 2"]
|
34
34
|
spec.add_runtime_dependency "faraday", [">= 0.8", "< 1"]
|
35
35
|
spec.add_runtime_dependency "faraday_middleware", [">= 0.9", "< 1"]
|
36
36
|
spec.add_runtime_dependency "moneta", "< 2"
|
37
|
-
spec.add_runtime_dependency "rack", "< 3"
|
37
|
+
spec.add_runtime_dependency "rack", ">= 2.0.6", "< 3"
|
38
38
|
|
39
|
-
# spec.post_install_message = <<UPGRADE
|
40
|
-
#
|
41
|
-
# ** BREAKING CHANGES **
|
42
|
-
# The default `has_many` association form has changed from :array to :query.
|
43
|
-
# To use arrays, you must now pass `through: :array` option to `has_many`.
|
44
|
-
#
|
45
|
-
# Visit: https://github.com/modernistik/parse-stack/wiki/Changes-to-has_many-in-1.5.0
|
46
|
-
#
|
47
|
-
# UPGRADE
|
39
|
+
# spec.post_install_message = <<UPGRADE
|
40
|
+
#
|
41
|
+
# ** BREAKING CHANGES **
|
42
|
+
# The default `has_many` association form has changed from :array to :query.
|
43
|
+
# To use arrays, you must now pass `through: :array` option to `has_many`.
|
44
|
+
#
|
45
|
+
# Visit: https://github.com/modernistik/parse-stack/wiki/Changes-to-has_many-in-1.5.0
|
46
|
+
#
|
47
|
+
# UPGRADE
|
48
48
|
end
|
49
49
|
|
50
50
|
## Development
|
data/parse-stack.png
ADDED
Binary file
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: parse-stack
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.8.
|
4
|
+
version: 1.8.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Anthony Persaud
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-05-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activemodel
|
@@ -59,7 +59,7 @@ dependencies:
|
|
59
59
|
version: 4.2.1
|
60
60
|
- - "<"
|
61
61
|
- !ruby/object:Gem::Version
|
62
|
-
version: '
|
62
|
+
version: '7'
|
63
63
|
type: :runtime
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -69,7 +69,7 @@ dependencies:
|
|
69
69
|
version: 4.2.1
|
70
70
|
- - "<"
|
71
71
|
- !ruby/object:Gem::Version
|
72
|
-
version: '
|
72
|
+
version: '7'
|
73
73
|
- !ruby/object:Gem::Dependency
|
74
74
|
name: parallel
|
75
75
|
requirement: !ruby/object:Gem::Requirement
|
@@ -148,6 +148,9 @@ dependencies:
|
|
148
148
|
name: rack
|
149
149
|
requirement: !ruby/object:Gem::Requirement
|
150
150
|
requirements:
|
151
|
+
- - ">="
|
152
|
+
- !ruby/object:Gem::Version
|
153
|
+
version: 2.0.6
|
151
154
|
- - "<"
|
152
155
|
- !ruby/object:Gem::Version
|
153
156
|
version: '3'
|
@@ -155,6 +158,9 @@ dependencies:
|
|
155
158
|
prerelease: false
|
156
159
|
version_requirements: !ruby/object:Gem::Requirement
|
157
160
|
requirements:
|
161
|
+
- - ">="
|
162
|
+
- !ruby/object:Gem::Version
|
163
|
+
version: 2.0.6
|
158
164
|
- - "<"
|
159
165
|
- !ruby/object:Gem::Version
|
160
166
|
version: '3'
|
@@ -168,8 +174,8 @@ executables:
|
|
168
174
|
extensions: []
|
169
175
|
extra_rdoc_files: []
|
170
176
|
files:
|
171
|
-
- ".github/parse-ruby-sdk.png"
|
172
177
|
- ".gitignore"
|
178
|
+
- ".solargraph.yml"
|
173
179
|
- ".travis.yml"
|
174
180
|
- ".yardopts"
|
175
181
|
- Changes.md
|
@@ -256,6 +262,7 @@ files:
|
|
256
262
|
- lib/parse/webhooks/payload.rb
|
257
263
|
- lib/parse/webhooks/registration.rb
|
258
264
|
- parse-stack.gemspec
|
265
|
+
- parse-stack.png
|
259
266
|
homepage: https://github.com/modernistik/parse-stack
|
260
267
|
licenses:
|
261
268
|
- MIT
|
@@ -275,8 +282,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
275
282
|
- !ruby/object:Gem::Version
|
276
283
|
version: '0'
|
277
284
|
requirements: []
|
278
|
-
|
279
|
-
rubygems_version: 2.7.6
|
285
|
+
rubygems_version: 3.0.8
|
280
286
|
signing_key:
|
281
287
|
specification_version: 4
|
282
288
|
summary: Parse Server Ruby Client SDK
|