soda-ruby 0.2.5 → 0.2.6

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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 03728c85703cdcf58f02132e9e296fc4600dcf55
4
+ data.tar.gz: 38e6f85d3d02a3189dd6176954233a450eea6dfc
5
+ SHA512:
6
+ metadata.gz: ffab275d914f469e2c6292a3c2ecba5f72aa6ac9fe525f3665e2d78bd3009ee769d11ac0f12279ea102d8a76a215f51ad2c1d57ea53b9fc566513c38595a64e9
7
+ data.tar.gz: d5cf160a323314a370e9da4fd9fd0243f6e346231dc017127569973d48d396ef06c5fd70ebb3a88edd7af8e2102f42cd09de0897efb9d2d9173552d408fdd9da
data/CHANGELOG.mkd CHANGED
@@ -2,3 +2,4 @@
2
2
  0.2.1 - Point release to update gemspec dependencies
3
3
  ...
4
4
  0.2.4 - Point release including tests that are now mocked properly
5
+ 0.2.6 - Code cleanup from @raykao
data/lib/soda/client.rb CHANGED
@@ -15,70 +15,19 @@ module SODA
15
15
  end
16
16
 
17
17
  def get(resource, params = {})
18
- query = query_string(params)
19
- path = resource_path(resource)
20
-
21
- # Create our request
22
- uri = URI.parse("https://#{@config[:domain]}#{path}?#{query}")
23
- http = Net::HTTP.new(uri.host, uri.port)
24
- http.use_ssl = true
25
-
26
- request = Net::HTTP::Get.new(uri.request_uri)
27
- request.add_field("X-App-Token", @config[:app_token])
28
-
29
- # Authenticate if we're supposed to
30
- if @config[:username]
31
- request.basic_auth @config[:username], @config[:password]
32
- end
33
-
34
- # BAM!
35
- return handle_response(http.request(request))
18
+ connection(:get, resource, nil, params)
36
19
  end
37
20
 
38
- def post(resource, body = "", params = {})
39
- query = query_string(params)
40
- path = resource_path(resource)
41
-
42
- # Create our request
43
- uri = URI.parse("https://#{@config[:domain]}#{path}?#{query}")
44
- http = Net::HTTP.new(uri.host, uri.port)
45
- http.use_ssl = true
46
-
47
- request = Net::HTTP::Post.new(uri.request_uri)
48
- request.add_field("X-App-Token", @config[:app_token])
49
- request.content_type = "application/json"
50
- request.body = body.to_json
51
-
52
- # Authenticate if we're supposed to
53
- if @config[:username]
54
- request.basic_auth @config[:username], @config[:password]
55
- end
56
-
57
- # BAM!
58
- return handle_response(http.request(request))
21
+ def post(resource, body = nil, params = {})
22
+ connection(:post, resource, body, params)
59
23
  end
60
24
 
61
- def put(resource, body = "", params = {})
62
- query = query_string(params)
63
- path = resource_path(resource)
64
-
65
- # Create our request
66
- uri = URI.parse("https://#{@config[:domain]}#{path}?#{query}")
67
- http = Net::HTTP.new(uri.host, uri.port)
68
- http.use_ssl = true
69
-
70
- request = Net::HTTP::Put.new(uri.request_uri)
71
- request.add_field("X-App-Token", @config[:app_token])
72
- request.content_type = "application/json"
73
- request.body = body.to_json
74
-
75
- # Authenticate if we're supposed to
76
- if @config[:username]
77
- request.basic_auth @config[:username], @config[:password]
78
- end
25
+ def put(resource, body = nil, params = {})
26
+ connection(:put, resource, body, params)
27
+ end
79
28
 
80
- # BAM!
81
- return handle_response(http.request(request))
29
+ def delete(resource, body = nil, params = {})
30
+ connection(:delete, resource, body, params)
82
31
  end
83
32
 
84
33
  def upload_file(path, filename, params = {}, field = 'file', remote_filename = filename)
@@ -144,41 +93,6 @@ module SODA
144
93
  return handle_response(http.request(request))
145
94
  end
146
95
 
147
- def delete(resource, body = "", params = {})
148
- query = query_string(params)
149
-
150
- # If we didn't get a full path, assume "/resource/"
151
- if !resource.start_with?("/")
152
- resource = "/resource/" + resource
153
- end
154
-
155
- # Create our request
156
- uri = URI.parse("https://#{@config[:domain]}#{resource}.json?#{query}")
157
- http = Net::HTTP.new(uri.host, uri.port)
158
- http.use_ssl = true
159
-
160
- request = Net::HTTP::Delete.new(uri.request_uri)
161
- request.add_field("X-App-Token", @config[:app_token])
162
- request.content_type = "application/json"
163
- request.body = body.to_json
164
-
165
- # Authenticate if we're supposed to
166
- if @config[:username]
167
- request.basic_auth @config[:username], @config[:password]
168
- end
169
-
170
- # BAM!
171
- response = http.request(request)
172
-
173
- # Check our response code
174
- if response.code != "200"
175
- raise "Error querying \"#{uri.to_s}\": #{response.body}"
176
- else
177
- # Return a bunch of mashes
178
- return response
179
- end
180
- end
181
-
182
96
  private
183
97
  def query_string(params)
184
98
  # Create query string of escaped key, value pairs
@@ -220,5 +134,45 @@ module SODA
220
134
  end
221
135
  end
222
136
  end
137
+
138
+ def connection(method = "Get", resource = nil, body = nil, params = {})
139
+ method = method.to_sym.capitalize
140
+
141
+ query = query_string(params)
142
+
143
+ path = resource_path(resource)
144
+
145
+ uri = URI.parse("https://#{@config[:domain]}#{path}?#{query}")
146
+
147
+ http = Net::HTTP.new(uri.host, uri.port)
148
+ http.use_ssl = true
149
+ request = eval("Net::HTTP::#{method.capitalize}").new(uri.request_uri)
150
+ request.add_field("X-App-Token", @config[:app_token])
151
+
152
+ if method === :Post || :Put || :Delete
153
+ request.content_type = "application/json"
154
+ request.body = body.to_json
155
+ end
156
+
157
+ # Authenticate if we're supposed to
158
+
159
+ if @config[:username]
160
+ request.basic_auth @config[:username], @config[:password]
161
+ end
162
+
163
+ if method === :Delete
164
+ response = http.request(request)
165
+ # Check our response code
166
+ if response.code != "200"
167
+ raise "Error querying \"#{uri.to_s}\": #{response.body}"
168
+ else
169
+ # Return a bunch of mashes
170
+ return response
171
+ end
172
+ else
173
+ return handle_response(http.request(request))
174
+ end
175
+ end
176
+
223
177
  end
224
178
  end
data/lib/soda/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module SODA
2
- VERSION = "0.2.5"
2
+ VERSION = "0.2.6"
3
3
  end
metadata CHANGED
@@ -1,30 +1,27 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: soda-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.5
5
- prerelease:
4
+ version: 0.2.6
6
5
  platform: ruby
7
6
  authors:
8
7
  - Chris Metcalf
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-12-17 00:00:00.000000000 Z
11
+ date: 2014-01-09 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: hashie
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - '>='
28
25
  - !ruby/object:Gem::Version
29
26
  version: '0'
30
27
  description: A simple wrapper for SODA 2.0
@@ -41,26 +38,25 @@ files:
41
38
  - README.mkd
42
39
  homepage: http://github.com/socrata/soda-ruby
43
40
  licenses: []
41
+ metadata: {}
44
42
  post_install_message:
45
43
  rdoc_options: []
46
44
  require_paths:
47
45
  - lib
48
46
  required_ruby_version: !ruby/object:Gem::Requirement
49
- none: false
50
47
  requirements:
51
- - - ! '>='
48
+ - - '>='
52
49
  - !ruby/object:Gem::Version
53
50
  version: '0'
54
51
  required_rubygems_version: !ruby/object:Gem::Requirement
55
- none: false
56
52
  requirements:
57
- - - ! '>='
53
+ - - '>='
58
54
  - !ruby/object:Gem::Version
59
55
  version: 1.3.6
60
56
  requirements: []
61
57
  rubyforge_project: soda-ruby
62
- rubygems_version: 1.8.25
58
+ rubygems_version: 2.0.3
63
59
  signing_key:
64
- specification_version: 3
60
+ specification_version: 4
65
61
  summary: Ruby for SODA 2.0
66
62
  test_files: []