parse_resource 1.7.3 → 1.8.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.DS_Store +0 -0
- data/.travis.yml +1 -1
- data/Gemfile +4 -8
- data/Gemfile.lock +27 -23
- data/README.md +81 -2
- data/Rakefile +9 -8
- data/VERSION +1 -1
- data/fixtures/.DS_Store +0 -0
- data/fixtures/vcr_cassettes/.DS_Store +0 -0
- data/fixtures/vcr_cassettes/test_all.yml +319 -34
- data/fixtures/vcr_cassettes/test_attribute_getters.yml +256 -12
- data/fixtures/vcr_cassettes/test_attribute_setters.yml +256 -12
- data/fixtures/vcr_cassettes/test_authenticate.yml +260 -32
- data/fixtures/vcr_cassettes/test_chained_wheres.yml +320 -35
- data/fixtures/vcr_cassettes/test_chunk.yml +1359 -0
- data/fixtures/vcr_cassettes/test_count.yml +495 -84
- data/fixtures/vcr_cassettes/test_create.yml +154 -12
- data/fixtures/vcr_cassettes/test_created_at.yml +256 -12
- data/fixtures/vcr_cassettes/test_destroy.yml +364 -32
- data/fixtures/vcr_cassettes/test_destroy_all.yml +236 -48
- data/fixtures/vcr_cassettes/test_each.yml +488 -56
- data/fixtures/vcr_cassettes/test_fetching_closest_10.yml +1509 -0
- data/fixtures/vcr_cassettes/test_fetching_closest_by_kilometers.yml +1509 -0
- data/fixtures/vcr_cassettes/test_fetching_closest_by_miles.yml +1509 -0
- data/fixtures/vcr_cassettes/test_fetching_closest_by_radians.yml +1509 -0
- data/fixtures/vcr_cassettes/test_fetching_closest_within_box.yml +489 -0
- data/fixtures/vcr_cassettes/test_fetching_geopoint_field.yml +489 -0
- data/fixtures/vcr_cassettes/test_find.yml +312 -24
- data/fixtures/vcr_cassettes/test_find_all_by.yml +170 -34
- data/fixtures/vcr_cassettes/test_find_by.yml +174 -38
- data/fixtures/vcr_cassettes/test_first.yml +260 -23
- data/fixtures/vcr_cassettes/test_id.yml +256 -12
- data/fixtures/vcr_cassettes/test_installation_creation.yml +199 -0
- data/fixtures/vcr_cassettes/test_installation_creation_validation_check.yml +297 -0
- data/fixtures/vcr_cassettes/test_limit.yml +1138 -179
- data/fixtures/vcr_cassettes/test_map.yml +488 -56
- data/fixtures/vcr_cassettes/test_order_ascending.yml +395 -0
- data/fixtures/vcr_cassettes/test_order_descending.yml +446 -0
- data/fixtures/vcr_cassettes/test_save.yml +316 -24
- data/fixtures/vcr_cassettes/test_save_all_and_destroy_all.yml +869 -0
- data/fixtures/vcr_cassettes/test_saving_geo_point_with_quick_init.yml +395 -0
- data/fixtures/vcr_cassettes/test_saving_geopoint_with_coords.yml +395 -0
- data/fixtures/vcr_cassettes/test_skip.yml +120 -525
- data/fixtures/vcr_cassettes/test_update.yml +316 -24
- data/fixtures/vcr_cassettes/test_updated_at.yml +316 -24
- data/fixtures/vcr_cassettes/test_username_should_be_unique.yml +311 -21
- data/fixtures/vcr_cassettes/test_where.yml +117 -25
- data/lib/kaminari_extension.rb +60 -0
- data/lib/parse_resource.rb +4 -2
- data/lib/parse_resource/base.rb +262 -163
- data/lib/parse_resource/client.rb +8 -0
- data/lib/parse_resource/parse_error.rb +36 -22
- data/lib/parse_resource/query.rb +99 -7
- data/lib/parse_resource/query_methods.rb +64 -0
- data/lib/parse_resource/types/parse_geopoint.rb +19 -0
- data/parse_resource.gemspec +29 -9
- data/parse_resource.yml +2 -2
- data/test/active_model_lint_test.rb +0 -2
- data/test/helper.rb +13 -3
- data/test/test_parse_installation.rb +41 -0
- data/test/test_parse_resource.rb +108 -20
- data/test/test_parse_user.rb +4 -7
- data/test/test_query_options.rb +0 -38
- data/test/test_types.rb +186 -0
- metadata +38 -31
data/.DS_Store
ADDED
Binary file
|
data/.travis.yml
CHANGED
@@ -3,4 +3,4 @@ rvm:
|
|
3
3
|
- 1.9.3
|
4
4
|
|
5
5
|
env:
|
6
|
-
- PARSE_RESOURCE_APPLICATION_ID=
|
6
|
+
- PARSE_RESOURCE_APPLICATION_ID=tIcrV2dwbkT7AqjU8Cn8FZFU60hk5qCnMXlJnJQq PARSE_RESOURCE_MASTER_KEY=H6xYlZzvwBZHUBjoyrFKXkWZoCVfqrmC3ARXMZjq
|
data/Gemfile
CHANGED
@@ -1,20 +1,16 @@
|
|
1
|
-
source "
|
2
|
-
# Add dependencies required to use your gem here.
|
3
|
-
# Example:
|
4
|
-
# gem "activesupport", ">= 2.3.5"
|
1
|
+
source "https://rubygems.org"
|
5
2
|
|
6
|
-
# Add dependencies to develop your gem here.
|
7
|
-
# Include everything needed to run rake, tests, features, etc.
|
8
3
|
group :development do
|
9
|
-
gem "bundler", "~> 1.1.5"
|
4
|
+
# gem "bundler", "~> 1.1.5"
|
10
5
|
gem "jeweler", "~> 1.6.4"
|
11
|
-
gem "rcov", ">= 0"
|
6
|
+
# gem "rcov", ">= 0"
|
12
7
|
gem "reek", "~> 1.2.8"
|
13
8
|
gem "rest-client"
|
14
9
|
gem "activesupport"
|
15
10
|
gem "activemodel"
|
16
11
|
gem "vcr"
|
17
12
|
gem "webmock"
|
13
|
+
gem "turn" # Better output for Test::Unit
|
18
14
|
end
|
19
15
|
|
20
16
|
gem "rest-client"
|
data/Gemfile.lock
CHANGED
@@ -1,42 +1,47 @@
|
|
1
1
|
GEM
|
2
|
-
remote:
|
2
|
+
remote: https://rubygems.org/
|
3
3
|
specs:
|
4
|
-
activemodel (3.
|
5
|
-
activesupport (= 3.
|
4
|
+
activemodel (3.2.13)
|
5
|
+
activesupport (= 3.2.13)
|
6
6
|
builder (~> 3.0.0)
|
7
|
-
|
8
|
-
|
7
|
+
activesupport (3.2.13)
|
8
|
+
i18n (= 0.6.1)
|
9
9
|
multi_json (~> 1.0)
|
10
|
-
addressable (2.3.
|
11
|
-
|
12
|
-
|
10
|
+
addressable (2.3.4)
|
11
|
+
ansi (1.4.3)
|
12
|
+
builder (3.0.4)
|
13
|
+
crack (0.3.2)
|
13
14
|
git (1.2.5)
|
14
|
-
i18n (0.6.
|
15
|
+
i18n (0.6.1)
|
15
16
|
jeweler (1.6.4)
|
16
17
|
bundler (~> 1.0)
|
17
18
|
git (>= 1.2.5)
|
18
19
|
rake
|
19
|
-
json (1.7.
|
20
|
-
mime-types (1.
|
21
|
-
multi_json (1.
|
22
|
-
rake (0.
|
23
|
-
|
24
|
-
|
25
|
-
ruby2ruby (~> 1.2)
|
20
|
+
json (1.7.7)
|
21
|
+
mime-types (1.22)
|
22
|
+
multi_json (1.7.2)
|
23
|
+
rake (10.0.4)
|
24
|
+
reek (1.2.13)
|
25
|
+
ripper_ruby_parser (~> 0.0.7)
|
26
|
+
ruby2ruby (~> 1.2.5)
|
26
27
|
ruby_parser (~> 2.0)
|
27
28
|
sexp_processor (~> 3.0)
|
28
29
|
rest-client (1.6.7)
|
29
30
|
mime-types (>= 1.16)
|
30
|
-
|
31
|
+
ripper_ruby_parser (0.0.8)
|
32
|
+
sexp_processor (~> 3.0)
|
33
|
+
ruby2ruby (1.2.5)
|
31
34
|
ruby_parser (~> 2.0)
|
32
35
|
sexp_processor (~> 3.0)
|
33
36
|
ruby_parser (2.3.1)
|
34
37
|
sexp_processor (~> 3.0)
|
35
|
-
sexp_processor (3.0
|
36
|
-
|
37
|
-
|
38
|
+
sexp_processor (3.2.0)
|
39
|
+
turn (0.9.6)
|
40
|
+
ansi
|
41
|
+
vcr (2.4.0)
|
42
|
+
webmock (1.11.0)
|
38
43
|
addressable (>= 2.2.7)
|
39
|
-
crack (>= 0.
|
44
|
+
crack (>= 0.3.2)
|
40
45
|
|
41
46
|
PLATFORMS
|
42
47
|
ruby
|
@@ -44,11 +49,10 @@ PLATFORMS
|
|
44
49
|
DEPENDENCIES
|
45
50
|
activemodel
|
46
51
|
activesupport
|
47
|
-
bundler (~> 1.1.5)
|
48
52
|
jeweler (~> 1.6.4)
|
49
53
|
json
|
50
|
-
rcov
|
51
54
|
reek (~> 1.2.8)
|
52
55
|
rest-client
|
56
|
+
turn
|
53
57
|
vcr
|
54
58
|
webmock
|
data/README.md
CHANGED
@@ -29,12 +29,14 @@ Installation
|
|
29
29
|
Include in your `Gemfile`:
|
30
30
|
|
31
31
|
```ruby
|
32
|
+
gem "kaminari" # optional for pagination support
|
32
33
|
gem "parse_resource", "~> 1.7.2"
|
33
34
|
```
|
34
35
|
|
35
36
|
Or just gem install:
|
36
37
|
|
37
38
|
```ruby
|
39
|
+
gem install kaminari # optional for pagination support
|
38
40
|
gem install parse_resource
|
39
41
|
```
|
40
42
|
|
@@ -93,6 +95,7 @@ p.valid? #=> true
|
|
93
95
|
# setting more attributes, then saving
|
94
96
|
p.author = "Alan deLevie"
|
95
97
|
p.body = "Ipso Lorem"
|
98
|
+
p.date = Time.now
|
96
99
|
p.save #=> true
|
97
100
|
|
98
101
|
# checking the id generated by Parse's servers
|
@@ -131,11 +134,15 @@ p = Post.find(id) #simple find by id
|
|
131
134
|
Post.find_by_title("Uncrunched") #=> A Post object
|
132
135
|
Post.find_all_by_author("Arrington") #=> An Array of Posts
|
133
136
|
|
137
|
+
# batch save an array of objects
|
138
|
+
Post.save_all(array_of_objects)
|
139
|
+
|
140
|
+
# destroy all objects, updated to use Parse batch destroy
|
141
|
+
Post.destroy_all(array_of_objects)
|
142
|
+
|
134
143
|
# you can chain method calls, just like in ActiveRecord
|
135
144
|
Post.where(:param1 => "foo").where(:param2 => "bar").all
|
136
145
|
|
137
|
-
# destroy all objects
|
138
|
-
Post.destroy_all
|
139
146
|
|
140
147
|
# limit the query
|
141
148
|
posts = Post.limit(5).where(:foo => "bar")
|
@@ -143,6 +150,18 @@ posts.length #=> 5
|
|
143
150
|
|
144
151
|
# get a count
|
145
152
|
Post.where(:bar => "foo").count #=> 1337
|
153
|
+
|
154
|
+
```
|
155
|
+
|
156
|
+
Pagination with [kaminari](https://github.com/amatsuda/kaminari):
|
157
|
+
|
158
|
+
```ruby
|
159
|
+
# get second page of results (default is 25 per page)
|
160
|
+
Post.page(2).where(:foo => "bar")
|
161
|
+
|
162
|
+
# get second page with 100 results per page
|
163
|
+
Post.page(2).per(100).where(:foo => "bar")
|
164
|
+
|
146
165
|
```
|
147
166
|
|
148
167
|
Users
|
@@ -202,6 +221,52 @@ end
|
|
202
221
|
|
203
222
|
If you want to use parse_resource to back a simple authentication system for a Rails app, follow this [tutorial](http://asciicasts.com/episodes/250-authentication-from-scratch), and make some simple modifications.
|
204
223
|
|
224
|
+
Installations
|
225
|
+
|
226
|
+
Note: Because [Installations](https://parse.com/docs/rest#installations), are special in the Parse API, you must name your class Installation if you want to manipulate installation objects.
|
227
|
+
|
228
|
+
```ruby
|
229
|
+
class Installation < ParseResource::Base
|
230
|
+
fields :appName, :appVersion, :badge, :channels, :deviceToken, :deviceType,
|
231
|
+
:installationId, :parseVersion, :timeZone
|
232
|
+
end
|
233
|
+
```
|
234
|
+
|
235
|
+
GeoPoints
|
236
|
+
|
237
|
+
```ruby
|
238
|
+
class Place < ParseResource::Base
|
239
|
+
fields :location
|
240
|
+
end
|
241
|
+
|
242
|
+
place = Place.new
|
243
|
+
place.location = ParseGeoPoint.new :latitude => 34.09300844216167, :longitude => -118.3780094460731
|
244
|
+
place.save
|
245
|
+
place.location.inspect #=> #<ParseGeoPoint:0x007fb4f39c7de0 @latitude=34.09300844216167, @longitude=-118.3780094460731>
|
246
|
+
|
247
|
+
|
248
|
+
place = Place.new
|
249
|
+
place.location = ParseGeoPoint.new
|
250
|
+
place.location.latitude = 34.09300844216167
|
251
|
+
place.location.longitude = -118.3780094460731
|
252
|
+
place.save
|
253
|
+
place.location.inspect #=> #<ParseGeoPoint:0x007fb4f39c7de0 @latitude=34.09300844216167, @longitude=-118.3780094460731>
|
254
|
+
|
255
|
+
server_place = Place.find(place.objectId)
|
256
|
+
server_place.location.inspect #=> #<ParseGeoPoint:0x007fb4f39c7de0 @latitude=34.09300844216167, @longitude=-118.3780094460731>
|
257
|
+
server_place.location.latitude #=> 34.09300844216167
|
258
|
+
server_place.location.longitude #=> -118.3780094460731
|
259
|
+
```
|
260
|
+
|
261
|
+
Querying by GeoPoints
|
262
|
+
|
263
|
+
```ruby
|
264
|
+
Place.near(:location, [34.09300844216167, -118.3780094460731], :maxDistanceInMiles => 10).all
|
265
|
+
Place.near(:location, [34.09300844216167, -118.3780094460731], :maxDistanceInKilometers => 10).all
|
266
|
+
Place.near(:location, [34.09300844216167, -118.3780094460731], :maxDistanceInRadians => 10/3959).all
|
267
|
+
Place.within_box(:location, [33.81637559726026, -118.3783150233789], [34.09300844216167, -118.3780094460731]).all
|
268
|
+
```
|
269
|
+
|
205
270
|
DEPRECATED
|
206
271
|
Associations
|
207
272
|
|
@@ -248,6 +313,20 @@ File Upload
|
|
248
313
|
@post.thumbnail = {"name" => result["name"], "__type" => "File"}
|
249
314
|
```
|
250
315
|
|
316
|
+
Custom Getters and Setters
|
317
|
+
|
318
|
+
```ruby
|
319
|
+
def name
|
320
|
+
val = get_attribute("name")
|
321
|
+
# custom getter actions here
|
322
|
+
val
|
323
|
+
end
|
324
|
+
|
325
|
+
def name=(val)
|
326
|
+
# custom setter actions to val here
|
327
|
+
set_attribute("name", val)
|
328
|
+
end
|
329
|
+
```
|
251
330
|
|
252
331
|
Documentation
|
253
332
|
-------------
|
data/Rakefile
CHANGED
@@ -32,13 +32,14 @@ Rake::TestTask.new(:test) do |test|
|
|
32
32
|
test.verbose = true
|
33
33
|
end
|
34
34
|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
35
|
+
# rcov doesn't support Ruby 1.9.3+
|
36
|
+
# require 'rcov/rcovtask'
|
37
|
+
# Rcov::RcovTask.new do |test|
|
38
|
+
# test.libs << 'test'
|
39
|
+
# test.pattern = 'test/**/test_*.rb'
|
40
|
+
# test.verbose = true
|
41
|
+
# test.rcov_opts << '--exclude "gems/*"'
|
42
|
+
# end
|
42
43
|
|
43
44
|
require 'reek/rake/task'
|
44
45
|
Reek::Rake::Task.new do |t|
|
@@ -49,7 +50,7 @@ end
|
|
49
50
|
|
50
51
|
task :default => :test
|
51
52
|
|
52
|
-
require '
|
53
|
+
require 'rdoc/task'
|
53
54
|
Rake::RDocTask.new do |rdoc|
|
54
55
|
version = File.exist?('VERSION') ? File.read('VERSION') : ""
|
55
56
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.8.0
|
data/fixtures/.DS_Store
ADDED
Binary file
|
Binary file
|
@@ -1,5 +1,299 @@
|
|
1
1
|
---
|
2
2
|
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://tIcrV2dwbkT7AqjU8Cn8FZFU60hk5qCnMXlJnJQq:H6xYlZzvwBZHUBjoyrFKXkWZoCVfqrmC3ARXMZjq@api.parse.com/1/classes/Post?where=%7B%7D
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Accept:
|
11
|
+
- ! '*/*; q=0.5, application/xml'
|
12
|
+
Accept-Encoding:
|
13
|
+
- gzip, deflate
|
14
|
+
User-Agent:
|
15
|
+
- Ruby
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 200
|
19
|
+
message: OK
|
20
|
+
headers:
|
21
|
+
Cache-Control:
|
22
|
+
- max-age=0, private, must-revalidate
|
23
|
+
Content-Type:
|
24
|
+
- application/json; charset=utf-8
|
25
|
+
Date:
|
26
|
+
- Wed, 17 Apr 2013 06:26:02 GMT
|
27
|
+
Etag:
|
28
|
+
- ! '"b692554248c1b8f5a7cc025e8daf0e89"'
|
29
|
+
Server:
|
30
|
+
- nginx/1.2.2
|
31
|
+
Set-Cookie:
|
32
|
+
- _parse_session=BAh7BkkiD3Nlc3Npb25faWQGOgZFRiIlMTE0MWZjYzhjMzk4YzlkOGJiNzJhOTg4YTY4MjhkZDY%3D--6896117eb01f14212ce8cb36d2c22b0b5b9dc3b1;
|
33
|
+
domain=.parse.com; path=/; expires=Mon, 17-Apr-2023 06:26:02 GMT; secure;
|
34
|
+
HttpOnly
|
35
|
+
Status:
|
36
|
+
- 200 OK
|
37
|
+
X-Runtime:
|
38
|
+
- '0.081456'
|
39
|
+
X-Ua-Compatible:
|
40
|
+
- IE=Edge,chrome=1
|
41
|
+
Content-Length:
|
42
|
+
- '267'
|
43
|
+
Connection:
|
44
|
+
- keep-alive
|
45
|
+
body:
|
46
|
+
encoding: US-ASCII
|
47
|
+
string: ! '{"results":[{"title":"something else","createdAt":"2013-04-17T04:05:13.497Z","updatedAt":"2013-04-17T04:05:14.036Z","objectId":"fps7rLMGIb"},{"title":"Welcome111","createdAt":"2013-04-17T04:05:14.644Z","updatedAt":"2013-04-17T04:05:14.644Z","objectId":"Twztx6FtCz"}]}'
|
48
|
+
http_version:
|
49
|
+
recorded_at: Wed, 17 Apr 2013 06:26:03 GMT
|
50
|
+
- request:
|
51
|
+
method: post
|
52
|
+
uri: https://tIcrV2dwbkT7AqjU8Cn8FZFU60hk5qCnMXlJnJQq:H6xYlZzvwBZHUBjoyrFKXkWZoCVfqrmC3ARXMZjq@api.parse.com/1/batch
|
53
|
+
body:
|
54
|
+
encoding: UTF-8
|
55
|
+
string: ! '{"requests":[{"method":"DELETE","path":"/1/classes/Post/fps7rLMGIb"},{"method":"DELETE","path":"/1/classes/Post/Twztx6FtCz"}]}'
|
56
|
+
headers:
|
57
|
+
Accept:
|
58
|
+
- ! '*/*; q=0.5, application/xml'
|
59
|
+
Accept-Encoding:
|
60
|
+
- gzip, deflate
|
61
|
+
Content-Type:
|
62
|
+
- application/json
|
63
|
+
Content-Length:
|
64
|
+
- '126'
|
65
|
+
User-Agent:
|
66
|
+
- Ruby
|
67
|
+
response:
|
68
|
+
status:
|
69
|
+
code: 200
|
70
|
+
message: OK
|
71
|
+
headers:
|
72
|
+
Cache-Control:
|
73
|
+
- max-age=0, private, must-revalidate
|
74
|
+
Content-Type:
|
75
|
+
- application/json; charset=utf-8
|
76
|
+
Date:
|
77
|
+
- Wed, 17 Apr 2013 06:26:03 GMT
|
78
|
+
Etag:
|
79
|
+
- ! '"9f103a4fc959709a4ff9f7cb2a96d647"'
|
80
|
+
Server:
|
81
|
+
- nginx/1.2.2
|
82
|
+
Set-Cookie:
|
83
|
+
- _parse_session=BAh7BkkiD3Nlc3Npb25faWQGOgZFRiIlMjZjNjE0MGQ1NTg4NmY4YjE3MzBjNzM5M2I0M2U3ZTY%3D--433905b065289bf151744f9f65338651d22c0477;
|
84
|
+
domain=.parse.com; path=/; expires=Mon, 17-Apr-2023 06:26:03 GMT; secure;
|
85
|
+
HttpOnly
|
86
|
+
Status:
|
87
|
+
- 200 OK
|
88
|
+
X-Runtime:
|
89
|
+
- '0.200659'
|
90
|
+
X-Ua-Compatible:
|
91
|
+
- IE=Edge,chrome=1
|
92
|
+
Content-Length:
|
93
|
+
- '35'
|
94
|
+
Connection:
|
95
|
+
- keep-alive
|
96
|
+
body:
|
97
|
+
encoding: US-ASCII
|
98
|
+
string: ! '[{"success":true},{"success":true}]'
|
99
|
+
http_version:
|
100
|
+
recorded_at: Wed, 17 Apr 2013 06:26:03 GMT
|
101
|
+
- request:
|
102
|
+
method: post
|
103
|
+
uri: https://tIcrV2dwbkT7AqjU8Cn8FZFU60hk5qCnMXlJnJQq:H6xYlZzvwBZHUBjoyrFKXkWZoCVfqrmC3ARXMZjq@api.parse.com/1/classes/Post
|
104
|
+
body:
|
105
|
+
encoding: UTF-8
|
106
|
+
string: ! '{"title":"11222"}'
|
107
|
+
headers:
|
108
|
+
Accept:
|
109
|
+
- ! '*/*; q=0.5, application/xml'
|
110
|
+
Accept-Encoding:
|
111
|
+
- gzip, deflate
|
112
|
+
Content-Type:
|
113
|
+
- application/json
|
114
|
+
Content-Length:
|
115
|
+
- '17'
|
116
|
+
User-Agent:
|
117
|
+
- Ruby
|
118
|
+
response:
|
119
|
+
status:
|
120
|
+
code: 201
|
121
|
+
message: Created
|
122
|
+
headers:
|
123
|
+
Cache-Control:
|
124
|
+
- no-cache
|
125
|
+
Content-Type:
|
126
|
+
- application/json; charset=utf-8
|
127
|
+
Date:
|
128
|
+
- Wed, 17 Apr 2013 06:26:04 GMT
|
129
|
+
Location:
|
130
|
+
- https://api.parse.com/1/classes/Post/mXIkWoQMLp
|
131
|
+
Server:
|
132
|
+
- nginx/1.2.2
|
133
|
+
Set-Cookie:
|
134
|
+
- _parse_session=BAh7BkkiD3Nlc3Npb25faWQGOgZFRiIlNzRlMmM1MWUxMjYwNWQ2NWY0YzhmZmU0YWE4NTY5N2Q%3D--8623775870fc7523e34d4858dcd488df9e48cc54;
|
135
|
+
domain=.parse.com; path=/; expires=Mon, 17-Apr-2023 06:26:04 GMT; secure;
|
136
|
+
HttpOnly
|
137
|
+
Status:
|
138
|
+
- 201 Created
|
139
|
+
X-Runtime:
|
140
|
+
- '0.034543'
|
141
|
+
X-Ua-Compatible:
|
142
|
+
- IE=Edge,chrome=1
|
143
|
+
Content-Length:
|
144
|
+
- '64'
|
145
|
+
Connection:
|
146
|
+
- keep-alive
|
147
|
+
body:
|
148
|
+
encoding: US-ASCII
|
149
|
+
string: ! '{"createdAt":"2013-04-17T06:26:04.269Z","objectId":"mXIkWoQMLp"}'
|
150
|
+
http_version:
|
151
|
+
recorded_at: Wed, 17 Apr 2013 06:26:04 GMT
|
152
|
+
- request:
|
153
|
+
method: post
|
154
|
+
uri: https://tIcrV2dwbkT7AqjU8Cn8FZFU60hk5qCnMXlJnJQq:H6xYlZzvwBZHUBjoyrFKXkWZoCVfqrmC3ARXMZjq@api.parse.com/1/classes/Post
|
155
|
+
body:
|
156
|
+
encoding: UTF-8
|
157
|
+
string: ! '{"title":"112ssd22"}'
|
158
|
+
headers:
|
159
|
+
Accept:
|
160
|
+
- ! '*/*; q=0.5, application/xml'
|
161
|
+
Accept-Encoding:
|
162
|
+
- gzip, deflate
|
163
|
+
Content-Type:
|
164
|
+
- application/json
|
165
|
+
Content-Length:
|
166
|
+
- '20'
|
167
|
+
User-Agent:
|
168
|
+
- Ruby
|
169
|
+
response:
|
170
|
+
status:
|
171
|
+
code: 201
|
172
|
+
message: Created
|
173
|
+
headers:
|
174
|
+
Cache-Control:
|
175
|
+
- no-cache
|
176
|
+
Content-Type:
|
177
|
+
- application/json; charset=utf-8
|
178
|
+
Date:
|
179
|
+
- Wed, 17 Apr 2013 06:26:04 GMT
|
180
|
+
Location:
|
181
|
+
- https://api.parse.com/1/classes/Post/ZzQ8yGUUSV
|
182
|
+
Server:
|
183
|
+
- nginx/1.2.2
|
184
|
+
Set-Cookie:
|
185
|
+
- _parse_session=BAh7BkkiD3Nlc3Npb25faWQGOgZFRiIlMTkwOGU0NjA1NTE4YThiMWFmYTcxZGYxODU1ZTNjMmI%3D--938e9d085594de88d59641792c5368f93586ce58;
|
186
|
+
domain=.parse.com; path=/; expires=Mon, 17-Apr-2023 06:26:04 GMT; secure;
|
187
|
+
HttpOnly
|
188
|
+
Status:
|
189
|
+
- 201 Created
|
190
|
+
X-Runtime:
|
191
|
+
- '0.210367'
|
192
|
+
X-Ua-Compatible:
|
193
|
+
- IE=Edge,chrome=1
|
194
|
+
Content-Length:
|
195
|
+
- '64'
|
196
|
+
Connection:
|
197
|
+
- keep-alive
|
198
|
+
body:
|
199
|
+
encoding: US-ASCII
|
200
|
+
string: ! '{"createdAt":"2013-04-17T06:26:04.810Z","objectId":"ZzQ8yGUUSV"}'
|
201
|
+
http_version:
|
202
|
+
recorded_at: Wed, 17 Apr 2013 06:26:05 GMT
|
203
|
+
- request:
|
204
|
+
method: get
|
205
|
+
uri: https://tIcrV2dwbkT7AqjU8Cn8FZFU60hk5qCnMXlJnJQq:H6xYlZzvwBZHUBjoyrFKXkWZoCVfqrmC3ARXMZjq@api.parse.com/1/classes/Post?where=%7B%7D
|
206
|
+
body:
|
207
|
+
encoding: US-ASCII
|
208
|
+
string: ''
|
209
|
+
headers:
|
210
|
+
Accept:
|
211
|
+
- ! '*/*; q=0.5, application/xml'
|
212
|
+
Accept-Encoding:
|
213
|
+
- gzip, deflate
|
214
|
+
User-Agent:
|
215
|
+
- Ruby
|
216
|
+
response:
|
217
|
+
status:
|
218
|
+
code: 200
|
219
|
+
message: OK
|
220
|
+
headers:
|
221
|
+
Cache-Control:
|
222
|
+
- max-age=0, private, must-revalidate
|
223
|
+
Content-Type:
|
224
|
+
- application/json; charset=utf-8
|
225
|
+
Date:
|
226
|
+
- Wed, 17 Apr 2013 06:26:05 GMT
|
227
|
+
Etag:
|
228
|
+
- ! '"7ecb74f8b758285dfe132fbf96803ff0"'
|
229
|
+
Server:
|
230
|
+
- nginx/1.2.2
|
231
|
+
Set-Cookie:
|
232
|
+
- _parse_session=BAh7BkkiD3Nlc3Npb25faWQGOgZFRiIlNzliYzhkZDRmYWE3ZDNiOGQ3OTkyMmQyMmYxOTNlNjA%3D--7a0c6a666bee681e4cc60dac57ca2df9a085e1d1;
|
233
|
+
domain=.parse.com; path=/; expires=Mon, 17-Apr-2023 06:26:05 GMT; secure;
|
234
|
+
HttpOnly
|
235
|
+
Status:
|
236
|
+
- 200 OK
|
237
|
+
X-Runtime:
|
238
|
+
- '0.112401'
|
239
|
+
X-Ua-Compatible:
|
240
|
+
- IE=Edge,chrome=1
|
241
|
+
Content-Length:
|
242
|
+
- '256'
|
243
|
+
Connection:
|
244
|
+
- keep-alive
|
245
|
+
body:
|
246
|
+
encoding: US-ASCII
|
247
|
+
string: ! '{"results":[{"title":"11222","createdAt":"2013-04-17T06:26:04.269Z","updatedAt":"2013-04-17T06:26:04.269Z","objectId":"mXIkWoQMLp"},{"title":"112ssd22","createdAt":"2013-04-17T06:26:04.810Z","updatedAt":"2013-04-17T06:26:04.810Z","objectId":"ZzQ8yGUUSV"}]}'
|
248
|
+
http_version:
|
249
|
+
recorded_at: Wed, 17 Apr 2013 06:26:05 GMT
|
250
|
+
- request:
|
251
|
+
method: get
|
252
|
+
uri: https://FKEzdzDgEyghLDFgIVHYJehVlWpfVtUmEv4MUEkJ:bOYO7usWbrcIbL5L5bPzlYrSonQRvwJecC1XLsuN@api.parse.com/1/classes/Post?where=%7B%7D
|
253
|
+
body:
|
254
|
+
encoding: US-ASCII
|
255
|
+
string: ''
|
256
|
+
headers:
|
257
|
+
Accept:
|
258
|
+
- ! '*/*; q=0.5, application/xml'
|
259
|
+
Accept-Encoding:
|
260
|
+
- gzip, deflate
|
261
|
+
User-Agent:
|
262
|
+
- Ruby
|
263
|
+
response:
|
264
|
+
status:
|
265
|
+
code: 200
|
266
|
+
message: OK
|
267
|
+
headers:
|
268
|
+
Cache-Control:
|
269
|
+
- max-age=0, private, must-revalidate
|
270
|
+
Content-Type:
|
271
|
+
- application/json; charset=utf-8
|
272
|
+
Date:
|
273
|
+
- Wed, 17 Apr 2013 20:08:15 GMT
|
274
|
+
Etag:
|
275
|
+
- ! '"e2412c1ffbfb6b53a82a9daf665b2c1a"'
|
276
|
+
Server:
|
277
|
+
- nginx/1.2.2
|
278
|
+
Set-Cookie:
|
279
|
+
- _parse_session=BAh7BkkiD3Nlc3Npb25faWQGOgZFRiIlOWU5YmE4NWZiNzI0ODM4MGFlMGFlYzc4ZWFhNjc1OWY%3D--bd59a4c50560cd3b342aa7b3e3ba13a0f0c7e737;
|
280
|
+
domain=.parse.com; path=/; expires=Mon, 17-Apr-2023 20:08:15 GMT; secure;
|
281
|
+
HttpOnly
|
282
|
+
Status:
|
283
|
+
- 200 OK
|
284
|
+
X-Runtime:
|
285
|
+
- '0.026352'
|
286
|
+
X-Ua-Compatible:
|
287
|
+
- IE=Edge,chrome=1
|
288
|
+
Content-Length:
|
289
|
+
- '14'
|
290
|
+
Connection:
|
291
|
+
- keep-alive
|
292
|
+
body:
|
293
|
+
encoding: US-ASCII
|
294
|
+
string: ! '{"results":[]}'
|
295
|
+
http_version:
|
296
|
+
recorded_at: Wed, 17 Apr 2013 20:08:15 GMT
|
3
297
|
- request:
|
4
298
|
method: post
|
5
299
|
uri: https://FKEzdzDgEyghLDFgIVHYJehVlWpfVtUmEv4MUEkJ:bOYO7usWbrcIbL5L5bPzlYrSonQRvwJecC1XLsuN@api.parse.com/1/classes/Post
|
@@ -22,27 +316,24 @@ http_interactions:
|
|
22
316
|
code: 201
|
23
317
|
message: Created
|
24
318
|
headers:
|
25
|
-
Access-Control-Allow-Origin:
|
26
|
-
- https://parse.com, https://www.parse.com
|
27
|
-
Access-Control-Request-Method:
|
28
|
-
- ! '*'
|
29
319
|
Cache-Control:
|
30
320
|
- no-cache
|
31
321
|
Content-Type:
|
32
322
|
- application/json; charset=utf-8
|
33
323
|
Date:
|
34
|
-
-
|
324
|
+
- Wed, 17 Apr 2013 20:08:16 GMT
|
35
325
|
Location:
|
36
|
-
- https://api.parse.com/1/classes/Post/
|
326
|
+
- https://api.parse.com/1/classes/Post/7X53ZmzjEI
|
37
327
|
Server:
|
38
328
|
- nginx/1.2.2
|
39
329
|
Set-Cookie:
|
40
|
-
- _parse_session=
|
41
|
-
domain=.parse.com; path=/; expires=
|
330
|
+
- _parse_session=BAh7BkkiD3Nlc3Npb25faWQGOgZFRiIlZmI0OTc1N2U3ZmQ2OTYzMTIwNDE2YWY3ZmU4Zjk4ZWE%3D--f767138ed8a84140ac48ec5cdce316dce52553fa;
|
331
|
+
domain=.parse.com; path=/; expires=Mon, 17-Apr-2023 20:08:16 GMT; secure;
|
332
|
+
HttpOnly
|
42
333
|
Status:
|
43
334
|
- 201 Created
|
44
335
|
X-Runtime:
|
45
|
-
- '0.
|
336
|
+
- '0.029526'
|
46
337
|
X-Ua-Compatible:
|
47
338
|
- IE=Edge,chrome=1
|
48
339
|
Content-Length:
|
@@ -51,9 +342,9 @@ http_interactions:
|
|
51
342
|
- keep-alive
|
52
343
|
body:
|
53
344
|
encoding: US-ASCII
|
54
|
-
string: ! '{"createdAt":"
|
345
|
+
string: ! '{"createdAt":"2013-04-17T20:08:16.076Z","objectId":"7X53ZmzjEI"}'
|
55
346
|
http_version:
|
56
|
-
recorded_at:
|
347
|
+
recorded_at: Wed, 17 Apr 2013 20:08:16 GMT
|
57
348
|
- request:
|
58
349
|
method: post
|
59
350
|
uri: https://FKEzdzDgEyghLDFgIVHYJehVlWpfVtUmEv4MUEkJ:bOYO7usWbrcIbL5L5bPzlYrSonQRvwJecC1XLsuN@api.parse.com/1/classes/Post
|
@@ -76,27 +367,24 @@ http_interactions:
|
|
76
367
|
code: 201
|
77
368
|
message: Created
|
78
369
|
headers:
|
79
|
-
Access-Control-Allow-Origin:
|
80
|
-
- https://parse.com, https://www.parse.com
|
81
|
-
Access-Control-Request-Method:
|
82
|
-
- ! '*'
|
83
370
|
Cache-Control:
|
84
371
|
- no-cache
|
85
372
|
Content-Type:
|
86
373
|
- application/json; charset=utf-8
|
87
374
|
Date:
|
88
|
-
-
|
375
|
+
- Wed, 17 Apr 2013 20:08:16 GMT
|
89
376
|
Location:
|
90
|
-
- https://api.parse.com/1/classes/Post/
|
377
|
+
- https://api.parse.com/1/classes/Post/hbJ1P7KXzp
|
91
378
|
Server:
|
92
379
|
- nginx/1.2.2
|
93
380
|
Set-Cookie:
|
94
|
-
- _parse_session=
|
95
|
-
domain=.parse.com; path=/; expires=
|
381
|
+
- _parse_session=BAh7BkkiD3Nlc3Npb25faWQGOgZFRiIlYTI1YWEzNjBhNTZlYTc5YjVlOTZhOGNiY2M4ZDVjZDE%3D--e9fd281ba18608b8215e38f23ed1c7e55d75b5ff;
|
382
|
+
domain=.parse.com; path=/; expires=Mon, 17-Apr-2023 20:08:16 GMT; secure;
|
383
|
+
HttpOnly
|
96
384
|
Status:
|
97
385
|
- 201 Created
|
98
386
|
X-Runtime:
|
99
|
-
- '0.
|
387
|
+
- '0.362624'
|
100
388
|
X-Ua-Compatible:
|
101
389
|
- IE=Edge,chrome=1
|
102
390
|
Content-Length:
|
@@ -105,9 +393,9 @@ http_interactions:
|
|
105
393
|
- keep-alive
|
106
394
|
body:
|
107
395
|
encoding: US-ASCII
|
108
|
-
string: ! '{"createdAt":"
|
396
|
+
string: ! '{"createdAt":"2013-04-17T20:08:16.467Z","objectId":"hbJ1P7KXzp"}'
|
109
397
|
http_version:
|
110
|
-
recorded_at:
|
398
|
+
recorded_at: Wed, 17 Apr 2013 20:08:16 GMT
|
111
399
|
- request:
|
112
400
|
method: get
|
113
401
|
uri: https://FKEzdzDgEyghLDFgIVHYJehVlWpfVtUmEv4MUEkJ:bOYO7usWbrcIbL5L5bPzlYrSonQRvwJecC1XLsuN@api.parse.com/1/classes/Post?where=%7B%7D
|
@@ -126,27 +414,24 @@ http_interactions:
|
|
126
414
|
code: 200
|
127
415
|
message: OK
|
128
416
|
headers:
|
129
|
-
Access-Control-Allow-Origin:
|
130
|
-
- https://parse.com, https://www.parse.com
|
131
|
-
Access-Control-Request-Method:
|
132
|
-
- ! '*'
|
133
417
|
Cache-Control:
|
134
418
|
- max-age=0, private, must-revalidate
|
135
419
|
Content-Type:
|
136
420
|
- application/json; charset=utf-8
|
137
421
|
Date:
|
138
|
-
-
|
422
|
+
- Wed, 17 Apr 2013 20:08:17 GMT
|
139
423
|
Etag:
|
140
|
-
- ! '"
|
424
|
+
- ! '"234581b064a8911199da28e50c3e522b"'
|
141
425
|
Server:
|
142
426
|
- nginx/1.2.2
|
143
427
|
Set-Cookie:
|
144
|
-
- _parse_session=
|
145
|
-
domain=.parse.com; path=/; expires=
|
428
|
+
- _parse_session=BAh7BkkiD3Nlc3Npb25faWQGOgZFRiIlMWRiYzhiYjkyZmJiMzhiYTdkOGU5Y2I5NDE4YzBlNTI%3D--788e30318b4a587d1f9e405635c631e921a13f21;
|
429
|
+
domain=.parse.com; path=/; expires=Mon, 17-Apr-2023 20:08:17 GMT; secure;
|
430
|
+
HttpOnly
|
146
431
|
Status:
|
147
432
|
- 200 OK
|
148
433
|
X-Runtime:
|
149
|
-
- '0.
|
434
|
+
- '0.137137'
|
150
435
|
X-Ua-Compatible:
|
151
436
|
- IE=Edge,chrome=1
|
152
437
|
Content-Length:
|
@@ -155,7 +440,7 @@ http_interactions:
|
|
155
440
|
- keep-alive
|
156
441
|
body:
|
157
442
|
encoding: US-ASCII
|
158
|
-
string: ! '{"results":[{"title":"11222","createdAt":"
|
443
|
+
string: ! '{"results":[{"title":"11222","createdAt":"2013-04-17T20:08:16.076Z","updatedAt":"2013-04-17T20:08:16.076Z","objectId":"7X53ZmzjEI"},{"title":"112ssd22","createdAt":"2013-04-17T20:08:16.467Z","updatedAt":"2013-04-17T20:08:16.467Z","objectId":"hbJ1P7KXzp"}]}'
|
159
444
|
http_version:
|
160
|
-
recorded_at:
|
161
|
-
recorded_with: VCR 2.
|
445
|
+
recorded_at: Wed, 17 Apr 2013 20:08:17 GMT
|
446
|
+
recorded_with: VCR 2.4.0
|