infomeme_client 0.2.6 → 0.2.8

Sign up to get free protection for your applications and to get access to all the features.
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.