parse_resource 1.5.11 → 1.6.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,286 @@
1
+ require "rubygems"
2
+ require "bundler/setup"
3
+ require "active_model"
4
+ require "erb"
5
+ require "rest-client"
6
+ require "json"
7
+ require "active_support/hash_with_indifferent_access"
8
+
9
+ class ParseResource
10
+ # ParseResource provides an easy way to use Ruby to interace with a Parse.com backend
11
+ # Usage:
12
+ # class Post < ParseResource
13
+ # fields :title, :author, :body
14
+ # end
15
+
16
+ include ActiveModel::Validations
17
+ include ActiveModel::Conversion
18
+ include ActiveModel::AttributeMethods
19
+ extend ActiveModel::Naming
20
+ extend ActiveModel::Callbacks
21
+ HashWithIndifferentAccess = ActiveSupport::HashWithIndifferentAccess
22
+
23
+ # define_model_callbacks :initialize, :find, :only => :after
24
+ define_model_callbacks :save, :create, :update, :destroy
25
+
26
+
27
+ # Instantiates a ParseResource object
28
+ #
29
+ # @params [Hash], [Boolean] a `Hash` of attributes and a `Boolean` that should be false only if the object already exists
30
+ # @return [ParseResource] an object that subclasses `Parseresource`
31
+ def initialize(attributes = {}, new=true)
32
+ attributes = HashWithIndifferentAccess.new(attributes)
33
+ if new
34
+ @unsaved_attributes = attributes
35
+ else
36
+ @unsaved_attributes = {}
37
+ end
38
+ self.attributes = {}
39
+ self.attributes.merge!(attributes)
40
+ self.attributes unless self.attributes.empty?
41
+ create_setters!
42
+ end
43
+
44
+ # Explicitly adds a field to the model.
45
+ #
46
+ # @param [Symbol] name the name of the field, eg `:author`.
47
+ # @param [Boolean] val the return value of the field. Only use this within the class.
48
+ def self.field(name, val=nil)
49
+ class_eval do
50
+ define_method(name) do
51
+ @attributes[name] ? @attributes[name] : @unsaved_attributes[name]
52
+ end
53
+ define_method("#{name}=") do |val|
54
+ @attributes[name] = val
55
+ @unsaved_attributes[name] = val
56
+ val
57
+ end
58
+ end
59
+ end
60
+
61
+ # Add multiple fields in one line. Same as `#field`, but accepts multiple args.
62
+ #
63
+ # @param [Array] *args an array of `Symbol`s, `eg :author, :body, :title`.
64
+ def self.fields(*args)
65
+ args.each {|f| field(f)}
66
+ end
67
+
68
+ # Creates getter and setter methods for model fields
69
+ #
70
+ def create_setters!
71
+ @attributes.each_pair do |k,v|
72
+ self.class.send(:define_method, "#{k}=") do |val|
73
+ if k.is_a?(Symbol)
74
+ k = k.to_s
75
+ end
76
+ @attributes[k.to_s] = val
77
+ @unsaved_attributes[k.to_s] = val
78
+ val
79
+ end
80
+ self.class.send(:define_method, "#{k}") do
81
+ if k.is_a?(Symbol)
82
+ k = k.to_s
83
+ end
84
+
85
+ @attributes[k.to_s]
86
+ end
87
+ end
88
+ end
89
+
90
+ class << self
91
+ def has_one(child_name)
92
+ class_eval do
93
+
94
+ define_method("#{child_name}") do
95
+ child_name
96
+ end
97
+
98
+ define_method("#{child_name}=") do |child_object|
99
+ [child_object, child_name]
100
+ end
101
+
102
+ end
103
+ end
104
+
105
+ def belongs_to(name)
106
+ class_eval do
107
+
108
+ define_method("#{parent_name}") do
109
+ name
110
+ end
111
+
112
+ define_method("#{parent_name}=") do |parent_object|
113
+ [parent_name, parent_object]
114
+ end
115
+
116
+ end
117
+ end
118
+
119
+
120
+ @@settings ||= nil
121
+
122
+ # Explicitly set Parse.com API keys.
123
+ #
124
+ # @param [String] app_id the Application ID of your Parse database
125
+ # @param [String] master_key the Master Key of your Parse database
126
+ def load!(app_id, master_key)
127
+ @@settings = {"app_id" => app_id, "master_key" => master_key}
128
+ end
129
+
130
+ # Creates a RESTful resource
131
+ # sends requests to [base_uri]/[classname]
132
+ #
133
+ def resource
134
+ if @@settings.nil?
135
+ path = "config/parse_resource.yml"
136
+ environment = defined?(Rails) && Rails.respond_to?(:env) ? Rails.env : ENV["RACK_ENV"]
137
+ @@settings = YAML.load(ERB.new(File.new(path).read).result)[environment]
138
+ end
139
+ base_uri = "https://api.parse.com/1/classes/#{model_name}"
140
+ app_id = @@settings['app_id']
141
+ master_key = @@settings['master_key']
142
+ RestClient::Resource.new(base_uri, app_id, master_key)
143
+ end
144
+
145
+ # Find a ParseResource object by ID
146
+ #
147
+ # @param [String] id the ID of the Parse object you want to find.
148
+ # @return [ParseResource] an object that subclasses ParseResource.
149
+ def find(id)
150
+ where(:objectId => id).first
151
+ end
152
+
153
+ # Find a ParseResource object by a `Hash` of conditions.
154
+ #
155
+ # @param [Hash] parameters a `Hash` of conditions.
156
+ # @return [Array] an `Array` of objects that subclass `ParseResource`.
157
+ def where(parameters)
158
+ resp = resource.get(:params => {:where => parameters.to_json})
159
+ results = JSON.parse(resp)['results']
160
+ results.map {|r| model_name.constantize.new(r, false)}
161
+ end
162
+
163
+ # Find all ParseResource objects for that model.
164
+ #
165
+ # @return [Array] an `Array` of objects that subclass `ParseResource`.
166
+ def all
167
+ resp = resource.get
168
+ results = JSON.parse(resp)['results']
169
+ results.map {|r| model_name.constantize.new(r, false)}
170
+ end
171
+
172
+ # Create a ParseResource object.
173
+ #
174
+ # @param [Hash] attributes a `Hash` of attributes
175
+ # @return [ParseResource] an object that subclasses `ParseResource`. Or returns `false` if object fails to save.
176
+ def create(attributes = {})
177
+ attributes = HashWithIndifferentAccess.new(attributes)
178
+ new(attributes).save
179
+ end
180
+
181
+ # Find the first object. Fairly random, not based on any specific condition.
182
+ #
183
+ def first
184
+ all.first
185
+ end
186
+
187
+ def class_attributes
188
+ @class_attributes ||= {}
189
+ end
190
+
191
+ end
192
+
193
+ def persisted?
194
+ if id
195
+ true
196
+ else
197
+ false
198
+ end
199
+ end
200
+
201
+ def new?
202
+ !persisted?
203
+ end
204
+
205
+ # delegate from Class method
206
+ def resource
207
+ self.class.resource
208
+ end
209
+
210
+ # create RESTful resource for the specific Parse object
211
+ # sends requests to [base_uri]/[classname]/[objectId]
212
+ def instance_resource
213
+ self.class.resource["#{self.id}"]
214
+ end
215
+
216
+ def create
217
+ resp = self.resource.post(@unsaved_attributes.to_json, :content_type => "application/json")
218
+ @attributes.merge!(JSON.parse(resp))
219
+ @attributes.merge!(@unsaved_attributes)
220
+ attributes = HashWithIndifferentAccess.new(attributes)
221
+ @unsaved_attributes = {}
222
+ create_setters!
223
+ self
224
+ end
225
+
226
+ def save
227
+ if valid?
228
+ run_callbacks :save do
229
+ new? ? create : update
230
+ end
231
+ else
232
+ false
233
+ end
234
+ rescue false
235
+ end
236
+
237
+ def update(attributes = {})
238
+ attributes = HashWithIndifferentAccess.new(attributes)
239
+ @unsaved_attributes.merge!(attributes)
240
+
241
+ put_attrs = @unsaved_attributes
242
+ put_attrs.delete('objectId')
243
+ put_attrs.delete('createdAt')
244
+ put_attrs.delete('updatedAt')
245
+ put_attrs = put_attrs.to_json
246
+
247
+ resp = self.instance_resource.put(put_attrs, :content_type => "application/json")
248
+
249
+ @attributes.merge!(JSON.parse(resp))
250
+ @attributes.merge!(@unsaved_attributes)
251
+ @unsaved_attributes = {}
252
+ create_setters!
253
+
254
+ self
255
+ end
256
+
257
+ def update_attributes(attributes = {})
258
+ self.update(attributes)
259
+ end
260
+
261
+ def destroy
262
+ self.instance_resource.delete
263
+ @attributes = {}
264
+ @unsaved_attributes = {}
265
+ nil
266
+ end
267
+
268
+ # provides access to @attributes for getting and setting
269
+ def attributes
270
+ @attributes ||= self.class.class_attributes
271
+ @attributes
272
+ end
273
+
274
+ def attributes=(n)
275
+ @attributes = n
276
+ @attributes
277
+ end
278
+
279
+ # aliasing for idiomatic Ruby
280
+ def id; self.objectId rescue nil; end
281
+
282
+ def created_at; self.createdAt; end
283
+
284
+ def updated_at; self.updatedAt rescue nil; end
285
+
286
+ end
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "parse_resource"
8
- s.version = "1.5.11"
8
+ s.version = "1.6.0"
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-10-01"
12
+ s.date = "2011-12-07"
13
13
  s.description = ""
14
14
  s.email = "adelevie@gmail.com"
15
15
  s.extra_rdoc_files = [
@@ -24,8 +24,10 @@ Gem::Specification.new do |s|
24
24
  "README.md",
25
25
  "Rakefile",
26
26
  "VERSION",
27
+ "lib/base.rb",
27
28
  "lib/examples/post.rb",
28
29
  "lib/parse_resource.rb",
30
+ "lib/parse_resource_old.rb",
29
31
  "parse_resource.gemspec",
30
32
  "rdoc/ParseResource.html",
31
33
  "rdoc/created.rid",
@@ -69,8 +69,6 @@
69
69
  <h3 class="section-header">Methods</h3>
70
70
  <ul class="link-list">
71
71
 
72
- <li><a href="#method-c-add_field">::add_field</a></li>
73
-
74
72
  <li><a href="#method-c-all">::all</a></li>
75
73
 
76
74
  <li><a href="#method-c-class_attributes">::class_attributes</a></li>
@@ -109,8 +107,6 @@
109
107
 
110
108
  <li><a href="#method-i-instance_resource">#instance_resource</a></li>
111
109
 
112
- <li><a href="#method-i-method_missing">#method_missing</a></li>
113
-
114
110
  <li><a href="#method-i-new%3F">#new?</a></li>
115
111
 
116
112
  <li><a href="#method-i-persisted%3F">#persisted?</a></li>
@@ -173,6 +169,8 @@
173
169
 
174
170
  <li><a href="./ParseResource.html">ParseResource</a></li>
175
171
 
172
+ <li><a href="./Post.html">Post</a></li>
173
+
176
174
  </ul>
177
175
  <div id="no-class-search-results" style="display: none;">No matching classes.</div>
178
176
  </div>
@@ -190,6 +188,18 @@
190
188
 
191
189
  <!-- Constants -->
192
190
 
191
+ <div id="constants-list" class="section">
192
+ <h3 class="section-header">Constants</h3>
193
+ <dl>
194
+
195
+ <dt><a name="HashWithIndifferentAccess">HashWithIndifferentAccess</a></dt>
196
+
197
+ <dd class="description"></dd>
198
+
199
+
200
+ </dl>
201
+ </div>
202
+
193
203
 
194
204
  <!-- Attributes -->
195
205
 
@@ -200,40 +210,6 @@
200
210
  <h3 class="section-header">Public Class Methods</h3>
201
211
 
202
212
 
203
- <div id="add-field-method" class="method-detail ">
204
- <a name="method-c-add_field"></a>
205
-
206
- <div class="method-heading">
207
-
208
- <span class="method-name">add_field</span><span
209
- class="method-args">(fieldname, val=nil)</span>
210
- <span class="method-click-advice">click to toggle source</span>
211
-
212
- </div>
213
-
214
- <div class="method-description">
215
-
216
-
217
-
218
-
219
-
220
- <div class="method-source-code"
221
- id="add-field-source">
222
- <pre>
223
- <span class="ruby-comment cmt"># File lib/parse_resource.rb, line 45</span>
224
- 45: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">add_field</span>(<span class="ruby-identifier">fieldname</span>, <span class="ruby-identifier">val</span>=<span class="ruby-keyword kw">nil</span>)
225
- 46: <span class="ruby-identifier">class_attributes</span>.<span class="ruby-identifier">merge!</span>({<span class="ruby-identifier">fieldname</span>.<span class="ruby-identifier">to_sym</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">nil</span>})
226
- 47: <span class="ruby-keyword kw">end</span></pre>
227
- </div>
228
-
229
- </div>
230
-
231
-
232
-
233
-
234
- </div>
235
-
236
-
237
213
  <div id="all-method" class="method-detail ">
238
214
  <a name="method-c-all"></a>
239
215
 
@@ -248,7 +224,11 @@
248
224
  <div class="method-description">
249
225
 
250
226
  <p>
251
- Post.all
227
+ Find all <a href="ParseResource.html">ParseResource</a> objects for that
228
+ model.
229
+ </p>
230
+ <p>
231
+ @return [Array] an `Array` of objects that subclass `ParseResource`.
252
232
  </p>
253
233
 
254
234
 
@@ -256,12 +236,12 @@ Post.all
256
236
  <div class="method-source-code"
257
237
  id="all-source">
258
238
  <pre>
259
- <span class="ruby-comment cmt"># File lib/parse_resource.rb, line 96</span>
260
- 96: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">all</span>
261
- 97: <span class="ruby-identifier">resp</span> = <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">get</span>
262
- 98: <span class="ruby-identifier">results</span> = <span class="ruby-constant">JSON</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">resp</span>)[<span class="ruby-value str">'results'</span>]
263
- 99: <span class="ruby-identifier">results</span>.<span class="ruby-identifier">map</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">r</span><span class="ruby-operator">|</span> <span class="ruby-identifier">model_name</span>.<span class="ruby-identifier">constantize</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">r</span>.<span class="ruby-identifier">symbolize_keys!</span>)}
264
- 100: <span class="ruby-keyword kw">end</span></pre>
239
+ <span class="ruby-comment cmt"># File lib/parse_resource.rb, line 137</span>
240
+ 137: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">all</span>
241
+ 138: <span class="ruby-identifier">resp</span> = <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">get</span>
242
+ 139: <span class="ruby-identifier">results</span> = <span class="ruby-constant">JSON</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">resp</span>)[<span class="ruby-value str">'results'</span>]
243
+ 140: <span class="ruby-identifier">results</span>.<span class="ruby-identifier">map</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">r</span><span class="ruby-operator">|</span> <span class="ruby-identifier">model_name</span>.<span class="ruby-identifier">constantize</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">r</span>, <span class="ruby-keyword kw">false</span>)}
244
+ 141: <span class="ruby-keyword kw">end</span></pre>
265
245
  </div>
266
246
 
267
247
  </div>
@@ -292,10 +272,10 @@ Post.all
292
272
  <div class="method-source-code"
293
273
  id="class-attributes-source">
294
274
  <pre>
295
- <span class="ruby-comment cmt"># File lib/parse_resource.rb, line 112</span>
296
- 112: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">class_attributes</span>
297
- 113: <span class="ruby-ivar">@class_attributes</span> <span class="ruby-operator">||=</span> {}
298
- 114: <span class="ruby-keyword kw">end</span></pre>
275
+ <span class="ruby-comment cmt"># File lib/parse_resource.rb, line 158</span>
276
+ 158: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">class_attributes</span>
277
+ 159: <span class="ruby-ivar">@class_attributes</span> <span class="ruby-operator">||=</span> {}
278
+ 160: <span class="ruby-keyword kw">end</span></pre>
299
279
  </div>
300
280
 
301
281
  </div>
@@ -320,7 +300,12 @@ Post.all
320
300
  <div class="method-description">
321
301
 
322
302
  <p>
323
- Post.create(:title => &#8220;new post&#8221;)
303
+ Create a <a href="ParseResource.html">ParseResource</a> object.
304
+ </p>
305
+ <p>
306
+ @param [Hash] attributes a `Hash` of attributes @return [ParseResource] an
307
+ object that subclasses `ParseResource`. Or returns `false` if object fails
308
+ to save.
324
309
  </p>
325
310
 
326
311
 
@@ -328,10 +313,11 @@ Post.create(:title => &#8220;new post&#8221;)
328
313
  <div class="method-source-code"
329
314
  id="create-source">
330
315
  <pre>
331
- <span class="ruby-comment cmt"># File lib/parse_resource.rb, line 103</span>
332
- 103: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">create</span>(<span class="ruby-identifier">attributes</span> = {})
333
- 104: <span class="ruby-identifier">new</span>(<span class="ruby-identifier">attributes</span>).<span class="ruby-identifier">save</span>
334
- 105: <span class="ruby-keyword kw">end</span></pre>
316
+ <span class="ruby-comment cmt"># File lib/parse_resource.rb, line 147</span>
317
+ 147: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">create</span>(<span class="ruby-identifier">attributes</span> = {})
318
+ 148: <span class="ruby-identifier">attributes</span> = <span class="ruby-constant">HashWithIndifferentAccess</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">attributes</span>)
319
+ 149: <span class="ruby-identifier">new</span>(<span class="ruby-identifier">attributes</span>).<span class="ruby-identifier">save</span>
320
+ 150: <span class="ruby-keyword kw">end</span></pre>
335
321
  </div>
336
322
 
337
323
  </div>
@@ -355,26 +341,32 @@ Post.create(:title => &#8220;new post&#8221;)
355
341
 
356
342
  <div class="method-description">
357
343
 
358
-
344
+ <p>
345
+ Explicitly adds a field to the model.
346
+ </p>
347
+ <p>
348
+ @param [Symbol] name the name of the field, eg `:author`. @param [Boolean]
349
+ val the return value of the field. Only use this within the class.
350
+ </p>
359
351
 
360
352
 
361
353
 
362
354
  <div class="method-source-code"
363
355
  id="field-source">
364
356
  <pre>
365
- <span class="ruby-comment cmt"># File lib/parse_resource.rb, line 28</span>
366
- 28: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">field</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">val</span>=<span class="ruby-keyword kw">nil</span>)
367
- 29: <span class="ruby-identifier">class_eval</span> <span class="ruby-keyword kw">do</span>
368
- 30: <span class="ruby-identifier">define_method</span>(<span class="ruby-identifier">name</span>) <span class="ruby-keyword kw">do</span>
369
- 31: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">name</span>] <span class="ruby-operator">?</span> <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">name</span>] <span class="ruby-operator">:</span> <span class="ruby-ivar">@unsaved_attributes</span>[<span class="ruby-identifier">name</span>]
370
- 32: <span class="ruby-keyword kw">end</span>
371
- 33: <span class="ruby-identifier">define_method</span>(<span class="ruby-node">&quot;#{name}=&quot;</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">val</span><span class="ruby-operator">|</span>
372
- 34: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">name</span>] = <span class="ruby-identifier">val</span>
373
- 35: <span class="ruby-ivar">@unsaved_attributes</span>[<span class="ruby-identifier">name</span>] = <span class="ruby-identifier">val</span>
374
- 36: <span class="ruby-identifier">val</span>
375
- 37: <span class="ruby-keyword kw">end</span>
376
- 38: <span class="ruby-keyword kw">end</span>
377
- 39: <span class="ruby-keyword kw">end</span></pre>
357
+ <span class="ruby-comment cmt"># File lib/parse_resource.rb, line 48</span>
358
+ 48: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">field</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">val</span>=<span class="ruby-keyword kw">nil</span>)
359
+ 49: <span class="ruby-identifier">class_eval</span> <span class="ruby-keyword kw">do</span>
360
+ 50: <span class="ruby-identifier">define_method</span>(<span class="ruby-identifier">name</span>) <span class="ruby-keyword kw">do</span>
361
+ 51: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">name</span>] <span class="ruby-operator">?</span> <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">name</span>] <span class="ruby-operator">:</span> <span class="ruby-ivar">@unsaved_attributes</span>[<span class="ruby-identifier">name</span>]
362
+ 52: <span class="ruby-keyword kw">end</span>
363
+ 53: <span class="ruby-identifier">define_method</span>(<span class="ruby-node">&quot;#{name}=&quot;</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">val</span><span class="ruby-operator">|</span>
364
+ 54: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">name</span>] = <span class="ruby-identifier">val</span>
365
+ 55: <span class="ruby-ivar">@unsaved_attributes</span>[<span class="ruby-identifier">name</span>] = <span class="ruby-identifier">val</span>
366
+ 56: <span class="ruby-identifier">val</span>
367
+ 57: <span class="ruby-keyword kw">end</span>
368
+ 58: <span class="ruby-keyword kw">end</span>
369
+ 59: <span class="ruby-keyword kw">end</span></pre>
378
370
  </div>
379
371
 
380
372
  </div>
@@ -398,17 +390,22 @@ Post.create(:title => &#8220;new post&#8221;)
398
390
 
399
391
  <div class="method-description">
400
392
 
401
-
393
+ <p>
394
+ Add multiple fields in one line. Same as `#`, but accepts multiple args.
395
+ </p>
396
+ <p>
397
+ @param [Array] *args an array of `Symbol`s, `eg :author, :body, :title`.
398
+ </p>
402
399
 
403
400
 
404
401
 
405
402
  <div class="method-source-code"
406
403
  id="fields-source">
407
404
  <pre>
408
- <span class="ruby-comment cmt"># File lib/parse_resource.rb, line 41</span>
409
- 41: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">fields</span>(*<span class="ruby-identifier">args</span>)
410
- 42: <span class="ruby-identifier">args</span>.<span class="ruby-identifier">each</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span> <span class="ruby-identifier">field</span>(<span class="ruby-identifier">f</span>)}
411
- 43: <span class="ruby-keyword kw">end</span></pre>
405
+ <span class="ruby-comment cmt"># File lib/parse_resource.rb, line 64</span>
406
+ 64: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">fields</span>(*<span class="ruby-identifier">args</span>)
407
+ 65: <span class="ruby-identifier">args</span>.<span class="ruby-identifier">each</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span> <span class="ruby-identifier">field</span>(<span class="ruby-identifier">f</span>)}
408
+ 66: <span class="ruby-keyword kw">end</span></pre>
412
409
  </div>
413
410
 
414
411
  </div>
@@ -433,7 +430,12 @@ Post.create(:title => &#8220;new post&#8221;)
433
430
  <div class="method-description">
434
431
 
435
432
  <p>
436
- finders Post.find(&#8220;abcdf&#8221;)
433
+ Find a <a href="ParseResource.html">ParseResource</a> object by ID
434
+ </p>
435
+ <p>
436
+ @param [String] id the ID of the Parse object you want to find. @return
437
+ [ParseResource] an object that subclasses <a
438
+ href="ParseResource.html">ParseResource</a>.
437
439
  </p>
438
440
 
439
441
 
@@ -441,10 +443,10 @@ finders Post.find(&#8220;abcdf&#8221;)
441
443
  <div class="method-source-code"
442
444
  id="find-source">
443
445
  <pre>
444
- <span class="ruby-comment cmt"># File lib/parse_resource.rb, line 84</span>
445
- 84: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">find</span>(<span class="ruby-identifier">id</span>)
446
- 85: <span class="ruby-identifier">where</span>(<span class="ruby-value">:objectId</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">id</span>).<span class="ruby-identifier">first</span>
447
- 86: <span class="ruby-keyword kw">end</span></pre>
446
+ <span class="ruby-comment cmt"># File lib/parse_resource.rb, line 120</span>
447
+ 120: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">find</span>(<span class="ruby-identifier">id</span>)
448
+ 121: <span class="ruby-identifier">where</span>(<span class="ruby-value">:objectId</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">id</span>).<span class="ruby-identifier">first</span>
449
+ 122: <span class="ruby-keyword kw">end</span></pre>
448
450
  </div>
449
451
 
450
452
  </div>
@@ -469,7 +471,7 @@ finders Post.find(&#8220;abcdf&#8221;)
469
471
  <div class="method-description">
470
472
 
471
473
  <p>
472
- Post.first
474
+ Find the first object. Fairly random, not based on any specific condition.
473
475
  </p>
474
476
 
475
477
 
@@ -477,10 +479,10 @@ Post.first
477
479
  <div class="method-source-code"
478
480
  id="first-source">
479
481
  <pre>
480
- <span class="ruby-comment cmt"># File lib/parse_resource.rb, line 108</span>
481
- 108: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">first</span>
482
- 109: <span class="ruby-identifier">all</span>.<span class="ruby-identifier">first</span>
483
- 110: <span class="ruby-keyword kw">end</span></pre>
482
+ <span class="ruby-comment cmt"># File lib/parse_resource.rb, line 154</span>
483
+ 154: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">first</span>
484
+ 155: <span class="ruby-identifier">all</span>.<span class="ruby-identifier">first</span>
485
+ 156: <span class="ruby-keyword kw">end</span></pre>
484
486
  </div>
485
487
 
486
488
  </div>
@@ -497,25 +499,30 @@ Post.first
497
499
  <div class="method-heading">
498
500
 
499
501
  <span class="method-name">load!</span><span
500
- class="method-args">(path="config/parse_resource.yml")</span>
502
+ class="method-args">(app_id, master_key)</span>
501
503
  <span class="method-click-advice">click to toggle source</span>
502
504
 
503
505
  </div>
504
506
 
505
507
  <div class="method-description">
506
508
 
507
-
509
+ <p>
510
+ Explicitly set Parse.com API keys.
511
+ </p>
512
+ <p>
513
+ @param [String] app_id the Application ID of your Parse database @param
514
+ [String] master_key the Master Key of your Parse database
515
+ </p>
508
516
 
509
517
 
510
518
 
511
519
  <div class="method-source-code"
512
520
  id="load--source">
513
521
  <pre>
514
- <span class="ruby-comment cmt"># File lib/parse_resource.rb, line 63</span>
515
- 63: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">load!</span>(<span class="ruby-identifier">path</span>=<span class="ruby-value str">&quot;config/parse_resource.yml&quot;</span>)
516
- 64: <span class="ruby-identifier">environment</span> = <span class="ruby-keyword kw">defined?</span>(<span class="ruby-constant">Rails</span>) <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-constant">Rails</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value">:env</span>) <span class="ruby-operator">?</span> <span class="ruby-constant">Rails</span>.<span class="ruby-identifier">env</span> <span class="ruby-operator">:</span> <span class="ruby-constant">ENV</span>[<span class="ruby-value str">&quot;RACK_ENV&quot;</span>]
517
- 65: <span class="ruby-ivar">@settings</span> = <span class="ruby-constant">YAML</span>.<span class="ruby-identifier">load</span>(<span class="ruby-constant">ERB</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">path</span>).<span class="ruby-identifier">read</span>).<span class="ruby-identifier">result</span>)[<span class="ruby-identifier">environment</span>]
518
- 66: <span class="ruby-keyword kw">end</span></pre>
522
+ <span class="ruby-comment cmt"># File lib/parse_resource.rb, line 97</span>
523
+ 97: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">load!</span>(<span class="ruby-identifier">app_id</span>, <span class="ruby-identifier">master_key</span>)
524
+ 98: <span class="ruby-identifier">@@settings</span> = {<span class="ruby-value str">&quot;app_id&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">app_id</span>, <span class="ruby-value str">&quot;master_key&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">master_key</span>}
525
+ 99: <span class="ruby-keyword kw">end</span></pre>
519
526
  </div>
520
527
 
521
528
  </div>
@@ -532,7 +539,7 @@ Post.first
532
539
  <div class="method-heading">
533
540
 
534
541
  <span class="method-name">new</span><span
535
- class="method-args">(attributes = {})</span>
542
+ class="method-args">(attributes = {}, new=true)</span>
536
543
  <span class="method-click-advice">click to toggle source</span>
537
544
 
538
545
  </div>
@@ -540,7 +547,12 @@ Post.first
540
547
  <div class="method-description">
541
548
 
542
549
  <p>
543
- instantiation! p = Post.new(:title => &#8220;cool story&#8221;)
550
+ Instantiates a <a href="ParseResource.html">ParseResource</a> object
551
+ </p>
552
+ <p>
553
+ @params [Hash], [Boolean] a `Hash` of attributes and a `Boolean` that
554
+ should be false only if the object already exists @return [ParseResource]
555
+ an object that subclasses `Parseresource`
544
556
  </p>
545
557
 
546
558
 
@@ -548,19 +560,19 @@ instantiation! p = Post.new(:title => &#8220;cool story&#8221;)
548
560
  <div class="method-source-code"
549
561
  id="new-source">
550
562
  <pre>
551
- <span class="ruby-comment cmt"># File lib/parse_resource.rb, line 15</span>
552
- 15: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">attributes</span> = {})
553
- 16: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">new?</span>
554
- 17: <span class="ruby-ivar">@unsaved_attributes</span> = <span class="ruby-identifier">attributes</span>.<span class="ruby-identifier">symbolize_keys!</span>
555
- 18: <span class="ruby-keyword kw">else</span>
556
- 19: <span class="ruby-ivar">@unsaved_attributes</span> = <span class="ruby-constant">HashWithIndifferentAccess</span>.<span class="ruby-identifier">new</span>
557
- 20: <span class="ruby-keyword kw">end</span>
558
- 21: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">attributes</span> = {}
559
- 22: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">attributes</span>.<span class="ruby-identifier">merge!</span>(<span class="ruby-identifier">attributes</span>)
560
- 23: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">attributes</span>.<span class="ruby-identifier">symbolize_keys!</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">attributes</span>.<span class="ruby-identifier">empty?</span>
561
- 24: <span class="ruby-comment cmt">#@field_message = &quot;set in #initialize&quot;</span>
562
- 25: <span class="ruby-identifier">create_setters!</span>
563
- 26: <span class="ruby-keyword kw">end</span></pre>
563
+ <span class="ruby-comment cmt"># File lib/parse_resource.rb, line 31</span>
564
+ 31: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">attributes</span> = {}, <span class="ruby-identifier">new</span>=<span class="ruby-keyword kw">true</span>)
565
+ 32: <span class="ruby-identifier">attributes</span> = <span class="ruby-constant">HashWithIndifferentAccess</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">attributes</span>)
566
+ 33: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">new</span>
567
+ 34: <span class="ruby-ivar">@unsaved_attributes</span> = <span class="ruby-identifier">attributes</span>
568
+ 35: <span class="ruby-keyword kw">else</span>
569
+ 36: <span class="ruby-ivar">@unsaved_attributes</span> = {}
570
+ 37: <span class="ruby-keyword kw">end</span>
571
+ 38: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">attributes</span> = {}
572
+ 39: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">attributes</span>.<span class="ruby-identifier">merge!</span>(<span class="ruby-identifier">attributes</span>)
573
+ 40: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">attributes</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">attributes</span>.<span class="ruby-identifier">empty?</span>
574
+ 41: <span class="ruby-identifier">create_setters!</span>
575
+ 42: <span class="ruby-keyword kw">end</span></pre>
564
576
  </div>
565
577
 
566
578
  </div>
@@ -585,7 +597,7 @@ instantiation! p = Post.new(:title => &#8220;cool story&#8221;)
585
597
  <div class="method-description">
586
598
 
587
599
  <p>
588
- creates a RESTful resource sends requests to [base_uri]/[classname]
600
+ Creates a RESTful resource sends requests to [base_uri]/[classname]
589
601
  </p>
590
602
 
591
603
 
@@ -593,18 +605,18 @@ creates a RESTful resource sends requests to [base_uri]/[classname]
593
605
  <div class="method-source-code"
594
606
  id="resource-source">
595
607
  <pre>
596
- <span class="ruby-comment cmt"># File lib/parse_resource.rb, line 70</span>
597
- 70: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">resource</span>
598
- 71: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@settings</span>.<span class="ruby-identifier">nil?</span>
599
- 72: <span class="ruby-identifier">path</span> = <span class="ruby-value str">&quot;config/parse_resource.yml&quot;</span>
600
- 73: <span class="ruby-identifier">environment</span> = <span class="ruby-keyword kw">defined?</span>(<span class="ruby-constant">Rails</span>) <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-constant">Rails</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value">:env</span>) <span class="ruby-operator">?</span> <span class="ruby-constant">Rails</span>.<span class="ruby-identifier">env</span> <span class="ruby-operator">:</span> <span class="ruby-constant">ENV</span>[<span class="ruby-value str">&quot;RACK_ENV&quot;</span>]
601
- 74: <span class="ruby-ivar">@settings</span> = <span class="ruby-constant">YAML</span>.<span class="ruby-identifier">load</span>(<span class="ruby-constant">ERB</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">path</span>).<span class="ruby-identifier">read</span>).<span class="ruby-identifier">result</span>)[<span class="ruby-identifier">environment</span>]
602
- 75: <span class="ruby-keyword kw">end</span>
603
- 76: <span class="ruby-identifier">base_uri</span> = <span class="ruby-node">&quot;https://api.parse.com/1/classes/#{model_name}&quot;</span>
604
- 77: <span class="ruby-identifier">app_id</span> = <span class="ruby-ivar">@settings</span>[<span class="ruby-value str">'app_id'</span>]
605
- 78: <span class="ruby-identifier">master_key</span> = <span class="ruby-ivar">@settings</span>[<span class="ruby-value str">'master_key'</span>]
606
- 79: <span class="ruby-constant">RestClient</span><span class="ruby-operator">::</span><span class="ruby-constant">Resource</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">base_uri</span>, <span class="ruby-identifier">app_id</span>, <span class="ruby-identifier">master_key</span>)
607
- 80: <span class="ruby-keyword kw">end</span></pre>
608
+ <span class="ruby-comment cmt"># File lib/parse_resource.rb, line 104</span>
609
+ 104: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">resource</span>
610
+ 105: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">@@settings</span>.<span class="ruby-identifier">nil?</span>
611
+ 106: <span class="ruby-identifier">path</span> = <span class="ruby-value str">&quot;config/parse_resource.yml&quot;</span>
612
+ 107: <span class="ruby-identifier">environment</span> = <span class="ruby-keyword kw">defined?</span>(<span class="ruby-constant">Rails</span>) <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-constant">Rails</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value">:env</span>) <span class="ruby-operator">?</span> <span class="ruby-constant">Rails</span>.<span class="ruby-identifier">env</span> <span class="ruby-operator">:</span> <span class="ruby-constant">ENV</span>[<span class="ruby-value str">&quot;RACK_ENV&quot;</span>]
613
+ 108: <span class="ruby-identifier">@@settings</span> = <span class="ruby-constant">YAML</span>.<span class="ruby-identifier">load</span>(<span class="ruby-constant">ERB</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">path</span>).<span class="ruby-identifier">read</span>).<span class="ruby-identifier">result</span>)[<span class="ruby-identifier">environment</span>]
614
+ 109: <span class="ruby-keyword kw">end</span>
615
+ 110: <span class="ruby-identifier">base_uri</span> = <span class="ruby-node">&quot;https://api.parse.com/1/classes/#{model_name}&quot;</span>
616
+ 111: <span class="ruby-identifier">app_id</span> = <span class="ruby-identifier">@@settings</span>[<span class="ruby-value str">'app_id'</span>]
617
+ 112: <span class="ruby-identifier">master_key</span> = <span class="ruby-identifier">@@settings</span>[<span class="ruby-value str">'master_key'</span>]
618
+ 113: <span class="ruby-constant">RestClient</span><span class="ruby-operator">::</span><span class="ruby-constant">Resource</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">base_uri</span>, <span class="ruby-identifier">app_id</span>, <span class="ruby-identifier">master_key</span>)
619
+ 114: <span class="ruby-keyword kw">end</span></pre>
608
620
  </div>
609
621
 
610
622
  </div>
@@ -629,8 +641,12 @@ creates a RESTful resource sends requests to [base_uri]/[classname]
629
641
  <div class="method-description">
630
642
 
631
643
  <p>
632
- Post.where(:author => &#8220;Alan&#8221;, :title => &#8220;Ipso
633
- Lorem&#8221;)
644
+ Find a <a href="ParseResource.html">ParseResource</a> object by a `Hash` of
645
+ conditions.
646
+ </p>
647
+ <p>
648
+ @param [Hash] parameters a `Hash` of conditions. @return [Array] an `Array`
649
+ of objects that subclass `ParseResource`.
634
650
  </p>
635
651
 
636
652
 
@@ -638,12 +654,12 @@ Lorem&#8221;)
638
654
  <div class="method-source-code"
639
655
  id="where-source">
640
656
  <pre>
641
- <span class="ruby-comment cmt"># File lib/parse_resource.rb, line 89</span>
642
- 89: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">where</span>(<span class="ruby-identifier">parameters</span>)
643
- 90: <span class="ruby-identifier">resp</span> = <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value">:params</span> =<span class="ruby-operator">&gt;</span> {<span class="ruby-value">:where</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">parameters</span>.<span class="ruby-identifier">to_json</span>})
644
- 91: <span class="ruby-identifier">results</span> = <span class="ruby-constant">JSON</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">resp</span>)[<span class="ruby-value str">'results'</span>]
645
- 92: <span class="ruby-identifier">results</span>.<span class="ruby-identifier">map</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">r</span><span class="ruby-operator">|</span> <span class="ruby-identifier">model_name</span>.<span class="ruby-identifier">constantize</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">r</span>.<span class="ruby-identifier">symbolize_keys!</span>)}
646
- 93: <span class="ruby-keyword kw">end</span></pre>
657
+ <span class="ruby-comment cmt"># File lib/parse_resource.rb, line 128</span>
658
+ 128: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">where</span>(<span class="ruby-identifier">parameters</span>)
659
+ 129: <span class="ruby-identifier">resp</span> = <span class="ruby-identifier">resource</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value">:params</span> =<span class="ruby-operator">&gt;</span> {<span class="ruby-value">:where</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">parameters</span>.<span class="ruby-identifier">to_json</span>})
660
+ 130: <span class="ruby-identifier">results</span> = <span class="ruby-constant">JSON</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">resp</span>)[<span class="ruby-value str">'results'</span>]
661
+ 131: <span class="ruby-identifier">results</span>.<span class="ruby-identifier">map</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">r</span><span class="ruby-operator">|</span> <span class="ruby-identifier">model_name</span>.<span class="ruby-identifier">constantize</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">r</span>, <span class="ruby-keyword kw">false</span>)}
662
+ 132: <span class="ruby-keyword kw">end</span></pre>
647
663
  </div>
648
664
 
649
665
  </div>
@@ -682,11 +698,11 @@ provides access to @attributes for getting and setting
682
698
  <div class="method-source-code"
683
699
  id="attributes-source">
684
700
  <pre>
685
- <span class="ruby-comment cmt"># File lib/parse_resource.rb, line 186</span>
686
- 186: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">attributes</span>
687
- 187: <span class="ruby-ivar">@attributes</span> <span class="ruby-operator">||=</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">class_attributes</span>
688
- 188: <span class="ruby-ivar">@attributes</span>.<span class="ruby-identifier">symbolize_keys!</span>
689
- 189: <span class="ruby-keyword kw">end</span></pre>
701
+ <span class="ruby-comment cmt"># File lib/parse_resource.rb, line 240</span>
702
+ 240: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">attributes</span>
703
+ 241: <span class="ruby-ivar">@attributes</span> <span class="ruby-operator">||=</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">class_attributes</span>
704
+ 242: <span class="ruby-ivar">@attributes</span>
705
+ 243: <span class="ruby-keyword kw">end</span></pre>
690
706
  </div>
691
707
 
692
708
  </div>
@@ -717,11 +733,11 @@ provides access to @attributes for getting and setting
717
733
  <div class="method-source-code"
718
734
  id="attributes--source">
719
735
  <pre>
720
- <span class="ruby-comment cmt"># File lib/parse_resource.rb, line 191</span>
721
- 191: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">attributes=</span>(<span class="ruby-identifier">n</span>)
722
- 192: <span class="ruby-ivar">@attributes</span> = <span class="ruby-identifier">n</span>
723
- 193: <span class="ruby-ivar">@attributes</span>.<span class="ruby-identifier">symbolize_keys!</span>
724
- 194: <span class="ruby-keyword kw">end</span></pre>
736
+ <span class="ruby-comment cmt"># File lib/parse_resource.rb, line 245</span>
737
+ 245: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">attributes=</span>(<span class="ruby-identifier">n</span>)
738
+ 246: <span class="ruby-ivar">@attributes</span> = <span class="ruby-identifier">n</span>
739
+ 247: <span class="ruby-ivar">@attributes</span>
740
+ 248: <span class="ruby-keyword kw">end</span></pre>
725
741
  </div>
726
742
 
727
743
  </div>
@@ -752,15 +768,16 @@ provides access to @attributes for getting and setting
752
768
  <div class="method-source-code"
753
769
  id="create-source">
754
770
  <pre>
755
- <span class="ruby-comment cmt"># File lib/parse_resource.rb, line 137</span>
756
- 137: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">create</span>
757
- 138: <span class="ruby-identifier">resp</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">resource</span>.<span class="ruby-identifier">post</span>(<span class="ruby-ivar">@unsaved_attributes</span>.<span class="ruby-identifier">to_json</span>, <span class="ruby-value">:content_type</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;application/json&quot;</span>)
758
- 139: <span class="ruby-ivar">@attributes</span>.<span class="ruby-identifier">merge!</span>(<span class="ruby-constant">JSON</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">resp</span>).<span class="ruby-identifier">symbolize_keys!</span>)
759
- 140: <span class="ruby-ivar">@attributes</span>.<span class="ruby-identifier">merge!</span>(<span class="ruby-ivar">@unsaved_attributes</span>)
760
- 141: <span class="ruby-ivar">@unsaved_attributes</span> = <span class="ruby-constant">HashWithIndifferentAccess</span>.<span class="ruby-identifier">new</span>
761
- 142: <span class="ruby-identifier">create_setters!</span>
762
- 143: <span class="ruby-keyword kw">self</span>
763
- 144: <span class="ruby-keyword kw">end</span></pre>
771
+ <span class="ruby-comment cmt"># File lib/parse_resource.rb, line 187</span>
772
+ 187: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">create</span>
773
+ 188: <span class="ruby-identifier">resp</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">resource</span>.<span class="ruby-identifier">post</span>(<span class="ruby-ivar">@unsaved_attributes</span>.<span class="ruby-identifier">to_json</span>, <span class="ruby-value">:content_type</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;application/json&quot;</span>)
774
+ 189: <span class="ruby-ivar">@attributes</span>.<span class="ruby-identifier">merge!</span>(<span class="ruby-constant">JSON</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">resp</span>))
775
+ 190: <span class="ruby-ivar">@attributes</span>.<span class="ruby-identifier">merge!</span>(<span class="ruby-ivar">@unsaved_attributes</span>)
776
+ 191: <span class="ruby-identifier">attributes</span> = <span class="ruby-constant">HashWithIndifferentAccess</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">attributes</span>)
777
+ 192: <span class="ruby-ivar">@unsaved_attributes</span> = {}
778
+ 193: <span class="ruby-identifier">create_setters!</span>
779
+ 194: <span class="ruby-keyword kw">self</span>
780
+ 195: <span class="ruby-keyword kw">end</span></pre>
764
781
  </div>
765
782
 
766
783
  </div>
@@ -785,8 +802,7 @@ provides access to @attributes for getting and setting
785
802
  <div class="method-description">
786
803
 
787
804
  <p>
788
- a sprinkle of metaprogramming p = Post.new(:some_attr => &#8220;some
789
- value&#8221;) p.some_attr = &#8220;new value&#8220;
805
+ Creates getter and setter methods for model fields
790
806
  </p>
791
807
 
792
808
 
@@ -794,16 +810,26 @@ value&#8221;) p.some_attr = &#8220;new value&#8220;
794
810
  <div class="method-source-code"
795
811
  id="create-setters--source">
796
812
  <pre>
797
- <span class="ruby-comment cmt"># File lib/parse_resource.rb, line 52</span>
798
- 52: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">create_setters!</span>
799
- 53: <span class="ruby-ivar">@attributes</span>.<span class="ruby-identifier">each_pair</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
800
- 54: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">send</span>(<span class="ruby-value">:define_method</span>, <span class="ruby-node">&quot;#{k}=&quot;</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">val</span><span class="ruby-operator">|</span>
801
- 55: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">k</span>.<span class="ruby-identifier">to_sym</span>] = <span class="ruby-identifier">val</span>
802
- 56: <span class="ruby-ivar">@unsaved_attributes</span>[<span class="ruby-identifier">k</span>.<span class="ruby-identifier">to_sym</span>] = <span class="ruby-identifier">val</span>
803
- 57: <span class="ruby-identifier">val</span>
804
- 58: <span class="ruby-keyword kw">end</span>
805
- 59: <span class="ruby-keyword kw">end</span>
806
- 60: <span class="ruby-keyword kw">end</span></pre>
813
+ <span class="ruby-comment cmt"># File lib/parse_resource.rb, line 70</span>
814
+ 70: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">create_setters!</span>
815
+ 71: <span class="ruby-ivar">@attributes</span>.<span class="ruby-identifier">each_pair</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
816
+ 72: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">send</span>(<span class="ruby-value">:define_method</span>, <span class="ruby-node">&quot;#{k}=&quot;</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">val</span><span class="ruby-operator">|</span>
817
+ 73: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">k</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Symbol</span>)
818
+ 74: <span class="ruby-identifier">k</span> = <span class="ruby-identifier">k</span>.<span class="ruby-identifier">to_s</span>
819
+ 75: <span class="ruby-keyword kw">end</span>
820
+ 76: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">k</span>.<span class="ruby-identifier">to_s</span>] = <span class="ruby-identifier">val</span>
821
+ 77: <span class="ruby-ivar">@unsaved_attributes</span>[<span class="ruby-identifier">k</span>.<span class="ruby-identifier">to_s</span>] = <span class="ruby-identifier">val</span>
822
+ 78: <span class="ruby-identifier">val</span>
823
+ 79: <span class="ruby-keyword kw">end</span>
824
+ 80: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">send</span>(<span class="ruby-value">:define_method</span>, <span class="ruby-node">&quot;#{k}&quot;</span>) <span class="ruby-keyword kw">do</span>
825
+ 81: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">k</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Symbol</span>)
826
+ 82: <span class="ruby-identifier">k</span> = <span class="ruby-identifier">k</span>.<span class="ruby-identifier">to_s</span>
827
+ 83: <span class="ruby-keyword kw">end</span>
828
+ 84:
829
+ 85: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">k</span>.<span class="ruby-identifier">to_s</span>]
830
+ 86: <span class="ruby-keyword kw">end</span>
831
+ 87: <span class="ruby-keyword kw">end</span>
832
+ 88: <span class="ruby-keyword kw">end</span></pre>
807
833
  </div>
808
834
 
809
835
  </div>
@@ -834,8 +860,8 @@ value&#8221;) p.some_attr = &#8220;new value&#8220;
834
860
  <div class="method-source-code"
835
861
  id="created-at-source">
836
862
  <pre>
837
- <span class="ruby-comment cmt"># File lib/parse_resource.rb, line 199</span>
838
- 199: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">created_at</span>; <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">createdAt</span>; <span class="ruby-keyword kw">end</span></pre>
863
+ <span class="ruby-comment cmt"># File lib/parse_resource.rb, line 253</span>
864
+ 253: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">created_at</span>; <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">createdAt</span>; <span class="ruby-keyword kw">end</span></pre>
839
865
  </div>
840
866
 
841
867
  </div>
@@ -866,13 +892,13 @@ value&#8221;) p.some_attr = &#8220;new value&#8220;
866
892
  <div class="method-source-code"
867
893
  id="destroy-source">
868
894
  <pre>
869
- <span class="ruby-comment cmt"># File lib/parse_resource.rb, line 178</span>
870
- 178: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">destroy</span>
871
- 179: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">instance_resource</span>.<span class="ruby-identifier">delete</span>
872
- 180: <span class="ruby-ivar">@attributes</span> = {}
873
- 181: <span class="ruby-ivar">@unsaved_attributes</span> = {}
874
- 182: <span class="ruby-keyword kw">nil</span>
875
- 183: <span class="ruby-keyword kw">end</span></pre>
895
+ <span class="ruby-comment cmt"># File lib/parse_resource.rb, line 232</span>
896
+ 232: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">destroy</span>
897
+ 233: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">instance_resource</span>.<span class="ruby-identifier">delete</span>
898
+ 234: <span class="ruby-ivar">@attributes</span> = {}
899
+ 235: <span class="ruby-ivar">@unsaved_attributes</span> = {}
900
+ 236: <span class="ruby-keyword kw">nil</span>
901
+ 237: <span class="ruby-keyword kw">end</span></pre>
876
902
  </div>
877
903
 
878
904
  </div>
@@ -905,8 +931,8 @@ aliasing for idiomatic Ruby
905
931
  <div class="method-source-code"
906
932
  id="id-source">
907
933
  <pre>
908
- <span class="ruby-comment cmt"># File lib/parse_resource.rb, line 197</span>
909
- 197: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">id</span>; <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">objectId</span> <span class="ruby-keyword kw">rescue</span> <span class="ruby-keyword kw">nil</span>; <span class="ruby-keyword kw">end</span></pre>
934
+ <span class="ruby-comment cmt"># File lib/parse_resource.rb, line 251</span>
935
+ 251: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">id</span>; <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">objectId</span> <span class="ruby-keyword kw">rescue</span> <span class="ruby-keyword kw">nil</span>; <span class="ruby-keyword kw">end</span></pre>
910
936
  </div>
911
937
 
912
938
  </div>
@@ -940,51 +966,10 @@ create RESTful resource for the specific Parse object sends requests to
940
966
  <div class="method-source-code"
941
967
  id="instance-resource-source">
942
968
  <pre>
943
- <span class="ruby-comment cmt"># File lib/parse_resource.rb, line 133</span>
944
- 133: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">instance_resource</span>
945
- 134: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">resource</span>[<span class="ruby-node">&quot;#{self.id}&quot;</span>]
946
- 135: <span class="ruby-keyword kw">end</span></pre>
947
- </div>
948
-
949
- </div>
950
-
951
-
952
-
953
-
954
- </div>
955
-
956
-
957
- <div id="method-missing-method" class="method-detail ">
958
- <a name="method-i-method_missing"></a>
959
-
960
- <div class="method-heading">
961
-
962
- <span class="method-name">method_missing</span><span
963
- class="method-args">(meth, *args, &block)</span>
964
- <span class="method-click-advice">click to toggle source</span>
965
-
966
- </div>
967
-
968
- <div class="method-description">
969
-
970
- <p>
971
- another sprinkle of metaprogramming p = Post.new(:some_attr => &#8220;some
972
- value&#8221;) p.some_attr #=> &#8220;some value&#8220;
973
- </p>
974
-
975
-
976
-
977
- <div class="method-source-code"
978
- id="method-missing-source">
979
- <pre>
980
- <span class="ruby-comment cmt"># File lib/parse_resource.rb, line 206</span>
981
- 206: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">method_missing</span>(<span class="ruby-identifier">meth</span>, *<span class="ruby-identifier">args</span>, &amp;<span class="ruby-identifier">block</span>)
982
- 207: <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">attributes</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">meth</span>.<span class="ruby-identifier">to_sym</span>)
983
- 208: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-identifier">meth</span>.<span class="ruby-identifier">to_sym</span>]
984
- 209: <span class="ruby-keyword kw">else</span>
985
- 210: <span class="ruby-keyword kw">super</span>
986
- 211: <span class="ruby-keyword kw">end</span>
987
- 212: <span class="ruby-keyword kw">end</span></pre>
969
+ <span class="ruby-comment cmt"># File lib/parse_resource.rb, line 183</span>
970
+ 183: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">instance_resource</span>
971
+ 184: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">resource</span>[<span class="ruby-node">&quot;#{self.id}&quot;</span>]
972
+ 185: <span class="ruby-keyword kw">end</span></pre>
988
973
  </div>
989
974
 
990
975
  </div>
@@ -1015,10 +1000,10 @@ value&#8221;) p.some_attr #=> &#8220;some value&#8220;
1015
1000
  <div class="method-source-code"
1016
1001
  id="new--source">
1017
1002
  <pre>
1018
- <span class="ruby-comment cmt"># File lib/parse_resource.rb, line 122</span>
1019
- 122: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">new?</span>
1020
- 123: <span class="ruby-operator">!</span><span class="ruby-identifier">persisted?</span>
1021
- 124: <span class="ruby-keyword kw">end</span></pre>
1003
+ <span class="ruby-comment cmt"># File lib/parse_resource.rb, line 172</span>
1004
+ 172: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">new?</span>
1005
+ 173: <span class="ruby-operator">!</span><span class="ruby-identifier">persisted?</span>
1006
+ 174: <span class="ruby-keyword kw">end</span></pre>
1022
1007
  </div>
1023
1008
 
1024
1009
  </div>
@@ -1049,10 +1034,14 @@ value&#8221;) p.some_attr #=> &#8220;some value&#8220;
1049
1034
  <div class="method-source-code"
1050
1035
  id="persisted--source">
1051
1036
  <pre>
1052
- <span class="ruby-comment cmt"># File lib/parse_resource.rb, line 118</span>
1053
- 118: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">persisted?</span>
1054
- 119: <span class="ruby-operator">!</span><span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">id</span>.<span class="ruby-identifier">nil?</span>
1055
- 120: <span class="ruby-keyword kw">end</span></pre>
1037
+ <span class="ruby-comment cmt"># File lib/parse_resource.rb, line 164</span>
1038
+ 164: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">persisted?</span>
1039
+ 165: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">id</span>
1040
+ 166: <span class="ruby-keyword kw">true</span>
1041
+ 167: <span class="ruby-keyword kw">else</span>
1042
+ 168: <span class="ruby-keyword kw">false</span>
1043
+ 169: <span class="ruby-keyword kw">end</span>
1044
+ 170: <span class="ruby-keyword kw">end</span></pre>
1056
1045
  </div>
1057
1046
 
1058
1047
  </div>
@@ -1085,10 +1074,10 @@ delegate from Class method
1085
1074
  <div class="method-source-code"
1086
1075
  id="resource-source">
1087
1076
  <pre>
1088
- <span class="ruby-comment cmt"># File lib/parse_resource.rb, line 127</span>
1089
- 127: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">resource</span>
1090
- 128: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">resource</span>
1091
- 129: <span class="ruby-keyword kw">end</span></pre>
1077
+ <span class="ruby-comment cmt"># File lib/parse_resource.rb, line 177</span>
1078
+ 177: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">resource</span>
1079
+ 178: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">resource</span>
1080
+ 179: <span class="ruby-keyword kw">end</span></pre>
1092
1081
  </div>
1093
1082
 
1094
1083
  </div>
@@ -1119,15 +1108,17 @@ delegate from Class method
1119
1108
  <div class="method-source-code"
1120
1109
  id="save-source">
1121
1110
  <pre>
1122
- <span class="ruby-comment cmt"># File lib/parse_resource.rb, line 146</span>
1123
- 146: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">save</span>
1124
- 147: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">valid?</span>
1125
- 148: <span class="ruby-identifier">new?</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">create</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">update</span>
1126
- 149: <span class="ruby-keyword kw">else</span>
1127
- 150: <span class="ruby-keyword kw">false</span>
1128
- 151: <span class="ruby-keyword kw">end</span>
1129
- 152: <span class="ruby-keyword kw">rescue</span> <span class="ruby-keyword kw">false</span>
1130
- 153: <span class="ruby-keyword kw">end</span></pre>
1111
+ <span class="ruby-comment cmt"># File lib/parse_resource.rb, line 197</span>
1112
+ 197: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">save</span>
1113
+ 198: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">valid?</span>
1114
+ 199: <span class="ruby-identifier">run_callbacks</span> <span class="ruby-value">:save</span> <span class="ruby-keyword kw">do</span>
1115
+ 200: <span class="ruby-identifier">new?</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">create</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">update</span>
1116
+ 201: <span class="ruby-keyword kw">end</span>
1117
+ 202: <span class="ruby-keyword kw">else</span>
1118
+ 203: <span class="ruby-keyword kw">false</span>
1119
+ 204: <span class="ruby-keyword kw">end</span>
1120
+ 205: <span class="ruby-keyword kw">rescue</span> <span class="ruby-keyword kw">false</span>
1121
+ 206: <span class="ruby-keyword kw">end</span></pre>
1131
1122
  </div>
1132
1123
 
1133
1124
  </div>
@@ -1144,7 +1135,7 @@ delegate from Class method
1144
1135
  <div class="method-heading">
1145
1136
 
1146
1137
  <span class="method-name">update</span><span
1147
- class="method-args">(attributes = HashWithIndifferentAccess.new)</span>
1138
+ class="method-args">(attributes = {})</span>
1148
1139
  <span class="method-click-advice">click to toggle source</span>
1149
1140
 
1150
1141
  </div>
@@ -1158,25 +1149,26 @@ delegate from Class method
1158
1149
  <div class="method-source-code"
1159
1150
  id="update-source">
1160
1151
  <pre>
1161
- <span class="ruby-comment cmt"># File lib/parse_resource.rb, line 155</span>
1162
- 155: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">update</span>(<span class="ruby-identifier">attributes</span> = <span class="ruby-constant">HashWithIndifferentAccess</span>.<span class="ruby-identifier">new</span>)
1163
- 156: <span class="ruby-ivar">@unsaved_attributes</span>.<span class="ruby-identifier">merge!</span>(<span class="ruby-identifier">attributes</span>)
1164
- 157:
1165
- 158: <span class="ruby-identifier">put_attrs</span> = <span class="ruby-ivar">@unsaved_attributes</span>
1166
- 159: <span class="ruby-identifier">put_attrs</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-value str">'objectId'</span>)
1167
- 160: <span class="ruby-identifier">put_attrs</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-value str">'createdAt'</span>)
1168
- 161: <span class="ruby-identifier">put_attrs</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-value str">'updatedAt'</span>)
1169
- 162: <span class="ruby-identifier">put_attrs</span> = <span class="ruby-identifier">put_attrs</span>.<span class="ruby-identifier">to_json</span>
1170
- 163:
1171
- 164: <span class="ruby-identifier">resp</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">instance_resource</span>.<span class="ruby-identifier">put</span>(<span class="ruby-identifier">put_attrs</span>, <span class="ruby-value">:content_type</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;application/json&quot;</span>)
1172
- 165:
1173
- 166: <span class="ruby-ivar">@attributes</span>.<span class="ruby-identifier">merge!</span>(<span class="ruby-constant">JSON</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">resp</span>).<span class="ruby-identifier">symbolize_keys!</span>)
1174
- 167: <span class="ruby-ivar">@attributes</span>.<span class="ruby-identifier">merge!</span>(<span class="ruby-ivar">@unsaved_attributes</span>)
1175
- 168: <span class="ruby-ivar">@unsaved_attributes</span> = <span class="ruby-constant">HashWithIndifferentAccess</span>.<span class="ruby-identifier">new</span>
1176
- 169: <span class="ruby-identifier">create_setters!</span>
1177
- 170:
1178
- 171: <span class="ruby-keyword kw">self</span>
1179
- 172: <span class="ruby-keyword kw">end</span></pre>
1152
+ <span class="ruby-comment cmt"># File lib/parse_resource.rb, line 208</span>
1153
+ 208: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">update</span>(<span class="ruby-identifier">attributes</span> = {})
1154
+ 209: <span class="ruby-identifier">attributes</span> = <span class="ruby-constant">HashWithIndifferentAccess</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">attributes</span>)
1155
+ 210: <span class="ruby-ivar">@unsaved_attributes</span>.<span class="ruby-identifier">merge!</span>(<span class="ruby-identifier">attributes</span>)
1156
+ 211:
1157
+ 212: <span class="ruby-identifier">put_attrs</span> = <span class="ruby-ivar">@unsaved_attributes</span>
1158
+ 213: <span class="ruby-identifier">put_attrs</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-value str">'objectId'</span>)
1159
+ 214: <span class="ruby-identifier">put_attrs</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-value str">'createdAt'</span>)
1160
+ 215: <span class="ruby-identifier">put_attrs</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-value str">'updatedAt'</span>)
1161
+ 216: <span class="ruby-identifier">put_attrs</span> = <span class="ruby-identifier">put_attrs</span>.<span class="ruby-identifier">to_json</span>
1162
+ 217:
1163
+ 218: <span class="ruby-identifier">resp</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">instance_resource</span>.<span class="ruby-identifier">put</span>(<span class="ruby-identifier">put_attrs</span>, <span class="ruby-value">:content_type</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;application/json&quot;</span>)
1164
+ 219:
1165
+ 220: <span class="ruby-ivar">@attributes</span>.<span class="ruby-identifier">merge!</span>(<span class="ruby-constant">JSON</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">resp</span>))
1166
+ 221: <span class="ruby-ivar">@attributes</span>.<span class="ruby-identifier">merge!</span>(<span class="ruby-ivar">@unsaved_attributes</span>)
1167
+ 222: <span class="ruby-ivar">@unsaved_attributes</span> = {}
1168
+ 223: <span class="ruby-identifier">create_setters!</span>
1169
+ 224:
1170
+ 225: <span class="ruby-keyword kw">self</span>
1171
+ 226: <span class="ruby-keyword kw">end</span></pre>
1180
1172
  </div>
1181
1173
 
1182
1174
  </div>
@@ -1193,7 +1185,7 @@ delegate from Class method
1193
1185
  <div class="method-heading">
1194
1186
 
1195
1187
  <span class="method-name">update_attributes</span><span
1196
- class="method-args">(attributes = HashWithIndifferentAccess.new)</span>
1188
+ class="method-args">(attributes = {})</span>
1197
1189
  <span class="method-click-advice">click to toggle source</span>
1198
1190
 
1199
1191
  </div>
@@ -1207,10 +1199,10 @@ delegate from Class method
1207
1199
  <div class="method-source-code"
1208
1200
  id="update-attributes-source">
1209
1201
  <pre>
1210
- <span class="ruby-comment cmt"># File lib/parse_resource.rb, line 174</span>
1211
- 174: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">update_attributes</span>(<span class="ruby-identifier">attributes</span> = <span class="ruby-constant">HashWithIndifferentAccess</span>.<span class="ruby-identifier">new</span>)
1212
- 175: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">update</span>(<span class="ruby-identifier">attributes</span>)
1213
- 176: <span class="ruby-keyword kw">end</span></pre>
1202
+ <span class="ruby-comment cmt"># File lib/parse_resource.rb, line 228</span>
1203
+ 228: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">update_attributes</span>(<span class="ruby-identifier">attributes</span> = {})
1204
+ 229: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">update</span>(<span class="ruby-identifier">attributes</span>)
1205
+ 230: <span class="ruby-keyword kw">end</span></pre>
1214
1206
  </div>
1215
1207
 
1216
1208
  </div>
@@ -1241,8 +1233,8 @@ delegate from Class method
1241
1233
  <div class="method-source-code"
1242
1234
  id="updated-at-source">
1243
1235
  <pre>
1244
- <span class="ruby-comment cmt"># File lib/parse_resource.rb, line 201</span>
1245
- 201: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">updated_at</span>; <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">updatedAt</span> <span class="ruby-keyword kw">rescue</span> <span class="ruby-keyword kw">nil</span>; <span class="ruby-keyword kw">end</span></pre>
1236
+ <span class="ruby-comment cmt"># File lib/parse_resource.rb, line 255</span>
1237
+ 255: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">updated_at</span>; <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">updatedAt</span> <span class="ruby-keyword kw">rescue</span> <span class="ruby-keyword kw">nil</span>; <span class="ruby-keyword kw">end</span></pre>
1246
1238
  </div>
1247
1239
 
1248
1240
  </div>