parse_resource 1.7.3 → 1.8.0

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.
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