parse_resource 1.5.2 → 1.5.4
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/Gemfile +1 -0
- data/README.md +1 -1
- data/VERSION +1 -1
- data/lib/parse_resource.rb +23 -20
- data/parse_resource.gemspec +2 -2
- metadata +23 -23
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -49,7 +49,7 @@ If you're using a Rack app, in an initializer, include the following:
|
|
49
49
|
|
50
50
|
|
51
51
|
```ruby
|
52
|
-
ParseResource.load!("
|
52
|
+
ParseResource.load!("your_app_id", "your_master_key")
|
53
53
|
```
|
54
54
|
|
55
55
|
In a later version, I'll include support for non-Rails/Rack apps.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.5.
|
1
|
+
1.5.4
|
data/lib/parse_resource.rb
CHANGED
@@ -1,6 +1,10 @@
|
|
1
1
|
require "rubygems"
|
2
2
|
require "bundler/setup"
|
3
3
|
require "active_model"
|
4
|
+
require "erb"
|
5
|
+
require "rest-client"
|
6
|
+
require "json"
|
7
|
+
require "active_support"
|
4
8
|
|
5
9
|
class ParseResource
|
6
10
|
# ParseResource provides an easy way to use Ruby to interace with a Parse.com backend
|
@@ -18,13 +22,13 @@ class ParseResource
|
|
18
22
|
# p = Post.new(:title => "cool story")
|
19
23
|
def initialize(attributes = {})
|
20
24
|
if new?
|
21
|
-
@unsaved_attributes = attributes
|
25
|
+
@unsaved_attributes = attributes
|
22
26
|
else
|
23
|
-
@unsaved_attributes =
|
27
|
+
@unsaved_attributes = {}
|
24
28
|
end
|
25
29
|
self.attributes = {}
|
26
30
|
self.attributes.merge!(attributes)
|
27
|
-
self.attributes
|
31
|
+
self.attributes unless self.attributes.empty?
|
28
32
|
#@field_message = "set in #initialize"
|
29
33
|
create_setters!
|
30
34
|
end
|
@@ -64,22 +68,21 @@ class ParseResource
|
|
64
68
|
end
|
65
69
|
|
66
70
|
class << self
|
67
|
-
def load!(
|
68
|
-
|
69
|
-
@settings = YAML.load(ERB.new(File.new(path).read).result)[environment]
|
71
|
+
def load!(app_id, master_key)
|
72
|
+
@@settings = {"app_id" => app_id, "master_key" => master_key}
|
70
73
|
end
|
71
74
|
|
72
75
|
# creates a RESTful resource
|
73
76
|
# sends requests to [base_uri]/[classname]
|
74
77
|
def resource
|
75
|
-
if
|
78
|
+
if @@settings.nil?
|
76
79
|
path = "config/parse_resource.yml"
|
77
80
|
environment = defined?(Rails) && Rails.respond_to?(:env) ? Rails.env : ENV["RACK_ENV"]
|
78
|
-
|
81
|
+
@@settings = YAML.load(ERB.new(File.new(path).read).result)[environment]
|
79
82
|
end
|
80
83
|
base_uri = "https://api.parse.com/1/classes/#{model_name}"
|
81
|
-
app_id =
|
82
|
-
master_key =
|
84
|
+
app_id = @@settings['app_id']
|
85
|
+
master_key = @@settings['master_key']
|
83
86
|
RestClient::Resource.new(base_uri, app_id, master_key)
|
84
87
|
end
|
85
88
|
|
@@ -93,14 +96,14 @@ class ParseResource
|
|
93
96
|
def where(parameters)
|
94
97
|
resp = resource.get(:params => {:where => parameters.to_json})
|
95
98
|
results = JSON.parse(resp)['results']
|
96
|
-
results.map {|r| model_name.constantize.new(r
|
99
|
+
results.map {|r| model_name.constantize.new(r)}
|
97
100
|
end
|
98
101
|
|
99
102
|
# Post.all
|
100
103
|
def all
|
101
104
|
resp = resource.get
|
102
105
|
results = JSON.parse(resp)['results']
|
103
|
-
results.map {|r| model_name.constantize.new(r
|
106
|
+
results.map {|r| model_name.constantize.new(r)}
|
104
107
|
end
|
105
108
|
|
106
109
|
# Post.create(:title => "new post")
|
@@ -140,9 +143,9 @@ class ParseResource
|
|
140
143
|
|
141
144
|
def create
|
142
145
|
resp = self.resource.post(@unsaved_attributes.to_json, :content_type => "application/json")
|
143
|
-
@attributes.merge!(JSON.parse(resp)
|
146
|
+
@attributes.merge!(JSON.parse(resp))
|
144
147
|
@attributes.merge!(@unsaved_attributes)
|
145
|
-
@unsaved_attributes =
|
148
|
+
@unsaved_attributes = {}
|
146
149
|
create_setters!
|
147
150
|
self
|
148
151
|
end
|
@@ -156,7 +159,7 @@ class ParseResource
|
|
156
159
|
rescue false
|
157
160
|
end
|
158
161
|
|
159
|
-
def update(attributes =
|
162
|
+
def update(attributes = {})
|
160
163
|
@unsaved_attributes.merge!(attributes)
|
161
164
|
|
162
165
|
put_attrs = @unsaved_attributes
|
@@ -167,15 +170,15 @@ class ParseResource
|
|
167
170
|
|
168
171
|
resp = self.instance_resource.put(put_attrs, :content_type => "application/json")
|
169
172
|
|
170
|
-
@attributes.merge!(JSON.parse(resp)
|
173
|
+
@attributes.merge!(JSON.parse(resp))
|
171
174
|
@attributes.merge!(@unsaved_attributes)
|
172
|
-
@unsaved_attributes =
|
175
|
+
@unsaved_attributes = {}
|
173
176
|
create_setters!
|
174
177
|
|
175
178
|
self
|
176
179
|
end
|
177
180
|
|
178
|
-
def update_attributes(attributes =
|
181
|
+
def update_attributes(attributes = {})
|
179
182
|
self.update(attributes)
|
180
183
|
end
|
181
184
|
|
@@ -189,12 +192,12 @@ class ParseResource
|
|
189
192
|
# provides access to @attributes for getting and setting
|
190
193
|
def attributes
|
191
194
|
@attributes ||= self.class.class_attributes
|
192
|
-
@attributes
|
195
|
+
@attributes
|
193
196
|
end
|
194
197
|
|
195
198
|
def attributes=(n)
|
196
199
|
@attributes = n
|
197
|
-
@attributes
|
200
|
+
@attributes
|
198
201
|
end
|
199
202
|
|
200
203
|
# aliasing for idiomatic Ruby
|
data/parse_resource.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "parse_resource"
|
8
|
-
s.version = "1.5.
|
8
|
+
s.version = "1.5.4"
|
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"]
|
12
|
-
s.date = "2011-09-
|
12
|
+
s.date = "2011-09-22"
|
13
13
|
s.description = ""
|
14
14
|
s.email = "adelevie@gmail.com"
|
15
15
|
s.extra_rdoc_files = [
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: parse_resource
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.5.
|
4
|
+
version: 1.5.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-09-
|
12
|
+
date: 2011-09-22 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rest-client
|
16
|
-
requirement: &
|
16
|
+
requirement: &75448160 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *75448160
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: activesupport
|
27
|
-
requirement: &
|
27
|
+
requirement: &75447400 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *75447400
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: activemodel
|
38
|
-
requirement: &
|
38
|
+
requirement: &75446670 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *75446670
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: bundler
|
49
|
-
requirement: &
|
49
|
+
requirement: &75446160 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: 1.0.0
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *75446160
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: jeweler
|
60
|
-
requirement: &
|
60
|
+
requirement: &75445730 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ~>
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: 1.6.4
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *75445730
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rcov
|
71
|
-
requirement: &
|
71
|
+
requirement: &75445230 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: '0'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *75445230
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: reek
|
82
|
-
requirement: &
|
82
|
+
requirement: &75444770 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ~>
|
@@ -87,10 +87,10 @@ dependencies:
|
|
87
87
|
version: 1.2.8
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *75444770
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
92
|
name: rest-client
|
93
|
-
requirement: &
|
93
|
+
requirement: &75444360 !ruby/object:Gem::Requirement
|
94
94
|
none: false
|
95
95
|
requirements:
|
96
96
|
- - ! '>='
|
@@ -98,10 +98,10 @@ dependencies:
|
|
98
98
|
version: '0'
|
99
99
|
type: :development
|
100
100
|
prerelease: false
|
101
|
-
version_requirements: *
|
101
|
+
version_requirements: *75444360
|
102
102
|
- !ruby/object:Gem::Dependency
|
103
103
|
name: activesupport
|
104
|
-
requirement: &
|
104
|
+
requirement: &75443860 !ruby/object:Gem::Requirement
|
105
105
|
none: false
|
106
106
|
requirements:
|
107
107
|
- - ! '>='
|
@@ -109,10 +109,10 @@ dependencies:
|
|
109
109
|
version: '0'
|
110
110
|
type: :development
|
111
111
|
prerelease: false
|
112
|
-
version_requirements: *
|
112
|
+
version_requirements: *75443860
|
113
113
|
- !ruby/object:Gem::Dependency
|
114
114
|
name: activemodel
|
115
|
-
requirement: &
|
115
|
+
requirement: &75443330 !ruby/object:Gem::Requirement
|
116
116
|
none: false
|
117
117
|
requirements:
|
118
118
|
- - ! '>='
|
@@ -120,7 +120,7 @@ dependencies:
|
|
120
120
|
version: '0'
|
121
121
|
type: :development
|
122
122
|
prerelease: false
|
123
|
-
version_requirements: *
|
123
|
+
version_requirements: *75443330
|
124
124
|
description: ''
|
125
125
|
email: adelevie@gmail.com
|
126
126
|
executables: []
|
@@ -161,7 +161,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
161
161
|
version: '0'
|
162
162
|
segments:
|
163
163
|
- 0
|
164
|
-
hash:
|
164
|
+
hash: 982262131
|
165
165
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
166
166
|
none: false
|
167
167
|
requirements:
|