parse-ruby-client 0.1.11 → 0.1.12
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.
- data/VERSION +1 -1
- data/fixtures/vcr_cassettes/test_file_save.yml +87 -0
- data/fixtures/vcr_cassettes/test_image_file_associate_with_object.yml +2034 -0
- data/fixtures/vcr_cassettes/test_image_file_save.yml +1957 -0
- data/fixtures/vcr_cassettes/test_text_file_save.yml +170 -0
- data/lib/parse/client.rb +9 -1
- data/lib/parse/datatypes.rb +24 -9
- data/parse-ruby-client.gemspec +8 -2
- data/test/parsers.jpg +0 -0
- data/test/test_datatypes.rb +14 -11
- data/test/test_file.rb +68 -0
- metadata +9 -3
@@ -0,0 +1,170 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://api.parse.com/1/files/hello_test.txt
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: Testing Hello World!
|
9
|
+
headers:
|
10
|
+
Content-Type:
|
11
|
+
- text/plain
|
12
|
+
Accept:
|
13
|
+
- application/json
|
14
|
+
User-Agent:
|
15
|
+
- Parse for Ruby, 0.0
|
16
|
+
X-Parse-Master-Key:
|
17
|
+
- ''
|
18
|
+
X-Parse-Rest-Api-Key:
|
19
|
+
- D3Y8jNCQk6kpkKhpRGnWLYTrFGQ7j8dtDVnWZRnZ
|
20
|
+
X-Parse-Application-Id:
|
21
|
+
- PPVk6L5M9R1R8GVk8Ye9jT8f5SQNBIeoJUDJLmkT
|
22
|
+
X-Parse-Session-Token:
|
23
|
+
- ''
|
24
|
+
Expect:
|
25
|
+
- ''
|
26
|
+
response:
|
27
|
+
status:
|
28
|
+
code: 201
|
29
|
+
message: !binary |-
|
30
|
+
Q3JlYXRlZA==
|
31
|
+
headers:
|
32
|
+
!binary "QWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2lu":
|
33
|
+
- !binary |-
|
34
|
+
Kg==
|
35
|
+
!binary "QWNjZXNzLUNvbnRyb2wtUmVxdWVzdC1NZXRob2Q=":
|
36
|
+
- !binary |-
|
37
|
+
Kg==
|
38
|
+
!binary "Q2FjaGUtQ29udHJvbA==":
|
39
|
+
- !binary |-
|
40
|
+
bm8tY2FjaGU=
|
41
|
+
!binary "Q29udGVudC1UeXBl":
|
42
|
+
- !binary |-
|
43
|
+
YXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOA==
|
44
|
+
!binary "RGF0ZQ==":
|
45
|
+
- !binary |-
|
46
|
+
VGh1LCAyNCBKYW4gMjAxMyAyMzozOTo1OSBHTVQ=
|
47
|
+
!binary "TG9jYXRpb24=":
|
48
|
+
- !binary |-
|
49
|
+
aHR0cDovL2ZpbGVzLnBhcnNlLmNvbS8zNzJmY2JiOS03ZWFlLTRiOWEtYWJj
|
50
|
+
OC02ZGE5N2ZjYWM1MGQvYWE4NzY4YTQtMTBlMS00YzAyLTkyMGQtODRmNmFk
|
51
|
+
OTAwMzBhLWhlbGxvX3Rlc3QudHh0
|
52
|
+
!binary "U2VydmVy":
|
53
|
+
- !binary |-
|
54
|
+
bmdpbngvMS4yLjI=
|
55
|
+
!binary "U2V0LUNvb2tpZQ==":
|
56
|
+
- !binary |-
|
57
|
+
X3BhcnNlX3Nlc3Npb249QkFoN0Jra2lEM05sYzNOcGIyNWZhV1FHT2daRlJp
|
58
|
+
SWxaVEJtWXpRek16azVZalZqTnpSaU9HSm1NMlUxTkRaaU5tWXdOVFkzTTJN
|
59
|
+
JTNELS01MmFjZTdkNDY3YjM1YTM5YjU0MGNjNDQ3MjFhMTI1ODlhYWE4YzBm
|
60
|
+
OyBkb21haW49LnBhcnNlLmNvbTsgcGF0aD0vOyBleHBpcmVzPVR1ZSwgMjQt
|
61
|
+
SmFuLTIwMjMgMjM6Mzk6NTkgR01UOyBzZWN1cmU7IEh0dHBPbmx5
|
62
|
+
!binary "U3RhdHVz":
|
63
|
+
- !binary |-
|
64
|
+
MjAxIENyZWF0ZWQ=
|
65
|
+
!binary "WC1SdW50aW1l":
|
66
|
+
- !binary |-
|
67
|
+
MC4yMDUxMzE=
|
68
|
+
!binary "WC1VYS1Db21wYXRpYmxl":
|
69
|
+
- !binary |-
|
70
|
+
SUU9RWRnZSxjaHJvbWU9MQ==
|
71
|
+
!binary "Q29udGVudC1MZW5ndGg=":
|
72
|
+
- !binary |-
|
73
|
+
MTgy
|
74
|
+
!binary "Q29ubmVjdGlvbg==":
|
75
|
+
- !binary |-
|
76
|
+
a2VlcC1hbGl2ZQ==
|
77
|
+
body:
|
78
|
+
encoding: ASCII-8BIT
|
79
|
+
string: !binary |-
|
80
|
+
eyJ1cmwiOiJodHRwOi8vZmlsZXMucGFyc2UuY29tLzM3MmZjYmI5LTdlYWUt
|
81
|
+
NGI5YS1hYmM4LTZkYTk3ZmNhYzUwZC9hYTg3NjhhNC0xMGUxLTRjMDItOTIw
|
82
|
+
ZC04NGY2YWQ5MDAzMGEtaGVsbG9fdGVzdC50eHQiLCJuYW1lIjoiYWE4NzY4
|
83
|
+
YTQtMTBlMS00YzAyLTkyMGQtODRmNmFkOTAwMzBhLWhlbGxvX3Rlc3QudHh0
|
84
|
+
In0=
|
85
|
+
http_version:
|
86
|
+
recorded_at: Thu, 24 Jan 2013 23:39:59 GMT
|
87
|
+
- request:
|
88
|
+
method: post
|
89
|
+
uri: https://api.parse.com/1/files/hello.txt
|
90
|
+
body:
|
91
|
+
encoding: US-ASCII
|
92
|
+
string: Hello World!
|
93
|
+
headers:
|
94
|
+
Content-Type:
|
95
|
+
- application/json
|
96
|
+
Accept:
|
97
|
+
- application/json
|
98
|
+
User-Agent:
|
99
|
+
- Parse for Ruby, 0.0
|
100
|
+
X-Parse-Master-Key:
|
101
|
+
- ''
|
102
|
+
X-Parse-Rest-Api-Key:
|
103
|
+
- D3Y8jNCQk6kpkKhpRGnWLYTrFGQ7j8dtDVnWZRnZ
|
104
|
+
X-Parse-Application-Id:
|
105
|
+
- PPVk6L5M9R1R8GVk8Ye9jT8f5SQNBIeoJUDJLmkT
|
106
|
+
X-Parse-Session-Token:
|
107
|
+
- ''
|
108
|
+
Expect:
|
109
|
+
- ''
|
110
|
+
response:
|
111
|
+
status:
|
112
|
+
code: 201
|
113
|
+
message: !binary |-
|
114
|
+
Q3JlYXRlZA==
|
115
|
+
headers:
|
116
|
+
!binary "QWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2lu":
|
117
|
+
- !binary |-
|
118
|
+
Kg==
|
119
|
+
!binary "QWNjZXNzLUNvbnRyb2wtUmVxdWVzdC1NZXRob2Q=":
|
120
|
+
- !binary |-
|
121
|
+
Kg==
|
122
|
+
!binary "Q2FjaGUtQ29udHJvbA==":
|
123
|
+
- !binary |-
|
124
|
+
bm8tY2FjaGU=
|
125
|
+
!binary "Q29udGVudC1UeXBl":
|
126
|
+
- !binary |-
|
127
|
+
YXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOA==
|
128
|
+
!binary "RGF0ZQ==":
|
129
|
+
- !binary |-
|
130
|
+
VGh1LCAyNCBKYW4gMjAxMyAyMzo1MDoxMiBHTVQ=
|
131
|
+
!binary "TG9jYXRpb24=":
|
132
|
+
- !binary |-
|
133
|
+
aHR0cDovL2ZpbGVzLnBhcnNlLmNvbS8zNzJmY2JiOS03ZWFlLTRiOWEtYWJj
|
134
|
+
OC02ZGE5N2ZjYWM1MGQvYzJjMTI1YTQtMDU5Ni00ZmEwLTljYWEtZGQzYTAy
|
135
|
+
MDQ3NmVhLWhlbGxvLnR4dA==
|
136
|
+
!binary "U2VydmVy":
|
137
|
+
- !binary |-
|
138
|
+
bmdpbngvMS4yLjI=
|
139
|
+
!binary "U2V0LUNvb2tpZQ==":
|
140
|
+
- !binary |-
|
141
|
+
X3BhcnNlX3Nlc3Npb249QkFoN0Jra2lEM05sYzNOcGIyNWZhV1FHT2daRlJp
|
142
|
+
SWxabU5pT1RjeE56VTVaR1l3T0RGbE5EazJaREkwTm1ZMVl6VmpaakF5WkRr
|
143
|
+
JTNELS0zMmY3NThhZmVjMDM4OGE4ZDI1ZGJkMmMwZmFmMzIwODk0MmU1ZWQ4
|
144
|
+
OyBkb21haW49LnBhcnNlLmNvbTsgcGF0aD0vOyBleHBpcmVzPVR1ZSwgMjQt
|
145
|
+
SmFuLTIwMjMgMjM6NTA6MTIgR01UOyBzZWN1cmU7IEh0dHBPbmx5
|
146
|
+
!binary "U3RhdHVz":
|
147
|
+
- !binary |-
|
148
|
+
MjAxIENyZWF0ZWQ=
|
149
|
+
!binary "WC1SdW50aW1l":
|
150
|
+
- !binary |-
|
151
|
+
MC4xMTg5ODE=
|
152
|
+
!binary "WC1VYS1Db21wYXRpYmxl":
|
153
|
+
- !binary |-
|
154
|
+
SUU9RWRnZSxjaHJvbWU9MQ==
|
155
|
+
!binary "Q29udGVudC1MZW5ndGg=":
|
156
|
+
- !binary |-
|
157
|
+
MTcy
|
158
|
+
!binary "Q29ubmVjdGlvbg==":
|
159
|
+
- !binary |-
|
160
|
+
a2VlcC1hbGl2ZQ==
|
161
|
+
body:
|
162
|
+
encoding: ASCII-8BIT
|
163
|
+
string: !binary |-
|
164
|
+
eyJ1cmwiOiJodHRwOi8vZmlsZXMucGFyc2UuY29tLzM3MmZjYmI5LTdlYWUt
|
165
|
+
NGI5YS1hYmM4LTZkYTk3ZmNhYzUwZC9jMmMxMjVhNC0wNTk2LTRmYTAtOWNh
|
166
|
+
YS1kZDNhMDIwNDc2ZWEtaGVsbG8udHh0IiwibmFtZSI6ImMyYzEyNWE0LTA1
|
167
|
+
OTYtNGZhMC05Y2FhLWRkM2EwMjA0NzZlYS1oZWxsby50eHQifQ==
|
168
|
+
http_version:
|
169
|
+
recorded_at: Thu, 24 Jan 2013 23:50:12 GMT
|
170
|
+
recorded_with: VCR 2.0.1
|
data/lib/parse/client.rb
CHANGED
@@ -37,12 +37,16 @@ module Parse
|
|
37
37
|
# with common basic response handling. Will raise a
|
38
38
|
# ParseProtocolError if the response has an error status code,
|
39
39
|
# and will return the parsed JSON body on success, if there is one.
|
40
|
-
def request(uri, method = :get, body = nil, query = nil)
|
40
|
+
def request(uri, method = :get, body = nil, query = nil, content_type = nil)
|
41
41
|
@session.headers[Protocol::HEADER_MASTER_KEY] = @master_key
|
42
42
|
@session.headers[Protocol::HEADER_API_KEY] = @api_key
|
43
43
|
@session.headers[Protocol::HEADER_APP_ID] = @application_id
|
44
44
|
@session.headers[Protocol::HEADER_SESSION_TOKEN] = @session_token
|
45
45
|
|
46
|
+
if content_type
|
47
|
+
@session.headers["Content-Type"] = content_type
|
48
|
+
end
|
49
|
+
|
46
50
|
options = {}
|
47
51
|
if body
|
48
52
|
options[:data] = body
|
@@ -61,6 +65,10 @@ module Parse
|
|
61
65
|
raise ParseProtocolError.new(parsed)
|
62
66
|
end
|
63
67
|
|
68
|
+
if content_type
|
69
|
+
@session.headers["Content-Type"] = "application/json"
|
70
|
+
end
|
71
|
+
|
64
72
|
return parsed
|
65
73
|
rescue Patron::TimeoutError
|
66
74
|
retry if num_tries <= max_retries
|
data/lib/parse/datatypes.rb
CHANGED
@@ -306,15 +306,23 @@ module Parse
|
|
306
306
|
|
307
307
|
# File
|
308
308
|
# ------------------------------------------------------------
|
309
|
-
|
309
|
+
# tf = Parse::File.new(:body => "Hello World!", :local_filename => "hello.txt")
|
310
|
+
# tf.save
|
310
311
|
class File
|
311
312
|
# '{"avatar": {"__type":"File", "name":"profile.png", "url"=>"http://files.parse.com/blah/profile.png"}}'
|
312
|
-
attr_accessor :
|
313
|
+
attr_accessor :local_filename # eg "hello.txt"
|
314
|
+
attr_accessor :parse_filename # eg "12-4-532d-d-g3-3-hello.text"
|
315
|
+
attr_accessor :content_type
|
316
|
+
attr_accessor :body
|
313
317
|
attr_accessor :url
|
314
318
|
|
315
319
|
def initialize(data)
|
316
|
-
|
317
|
-
@
|
320
|
+
data = Hash[data.map{ |k, v| [k.to_s, v] }] # convert hash keys to strings
|
321
|
+
@local_filename = data["local_filename"] if data["local_filename"]
|
322
|
+
@parse_filename = data["parse_filename"] if data["parse_filename"]
|
323
|
+
@content_type = data["content_type"] if data["content_type"]
|
324
|
+
@url = data["url"] if data["url"]
|
325
|
+
@body = data["body"] if data["body"]
|
318
326
|
end
|
319
327
|
|
320
328
|
def eql?(other)
|
@@ -328,18 +336,25 @@ module Parse
|
|
328
336
|
url.hash
|
329
337
|
end
|
330
338
|
|
339
|
+
def save
|
340
|
+
uri = Parse::Protocol.file_uri(@local_filename)
|
341
|
+
resp = Parse.client.request(uri, :post, @body, nil, @content_type)
|
342
|
+
@parse_filename = resp["name"]
|
343
|
+
@url = resp["url"]
|
344
|
+
resp
|
345
|
+
end
|
346
|
+
|
331
347
|
def as_json(*a)
|
332
348
|
{
|
333
|
-
|
334
|
-
|
335
|
-
|
349
|
+
Protocol::KEY_TYPE => Protocol::TYPE_FILE,
|
350
|
+
"name" => @parse_filename,
|
351
|
+
"url" => @url
|
336
352
|
}
|
337
353
|
end
|
338
354
|
|
339
355
|
def to_json(*a)
|
340
|
-
|
356
|
+
as_json.to_json(*a)
|
341
357
|
end
|
342
358
|
end
|
343
359
|
|
344
|
-
|
345
360
|
end
|
data/parse-ruby-client.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "parse-ruby-client"
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.12"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Alan deLevie", "Adam Alpern"]
|
12
|
-
s.date = "2013-01-
|
12
|
+
s.date = "2013-01-29"
|
13
13
|
s.description = "A simple Ruby client for the parse.com REST API"
|
14
14
|
s.email = "adelevie@gmail.com"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -36,7 +36,10 @@ Gem::Specification.new do |s|
|
|
36
36
|
"fixtures/vcr_cassettes/test_created_at.yml",
|
37
37
|
"fixtures/vcr_cassettes/test_deep_parse.yml",
|
38
38
|
"fixtures/vcr_cassettes/test_destroy.yml",
|
39
|
+
"fixtures/vcr_cassettes/test_file_save.yml",
|
39
40
|
"fixtures/vcr_cassettes/test_get.yml",
|
41
|
+
"fixtures/vcr_cassettes/test_image_file_associate_with_object.yml",
|
42
|
+
"fixtures/vcr_cassettes/test_image_file_save.yml",
|
40
43
|
"fixtures/vcr_cassettes/test_include.yml",
|
41
44
|
"fixtures/vcr_cassettes/test_new_model.yml",
|
42
45
|
"fixtures/vcr_cassettes/test_new_object.yml",
|
@@ -47,6 +50,7 @@ Gem::Specification.new do |s|
|
|
47
50
|
"fixtures/vcr_cassettes/test_request_batch.yml",
|
48
51
|
"fixtures/vcr_cassettes/test_server_update.yml",
|
49
52
|
"fixtures/vcr_cassettes/test_simple_save.yml",
|
53
|
+
"fixtures/vcr_cassettes/test_text_file_save.yml",
|
50
54
|
"fixtures/vcr_cassettes/test_update.yml",
|
51
55
|
"fixtures/vcr_cassettes/test_updated_at.yml",
|
52
56
|
"fixtures/vcr_cassettes/test_user_save.yml",
|
@@ -67,10 +71,12 @@ Gem::Specification.new do |s|
|
|
67
71
|
"test/cloud_functions/MyCloudCode/cloud/main.js",
|
68
72
|
"test/config/global.json",
|
69
73
|
"test/helper.rb",
|
74
|
+
"test/parsers.jpg",
|
70
75
|
"test/test_batch.rb",
|
71
76
|
"test/test_client.rb",
|
72
77
|
"test/test_cloud.rb",
|
73
78
|
"test/test_datatypes.rb",
|
79
|
+
"test/test_file.rb",
|
74
80
|
"test/test_init.rb",
|
75
81
|
"test/test_init_from_cloud_code.rb",
|
76
82
|
"test/test_model.rb",
|
data/test/parsers.jpg
ADDED
Binary file
|
data/test/test_datatypes.rb
CHANGED
@@ -75,16 +75,19 @@ class TestDatatypes < Test::Unit::TestCase
|
|
75
75
|
assert_equal gp, q["location"]
|
76
76
|
end
|
77
77
|
|
78
|
-
def test_file
|
79
|
-
data = {"name" => "blah.png"}
|
80
|
-
file = Parse::File.new(data)
|
81
|
-
assert_equal JSON.parse(file.to_json)["name"], data["name"]
|
82
|
-
assert_equal JSON.parse(file.to_json)[Parse::Protocol::KEY_TYPE], Parse::Protocol::TYPE_FILE
|
83
78
|
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
79
|
+
# deprecating - see test_file.rb for new implementation
|
80
|
+
# ----------------------------
|
81
|
+
#def test_file
|
82
|
+
# data = {"name" => "test/parsers.png"}
|
83
|
+
# file = Parse::File.new(data)
|
84
|
+
# assert_equal JSON.parse(file.to_json)["name"], data["name"]
|
85
|
+
# assert_equal JSON.parse(file.to_json)[Parse::Protocol::KEY_TYPE], Parse::Protocol::TYPE_FILE
|
86
|
+
|
87
|
+
# post = Parse::Object.new("Post")
|
88
|
+
# post["avatar"] = file
|
89
|
+
# post.save
|
90
|
+
# q = Parse.get("Post", post.id)
|
91
|
+
# assert_equal file.parse_filename, q["avatar"].parse_filename
|
92
|
+
#end
|
90
93
|
end
|
data/test/test_file.rb
ADDED
@@ -0,0 +1,68 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
class TestFile < Test::Unit::TestCase
|
4
|
+
def setup
|
5
|
+
Parse.init
|
6
|
+
end
|
7
|
+
|
8
|
+
def test_file_save
|
9
|
+
VCR.use_cassette('test_text_file_save', :record => :new_episodes) do
|
10
|
+
tf = Parse::File.new({
|
11
|
+
:body => "Hello World!",
|
12
|
+
:local_filename => "hello.txt",
|
13
|
+
:content_type => "text/plain"
|
14
|
+
})
|
15
|
+
tf.save
|
16
|
+
|
17
|
+
assert tf.local_filename
|
18
|
+
assert tf.url
|
19
|
+
assert tf.parse_filename
|
20
|
+
assert tf.body
|
21
|
+
assert tf.to_json
|
22
|
+
assert_equal String, tf.body.class
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_image_save
|
27
|
+
#VCR.use_cassette('test_image_file_save', :record => :new_episodes) do
|
28
|
+
tf = Parse::File.new({
|
29
|
+
:body => IO.read("test/parsers.jpg"),
|
30
|
+
:local_filename => "parsers.jpg",
|
31
|
+
:content_type => "image/jpeg"
|
32
|
+
})
|
33
|
+
tf.save
|
34
|
+
|
35
|
+
assert tf.local_filename
|
36
|
+
assert tf.url
|
37
|
+
assert tf.parse_filename
|
38
|
+
assert tf.body
|
39
|
+
assert tf.to_json
|
40
|
+
#end
|
41
|
+
end
|
42
|
+
|
43
|
+
def test_associate_with_object
|
44
|
+
#VCR.use_cassette('test_image_file_associate_with_object', :record => :new_episodes) do
|
45
|
+
tf = Parse::File.new({
|
46
|
+
:body => IO.read("test/parsers.jpg"),
|
47
|
+
:local_filename => "parsers.jpg",
|
48
|
+
:content_type => "image/jpeg"
|
49
|
+
})
|
50
|
+
tf.save
|
51
|
+
|
52
|
+
assert tf.local_filename
|
53
|
+
assert tf.url
|
54
|
+
assert tf.parse_filename
|
55
|
+
assert tf.body
|
56
|
+
assert tf.to_json
|
57
|
+
|
58
|
+
object = Parse::Object.new("ShouldHaveFile")
|
59
|
+
object["photo"] = tf
|
60
|
+
object.save
|
61
|
+
|
62
|
+
assert object["photo"]
|
63
|
+
assert object["objectId"]
|
64
|
+
#end
|
65
|
+
end
|
66
|
+
|
67
|
+
|
68
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: parse-ruby-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.12
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2013-01-
|
13
|
+
date: 2013-01-29 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: patron
|
@@ -183,7 +183,10 @@ files:
|
|
183
183
|
- fixtures/vcr_cassettes/test_created_at.yml
|
184
184
|
- fixtures/vcr_cassettes/test_deep_parse.yml
|
185
185
|
- fixtures/vcr_cassettes/test_destroy.yml
|
186
|
+
- fixtures/vcr_cassettes/test_file_save.yml
|
186
187
|
- fixtures/vcr_cassettes/test_get.yml
|
188
|
+
- fixtures/vcr_cassettes/test_image_file_associate_with_object.yml
|
189
|
+
- fixtures/vcr_cassettes/test_image_file_save.yml
|
187
190
|
- fixtures/vcr_cassettes/test_include.yml
|
188
191
|
- fixtures/vcr_cassettes/test_new_model.yml
|
189
192
|
- fixtures/vcr_cassettes/test_new_object.yml
|
@@ -194,6 +197,7 @@ files:
|
|
194
197
|
- fixtures/vcr_cassettes/test_request_batch.yml
|
195
198
|
- fixtures/vcr_cassettes/test_server_update.yml
|
196
199
|
- fixtures/vcr_cassettes/test_simple_save.yml
|
200
|
+
- fixtures/vcr_cassettes/test_text_file_save.yml
|
197
201
|
- fixtures/vcr_cassettes/test_update.yml
|
198
202
|
- fixtures/vcr_cassettes/test_updated_at.yml
|
199
203
|
- fixtures/vcr_cassettes/test_user_save.yml
|
@@ -214,10 +218,12 @@ files:
|
|
214
218
|
- test/cloud_functions/MyCloudCode/cloud/main.js
|
215
219
|
- test/config/global.json
|
216
220
|
- test/helper.rb
|
221
|
+
- test/parsers.jpg
|
217
222
|
- test/test_batch.rb
|
218
223
|
- test/test_client.rb
|
219
224
|
- test/test_cloud.rb
|
220
225
|
- test/test_datatypes.rb
|
226
|
+
- test/test_file.rb
|
221
227
|
- test/test_init.rb
|
222
228
|
- test/test_init_from_cloud_code.rb
|
223
229
|
- test/test_model.rb
|
@@ -240,7 +246,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
240
246
|
version: '0'
|
241
247
|
segments:
|
242
248
|
- 0
|
243
|
-
hash:
|
249
|
+
hash: 555133796256997664
|
244
250
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
245
251
|
none: false
|
246
252
|
requirements:
|