parsecom 0.5.0 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/parse/date.rb +21 -2
- data/lib/parse/event.rb +1 -1
- data/lib/parse/file.rb +6 -5
- data/lib/parse/object.rb +6 -6
- data/lib/parse/version.rb +1 -1
- data/spec/parse_date_spec.rb +18 -0
- metadata +4 -2
data/lib/parse/date.rb
CHANGED
@@ -1,9 +1,24 @@
|
|
1
|
+
# encoding:utf-8
|
1
2
|
module Parse
|
2
|
-
class
|
3
|
+
class ParseDate
|
4
|
+
include Util
|
5
|
+
|
6
|
+
class <<self
|
7
|
+
def parse str
|
8
|
+
new :iso => str
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
def initialize hash={}
|
13
|
+
hash = string_keyed_hash hash
|
14
|
+
@raw_hash = hash
|
15
|
+
@time = ::Time.parse hash['iso'] if hash.has_key? 'iso'
|
16
|
+
end
|
17
|
+
|
3
18
|
def to_h
|
4
19
|
{
|
5
20
|
"__type" => "Date",
|
6
|
-
"iso" => strftime('%Y-%m-%dT%H:%M:%SZ')
|
21
|
+
"iso" => @time.strftime('%Y-%m-%dT%H:%M:%SZ')
|
7
22
|
}
|
8
23
|
end
|
9
24
|
|
@@ -14,5 +29,9 @@ module Parse
|
|
14
29
|
def to_s
|
15
30
|
to_json
|
16
31
|
end
|
32
|
+
|
33
|
+
def method_missing name, *args, &block
|
34
|
+
@time.__send__ name, *args, &block
|
35
|
+
end
|
17
36
|
end
|
18
37
|
end
|
data/lib/parse/event.rb
CHANGED
data/lib/parse/file.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# encoding:utf-8
|
2
2
|
module Parse
|
3
|
-
class
|
3
|
+
class ParseFile
|
4
4
|
include Util
|
5
5
|
|
6
6
|
attr_accessor :name, :url, :content, :type
|
@@ -18,13 +18,13 @@ module Parse
|
|
18
18
|
'.jpeg' => 'image/jpeg',
|
19
19
|
'.png' => 'image/png',
|
20
20
|
'.gif' => 'image/gif'
|
21
|
-
}[
|
21
|
+
}[File.extname(@name).downcase]
|
22
22
|
@client = hash['parce_client'] || Parse::Client.default
|
23
23
|
end
|
24
24
|
|
25
25
|
def save
|
26
26
|
raise "Files cannot be updated." if @url
|
27
|
-
@content =
|
27
|
+
@content = File.read @content if @type =~ %r|^image/|
|
28
28
|
@client.call_api :post, "files/#{@name}", @content, 'Content-Type' => @type, 'Accept' => nil do |resp_body|
|
29
29
|
@name = resp_body['name']
|
30
30
|
@url = resp_body['url']
|
@@ -40,14 +40,15 @@ module Parse
|
|
40
40
|
|
41
41
|
def load &block
|
42
42
|
open @url do |content| @content = content.read end unless @content
|
43
|
-
block.call @content
|
43
|
+
block.call @content if block
|
44
|
+
@content
|
44
45
|
end
|
45
46
|
|
46
47
|
def store filepath=nil
|
47
48
|
filepath ||= @name
|
48
49
|
raise 'filepath is mandatory' unless filepath
|
49
50
|
|
50
|
-
FileUtils.mkdir_p
|
51
|
+
FileUtils.mkdir_p File.dirname(filepath)
|
51
52
|
load do |content|
|
52
53
|
open filepath, 'wb' do |file|
|
53
54
|
file.write content
|
data/lib/parse/object.rb
CHANGED
@@ -92,9 +92,9 @@ module Parse
|
|
92
92
|
when nil
|
93
93
|
Parse::ACL.new v
|
94
94
|
when 'Date'
|
95
|
-
|
95
|
+
ParseDate.parse v['iso']
|
96
96
|
when 'File'
|
97
|
-
|
97
|
+
ParseFile.new v
|
98
98
|
when 'Pointer'
|
99
99
|
Parse::Pointer.new v, self
|
100
100
|
when 'Relation'
|
@@ -150,14 +150,14 @@ module Parse
|
|
150
150
|
def create hash, use_master_key=false
|
151
151
|
check_deleted!
|
152
152
|
hash = string_keyed_hash hash
|
153
|
-
@updated_hash.update hash
|
153
|
+
@updated_hash = @raw_hash.dup.update(@updated_hash).update hash
|
154
154
|
@updated_hash.reject! do |k, v|
|
155
155
|
v.is_a?(Parse::Relation) && !v.changed?
|
156
156
|
end
|
157
157
|
method = use_master_key ? :create! : :create
|
158
158
|
parse_client.send(method, self.parse_class_name, @updated_hash) do |response|
|
159
159
|
@parse_object_id = response['objectId']
|
160
|
-
@created_at =
|
160
|
+
@created_at = ParseDate.parse response['createdAt']
|
161
161
|
@updated_at = @created_at
|
162
162
|
@raw_hash.update @updated_hash
|
163
163
|
@raw_hash.update response
|
@@ -165,7 +165,7 @@ module Parse
|
|
165
165
|
end
|
166
166
|
end
|
167
167
|
|
168
|
-
def create! hash
|
168
|
+
def create! hash={}
|
169
169
|
create hash, true
|
170
170
|
end
|
171
171
|
|
@@ -176,7 +176,7 @@ module Parse
|
|
176
176
|
parse_client.send(method, parse_class_name, parse_object_id, hash) do |response|
|
177
177
|
@raw_hash.update @updated_hash
|
178
178
|
@raw_hash.update response
|
179
|
-
@updated_at =
|
179
|
+
@updated_at = ParseDate.parse response['updatedAt']
|
180
180
|
@updated_hash.clear
|
181
181
|
end
|
182
182
|
end
|
data/lib/parse/version.rb
CHANGED
@@ -0,0 +1,18 @@
|
|
1
|
+
# coding:utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
require 'parsecom'
|
4
|
+
|
5
|
+
describe Parse::ParseDate, 'when converting from and to json' do
|
6
|
+
it 'should be converted to a correct json' do
|
7
|
+
date = Parse::ParseDate.parse '2013-10-18T20:53:25Z'
|
8
|
+
date.year.should == 2013
|
9
|
+
date.month.should == 10
|
10
|
+
date.to_json.should == '{"__type":"Date","iso":"2013-10-18T20:53:25Z"}'
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'should be converted from a json' do
|
14
|
+
date = Parse::ParseDate.new :iso => '2013-10-18T20:53:25Z'
|
15
|
+
date.year.should == 2013
|
16
|
+
date.month.should == 10
|
17
|
+
end
|
18
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: parsecom
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-10-
|
12
|
+
date: 2013-10-24 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
@@ -112,6 +112,7 @@ files:
|
|
112
112
|
- spec/fixtures/vcr_cassettes/user_sign_up.yml
|
113
113
|
- spec/parse_batch_spec.rb
|
114
114
|
- spec/parse_client_spec.rb
|
115
|
+
- spec/parse_date_spec.rb
|
115
116
|
- spec/parse_object_spec.rb
|
116
117
|
- spec/parse_query_spec.rb
|
117
118
|
- spec/parse_user_spec.rb
|
@@ -151,6 +152,7 @@ test_files:
|
|
151
152
|
- spec/fixtures/vcr_cassettes/user_sign_up.yml
|
152
153
|
- spec/parse_batch_spec.rb
|
153
154
|
- spec/parse_client_spec.rb
|
155
|
+
- spec/parse_date_spec.rb
|
154
156
|
- spec/parse_object_spec.rb
|
155
157
|
- spec/parse_query_spec.rb
|
156
158
|
- spec/parse_user_spec.rb
|