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.
Files changed (65) hide show
  1. data/.DS_Store +0 -0
  2. data/.travis.yml +1 -1
  3. data/Gemfile +4 -8
  4. data/Gemfile.lock +27 -23
  5. data/README.md +81 -2
  6. data/Rakefile +9 -8
  7. data/VERSION +1 -1
  8. data/fixtures/.DS_Store +0 -0
  9. data/fixtures/vcr_cassettes/.DS_Store +0 -0
  10. data/fixtures/vcr_cassettes/test_all.yml +319 -34
  11. data/fixtures/vcr_cassettes/test_attribute_getters.yml +256 -12
  12. data/fixtures/vcr_cassettes/test_attribute_setters.yml +256 -12
  13. data/fixtures/vcr_cassettes/test_authenticate.yml +260 -32
  14. data/fixtures/vcr_cassettes/test_chained_wheres.yml +320 -35
  15. data/fixtures/vcr_cassettes/test_chunk.yml +1359 -0
  16. data/fixtures/vcr_cassettes/test_count.yml +495 -84
  17. data/fixtures/vcr_cassettes/test_create.yml +154 -12
  18. data/fixtures/vcr_cassettes/test_created_at.yml +256 -12
  19. data/fixtures/vcr_cassettes/test_destroy.yml +364 -32
  20. data/fixtures/vcr_cassettes/test_destroy_all.yml +236 -48
  21. data/fixtures/vcr_cassettes/test_each.yml +488 -56
  22. data/fixtures/vcr_cassettes/test_fetching_closest_10.yml +1509 -0
  23. data/fixtures/vcr_cassettes/test_fetching_closest_by_kilometers.yml +1509 -0
  24. data/fixtures/vcr_cassettes/test_fetching_closest_by_miles.yml +1509 -0
  25. data/fixtures/vcr_cassettes/test_fetching_closest_by_radians.yml +1509 -0
  26. data/fixtures/vcr_cassettes/test_fetching_closest_within_box.yml +489 -0
  27. data/fixtures/vcr_cassettes/test_fetching_geopoint_field.yml +489 -0
  28. data/fixtures/vcr_cassettes/test_find.yml +312 -24
  29. data/fixtures/vcr_cassettes/test_find_all_by.yml +170 -34
  30. data/fixtures/vcr_cassettes/test_find_by.yml +174 -38
  31. data/fixtures/vcr_cassettes/test_first.yml +260 -23
  32. data/fixtures/vcr_cassettes/test_id.yml +256 -12
  33. data/fixtures/vcr_cassettes/test_installation_creation.yml +199 -0
  34. data/fixtures/vcr_cassettes/test_installation_creation_validation_check.yml +297 -0
  35. data/fixtures/vcr_cassettes/test_limit.yml +1138 -179
  36. data/fixtures/vcr_cassettes/test_map.yml +488 -56
  37. data/fixtures/vcr_cassettes/test_order_ascending.yml +395 -0
  38. data/fixtures/vcr_cassettes/test_order_descending.yml +446 -0
  39. data/fixtures/vcr_cassettes/test_save.yml +316 -24
  40. data/fixtures/vcr_cassettes/test_save_all_and_destroy_all.yml +869 -0
  41. data/fixtures/vcr_cassettes/test_saving_geo_point_with_quick_init.yml +395 -0
  42. data/fixtures/vcr_cassettes/test_saving_geopoint_with_coords.yml +395 -0
  43. data/fixtures/vcr_cassettes/test_skip.yml +120 -525
  44. data/fixtures/vcr_cassettes/test_update.yml +316 -24
  45. data/fixtures/vcr_cassettes/test_updated_at.yml +316 -24
  46. data/fixtures/vcr_cassettes/test_username_should_be_unique.yml +311 -21
  47. data/fixtures/vcr_cassettes/test_where.yml +117 -25
  48. data/lib/kaminari_extension.rb +60 -0
  49. data/lib/parse_resource.rb +4 -2
  50. data/lib/parse_resource/base.rb +262 -163
  51. data/lib/parse_resource/client.rb +8 -0
  52. data/lib/parse_resource/parse_error.rb +36 -22
  53. data/lib/parse_resource/query.rb +99 -7
  54. data/lib/parse_resource/query_methods.rb +64 -0
  55. data/lib/parse_resource/types/parse_geopoint.rb +19 -0
  56. data/parse_resource.gemspec +29 -9
  57. data/parse_resource.yml +2 -2
  58. data/test/active_model_lint_test.rb +0 -2
  59. data/test/helper.rb +13 -3
  60. data/test/test_parse_installation.rb +41 -0
  61. data/test/test_parse_resource.rb +108 -20
  62. data/test/test_parse_user.rb +4 -7
  63. data/test/test_query_options.rb +0 -38
  64. data/test/test_types.rb +186 -0
  65. metadata +38 -31
Binary file
@@ -3,4 +3,4 @@ rvm:
3
3
  - 1.9.3
4
4
 
5
5
  env:
6
- - PARSE_RESOURCE_APPLICATION_ID=FKEzdzDgEyghLDFgIVHYJehVlWpfVtUmEv4MUEkJ PARSE_RESOURCE_MASTER_KEY=bOYO7usWbrcIbL5L5bPzlYrSonQRvwJecC1XLsuN
6
+ - PARSE_RESOURCE_APPLICATION_ID=tIcrV2dwbkT7AqjU8Cn8FZFU60hk5qCnMXlJnJQq PARSE_RESOURCE_MASTER_KEY=H6xYlZzvwBZHUBjoyrFKXkWZoCVfqrmC3ARXMZjq
data/Gemfile CHANGED
@@ -1,20 +1,16 @@
1
- source "http://rubygems.org"
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"
@@ -1,42 +1,47 @@
1
1
  GEM
2
- remote: http://rubygems.org/
2
+ remote: https://rubygems.org/
3
3
  specs:
4
- activemodel (3.1.3)
5
- activesupport (= 3.1.3)
4
+ activemodel (3.2.13)
5
+ activesupport (= 3.2.13)
6
6
  builder (~> 3.0.0)
7
- i18n (~> 0.6)
8
- activesupport (3.1.3)
7
+ activesupport (3.2.13)
8
+ i18n (= 0.6.1)
9
9
  multi_json (~> 1.0)
10
- addressable (2.3.2)
11
- builder (3.0.0)
12
- crack (0.3.1)
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.0)
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.5)
20
- mime-types (1.17.2)
21
- multi_json (1.0.4)
22
- rake (0.9.2.2)
23
- rcov (0.9.11)
24
- reek (1.2.8)
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
- ruby2ruby (1.3.1)
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.9)
36
- vcr (2.2.4)
37
- webmock (1.8.10)
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.1.7)
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
- require 'rcov/rcovtask'
36
- Rcov::RcovTask.new do |test|
37
- test.libs << 'test'
38
- test.pattern = 'test/**/test_*.rb'
39
- test.verbose = true
40
- test.rcov_opts << '--exclude "gems/*"'
41
- end
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 'rake/rdoctask'
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.7.3
1
+ 1.8.0
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
- - Thu, 20 Sep 2012 04:31:37 GMT
324
+ - Wed, 17 Apr 2013 20:08:16 GMT
35
325
  Location:
36
- - https://api.parse.com/1/classes/Post/54C6KpIVdM
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=BAh7BkkiD3Nlc3Npb25faWQGOgZFRiIlYTk0NzlkNjE4NTM3ZTY4MTM0ZGU1MWMyNzQ5NmY0ODQ%3D--205d43d2cee87f0d45f723e29d26fbfdf41119ad;
41
- domain=.parse.com; path=/; expires=Tue, 20-Sep-2022 04:31:37 GMT; HttpOnly
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.034132'
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":"2012-09-20T04:31:37.170Z","objectId":"54C6KpIVdM"}'
345
+ string: ! '{"createdAt":"2013-04-17T20:08:16.076Z","objectId":"7X53ZmzjEI"}'
55
346
  http_version:
56
- recorded_at: Thu, 20 Sep 2012 04:31:37 GMT
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
- - Thu, 20 Sep 2012 04:31:37 GMT
375
+ - Wed, 17 Apr 2013 20:08:16 GMT
89
376
  Location:
90
- - https://api.parse.com/1/classes/Post/ZvIMP5SSSS
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=BAh7BkkiD3Nlc3Npb25faWQGOgZFRiIlZDFjYzBlYjM1MmRkNzRlZmQ2YzE3Mjk1ZjQxZDdiNGU%3D--5bbc4d2ef162a05ac166470436c2d44d7fa5439d;
95
- domain=.parse.com; path=/; expires=Tue, 20-Sep-2022 04:31:37 GMT; HttpOnly
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.050751'
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":"2012-09-20T04:31:37.429Z","objectId":"ZvIMP5SSSS"}'
396
+ string: ! '{"createdAt":"2013-04-17T20:08:16.467Z","objectId":"hbJ1P7KXzp"}'
109
397
  http_version:
110
- recorded_at: Thu, 20 Sep 2012 04:31:37 GMT
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
- - Thu, 20 Sep 2012 04:31:37 GMT
422
+ - Wed, 17 Apr 2013 20:08:17 GMT
139
423
  Etag:
140
- - ! '"bbfb53bdfe116c52c5ab517838b9ff42"'
424
+ - ! '"234581b064a8911199da28e50c3e522b"'
141
425
  Server:
142
426
  - nginx/1.2.2
143
427
  Set-Cookie:
144
- - _parse_session=BAh7BkkiD3Nlc3Npb25faWQGOgZFRiIlMzNlZDAyNGMyMDhlOWNhNjk0YzY3ODQ4YzhjYjJhMjY%3D--026e69dca673c05e7c79ca99e1add79f2767b15b;
145
- domain=.parse.com; path=/; expires=Tue, 20-Sep-2022 04:31:37 GMT; HttpOnly
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.036593'
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":"2012-09-20T04:31:37.170Z","updatedAt":"2012-09-20T04:31:37.170Z","objectId":"54C6KpIVdM"},{"title":"112ssd22","createdAt":"2012-09-20T04:31:37.429Z","updatedAt":"2012-09-20T04:31:37.429Z","objectId":"ZvIMP5SSSS"}]}'
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: Thu, 20 Sep 2012 04:31:37 GMT
161
- recorded_with: VCR 2.2.4
445
+ recorded_at: Wed, 17 Apr 2013 20:08:17 GMT
446
+ recorded_with: VCR 2.4.0