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 CHANGED
@@ -19,3 +19,4 @@ gem "rest-client"
19
19
  gem "activesupport"
20
20
  gem "activemodel"
21
21
 
22
+
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!("path/to/parse_resource.yml")
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.2
1
+ 1.5.4
@@ -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.symbolize_keys!
25
+ @unsaved_attributes = attributes
22
26
  else
23
- @unsaved_attributes = HashWithIndifferentAccess.new
27
+ @unsaved_attributes = {}
24
28
  end
25
29
  self.attributes = {}
26
30
  self.attributes.merge!(attributes)
27
- self.attributes.symbolize_keys! unless self.attributes.empty?
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!(path="config/parse_resource.yml")
68
- environment = defined?(Rails) && Rails.respond_to?(:env) ? Rails.env : ENV["RACK_ENV"]
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 @settings.nil?
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
- @settings = YAML.load(ERB.new(File.new(path).read).result)[environment]
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 = @settings['app_id']
82
- master_key = @settings['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.symbolize_keys!)}
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.symbolize_keys!)}
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).symbolize_keys!)
146
+ @attributes.merge!(JSON.parse(resp))
144
147
  @attributes.merge!(@unsaved_attributes)
145
- @unsaved_attributes = HashWithIndifferentAccess.new
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 = HashWithIndifferentAccess.new)
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).symbolize_keys!)
173
+ @attributes.merge!(JSON.parse(resp))
171
174
  @attributes.merge!(@unsaved_attributes)
172
- @unsaved_attributes = HashWithIndifferentAccess.new
175
+ @unsaved_attributes = {}
173
176
  create_setters!
174
177
 
175
178
  self
176
179
  end
177
180
 
178
- def update_attributes(attributes = HashWithIndifferentAccess.new)
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.symbolize_keys!
195
+ @attributes
193
196
  end
194
197
 
195
198
  def attributes=(n)
196
199
  @attributes = n
197
- @attributes.symbolize_keys!
200
+ @attributes
198
201
  end
199
202
 
200
203
  # aliasing for idiomatic Ruby
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "parse_resource"
8
- s.version = "1.5.2"
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-20"
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.2
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-20 00:00:00.000000000Z
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: &73363310 !ruby/object:Gem::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: *73363310
24
+ version_requirements: *75448160
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: activesupport
27
- requirement: &73363010 !ruby/object:Gem::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: *73363010
35
+ version_requirements: *75447400
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: activemodel
38
- requirement: &73362680 !ruby/object:Gem::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: *73362680
46
+ version_requirements: *75446670
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: bundler
49
- requirement: &73362410 !ruby/object:Gem::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: *73362410
57
+ version_requirements: *75446160
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: jeweler
60
- requirement: &73362150 !ruby/object:Gem::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: *73362150
68
+ version_requirements: *75445730
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rcov
71
- requirement: &73361880 !ruby/object:Gem::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: *73361880
79
+ version_requirements: *75445230
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: reek
82
- requirement: &73361580 !ruby/object:Gem::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: *73361580
90
+ version_requirements: *75444770
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: rest-client
93
- requirement: &73361240 !ruby/object:Gem::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: *73361240
101
+ version_requirements: *75444360
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: activesupport
104
- requirement: &73360910 !ruby/object:Gem::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: *73360910
112
+ version_requirements: *75443860
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: activemodel
115
- requirement: &73360620 !ruby/object:Gem::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: *73360620
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: 105836015
164
+ hash: 982262131
165
165
  required_rubygems_version: !ruby/object:Gem::Requirement
166
166
  none: false
167
167
  requirements: