infomeme_client 0.2.6 → 0.2.8

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/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.6
1
+ 0.2.8
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{infomeme_client}
8
- s.version = "0.2.6"
8
+ s.version = "0.2.8"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Infomeme Ltd."]
12
- s.date = %q{2011-03-29}
12
+ s.date = %q{2011-04-26}
13
13
  s.description = %q{A RubyGem for implementing both Infomeme client and meme applications.
14
14
  More coming soon...}
15
15
  s.email = %q{infomeme@infomeme.com}
@@ -76,7 +76,7 @@ Gem::Specification.new do |s|
76
76
  ]
77
77
  s.homepage = %q{https://api.infomeme.com}
78
78
  s.require_paths = ["lib"]
79
- s.rubygems_version = %q{1.6.2}
79
+ s.rubygems_version = %q{1.5.3}
80
80
  s.summary = %q{A RubyGem for implementing both Infomeme client and meme applications.}
81
81
  s.test_files = [
82
82
  "test/helper.rb",
@@ -1,75 +1,77 @@
1
1
  module InfomemeClient::Communication
2
- def get(path, headers = {})
3
- request(:get, path, headers)
2
+ def get(path, headers = {})
3
+ request(:get, path, headers)
4
+ end
5
+
6
+ def post(path, body = "", headers = {})
7
+ request(:post, path, body, headers)
8
+ end
9
+
10
+ def put(path, body = "", headers = {})
11
+ request(:put, path, body, headers)
12
+ end
13
+
14
+ def request(method, path, *args)
15
+ token_request(token, method, path, *args)
16
+ end
17
+
18
+ def handle_response(method, path, *args, &block)
19
+ response = request(method, path, *args)
20
+ response.raise_error
21
+ if block_given?
22
+ if block.arity == 1
23
+ yield response
24
+ else
25
+ yield unless response.error?
26
+ end
27
+ else
28
+ response
4
29
  end
5
-
6
- def post(path, body = "", headers = {})
7
- request(:post, path, body, headers)
30
+ end
31
+
32
+ def extract_from_response(extract, method, path, *args)
33
+ handle_response(method, path, *args) do |resp|
34
+ resp.extract(extract) unless resp.error?
8
35
  end
9
-
10
- def put(path, body = "", headers = {})
11
- request(:put, path, body, headers)
36
+ end
37
+
38
+ def extract_or_response(extract, method, path, options, headers = {})
39
+ no_extract = options[:no_extract] || false
40
+ options.delete(:no_extract)
41
+ if [:put, :post].include?(method.to_sym)
42
+ args = [method, path, options, headers]
43
+ else
44
+ args = [method, finalize_get_url(path, options), headers]
12
45
  end
13
-
14
- def request(method, path, *args)
15
- token_request(token, method, path, *args)
46
+ if no_extract
47
+ handle_response(*args)
48
+ else
49
+ extract_from_response(*args.unshift(extract))
16
50
  end
17
-
18
- def handle_response(method, path, *args, &block)
19
- response = request(method, path, *args)
20
- response.raise_error
21
- if block_given?
22
- if block.arity == 1
23
- yield response
24
- else
25
- yield unless response.error?
26
- end
27
- else
28
- response
29
- end
51
+ end
52
+
53
+ private
54
+ def token_request(token, method, path, *args)
55
+ body = [:post, :put].include?(method.to_sym) ? (args.shift || {}) : {}
56
+ headers = args.shift || {}
57
+ headers.store("Accept", "application/json") #override to use json
58
+ if [:post, :put].include?(method.to_sym) && (! headers.key?("Content-Type") || headers["Content-Type"] == "application/json")
59
+ body = body.to_json unless body.is_a?(String)
60
+ headers.store("Content-Type", "application/json")
30
61
  end
31
-
32
- def extract_from_response(extract, method, path, *args)
33
- handle_response(method, path, *args) do |resp|
34
- resp.extract(extract) unless resp.error?
35
- end
62
+ args.unshift headers
63
+ args.unshift body if [:post, :put].include?(method.to_sym)
64
+ begin
65
+ resp = token.request(method, path, *args).body
66
+ InfomemeClient::Response.new JSON.parse(resp)
67
+ rescue => e
68
+ InfomemeClient::Response.new e
36
69
  end
37
-
38
- def extract_or_response(extract, method, path, options, headers = {})
39
- no_extract = options[:no_extract] || false
40
- options.delete(:no_extract)
41
- if [:put, :post].include?(method.to_sym)
42
- args = [method, path, options, headers]
43
- else
44
- args = [method, finalize_get_url(path, options), headers]
45
- end
46
- if no_extract
47
- handle_response *args
48
- else
49
- extract_from_response *args.unshift(extract)
50
- end
51
- end
52
-
53
- private
54
- def token_request(token, method, path, *args)
55
- body = [:post, :put].include?(method.to_sym) ? (args.shift || {}) : {}
56
- headers = args.shift || {}
57
- headers.store("Accept", "application/json") #override to use json
58
- if [:post, :put].include?(method.to_sym) && (! headers.key?("Content-Type") || headers["Content-Type"] == "application/json")
59
- body = body.to_json unless body.is_a?(String)
60
- headers.store("Content-Type", "application/json")
61
- end
62
- args.unshift headers
63
- args.unshift body if [:post, :put].include?(method.to_sym)
64
- begin
65
- resp = token.request(method, path, *args).body
66
- InfomemeClient::Response.new JSON.parse(resp)
67
- rescue => e
68
- InfomemeClient::Response.new e
69
- end
70
- end
71
-
72
- def finalize_get_url(url, params)
73
- url + (url.include?("?") ? "&" : "?") + params.collect {|key, val| "#{key.to_s}=#{CGI.escape(val.to_s)}"}.join("&")
74
- end
70
+ end
71
+
72
+ def finalize_get_url(url, params)
73
+ url ||= ""
74
+ url + (url.include?("?") ? "&" : "?") + params.collect {|key, val| "#{key.to_s}=#{CGI.escape(val.to_s)}"}.join("&")
75
+ end
76
+
75
77
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: infomeme_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.6
4
+ version: 0.2.8
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,12 +9,12 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-03-29 00:00:00.000000000 +02:00
12
+ date: 2011-04-26 00:00:00.000000000 +02:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: oauth
17
- requirement: &6581460 !ruby/object:Gem::Requirement
17
+ requirement: &22466900 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: '0'
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *6581460
25
+ version_requirements: *22466900
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: json
28
- requirement: &6580860 !ruby/object:Gem::Requirement
28
+ requirement: &22466400 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ! '>='
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
- version_requirements: *6580860
36
+ version_requirements: *22466400
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: multipart-post
39
- requirement: &6580140 !ruby/object:Gem::Requirement
39
+ requirement: &22465900 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ! '>='
@@ -44,10 +44,10 @@ dependencies:
44
44
  version: '0'
45
45
  type: :runtime
46
46
  prerelease: false
47
- version_requirements: *6580140
47
+ version_requirements: *22465900
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: mime-types
50
- requirement: &6579320 !ruby/object:Gem::Requirement
50
+ requirement: &22465400 !ruby/object:Gem::Requirement
51
51
  none: false
52
52
  requirements:
53
53
  - - ! '>='
@@ -55,7 +55,7 @@ dependencies:
55
55
  version: '0'
56
56
  type: :runtime
57
57
  prerelease: false
58
- version_requirements: *6579320
58
+ version_requirements: *22465400
59
59
  description: ! "A RubyGem for implementing both Infomeme client and meme applications.\n
60
60
  More coming soon..."
61
61
  email: infomeme@infomeme.com
@@ -141,7 +141,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
141
141
  version: '0'
142
142
  requirements: []
143
143
  rubyforge_project:
144
- rubygems_version: 1.6.2
144
+ rubygems_version: 1.5.3
145
145
  signing_key:
146
146
  specification_version: 3
147
147
  summary: A RubyGem for implementing both Infomeme client and meme applications.