ruby_yahoo_answers_api 0.0.3

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.
@@ -0,0 +1,6 @@
1
+ require "rake/testtask"
2
+
3
+ Rake::TestTask.new do |t|
4
+ t.libs << "lib"
5
+ t.test_files = Dir["test/**/*_test.rb"]
6
+ end
@@ -0,0 +1,7 @@
1
+ require 'rubygems'
2
+ require 'uri'
3
+ require 'xml_hate'
4
+ require 'net/http'
5
+
6
+ require 'ruby_yahoo_answers_api/client'
7
+
@@ -0,0 +1,73 @@
1
+
2
+ module RubyYahooAnswersApi
3
+ END_POINT = "http://answers.yahooapis.com/AnswersService/V1/"
4
+ FORMAT_RESPONSE = "xml"
5
+
6
+ class Client
7
+ attr_accessor :appid, :debug
8
+
9
+ def initialize(appid, debug = false)
10
+ self.appid = appid
11
+ self.debug = debug
12
+ end
13
+
14
+ def question_search(query, parameters = {})
15
+ parameters[:query] = query
16
+ params = set_params(parameters)
17
+
18
+ request("questionSearch?#{params}")
19
+ end
20
+
21
+ def get_by_category_name(name, parameters = {})
22
+ parameters[:category_name] = name
23
+ get_by_category(parameters)
24
+ end
25
+
26
+ def get_by_category_id(id, parameters = {})
27
+ parameters[:category_id] = id
28
+ get_by_category(parameters)
29
+ end
30
+
31
+ def get_by_category(parameters = {})
32
+ params = set_params(parameters)
33
+ request("getByCategory?#{params}")
34
+ end
35
+
36
+ def get_by_user(user_id, parameters = {})
37
+ parameters[:user_id] = user_id
38
+ params = set_params(parameters)
39
+
40
+ request("getByUser?#{params}")
41
+ end
42
+
43
+ def get_question(question_id)
44
+ parameters = {:question_id => question_id}
45
+ params = set_params(parameters)
46
+
47
+ request("getQuestion?#{params}")
48
+ end
49
+
50
+ private
51
+
52
+ def set_params(parameters = {})
53
+ params = []
54
+ parameters = set_default_params(parameters)
55
+ parameters.each{|key, value| params << "#{key.to_s}=#{value}"}
56
+ params.join("&")
57
+ end
58
+
59
+ def set_default_params(params = {})
60
+ params ||= {}
61
+ params[:appid] = self.appid
62
+ params[:output] = FORMAT_RESPONSE
63
+ params
64
+ end
65
+
66
+ def request(url)
67
+ uri = URI.parse(END_POINT+URI.escape(url))
68
+ puts uri if debug
69
+ data = Net::HTTP.get_response(uri)
70
+ XmlHate::Document.new(data.body)
71
+ end
72
+ end
73
+ end
@@ -0,0 +1,12 @@
1
+ Gem::Specification.new do |s|
2
+ s.name = "ruby_yahoo_answers_api"
3
+ s.homepage = "https://github.com/marlesson/ruby_yahoo_answers_api"
4
+ s.version = "0.0.3"
5
+ s.description = "GEM Integrate for Yahoo! Answers API"
6
+ s.summary = "GEM Integrate for Yahoo! Answers API"
7
+ s.author = "Marlesson R. O. de Santana"
8
+ s.email = "marlessonsa@gmail.com"
9
+ s.files = Dir["{lib/**/*.rb,README.rdoc,test/**/*.rb,Rakefile,*.gemspec}"]
10
+
11
+ s.add_dependency('xml_hate', '>= 0.8.3.3')
12
+ end
@@ -0,0 +1,7 @@
1
+ require "test/unit"
2
+ require "ruby_yahoo_answers_api"
3
+
4
+ class RubyYahooAnswersApiTest < Test::Unit::TestCase
5
+
6
+
7
+ end
metadata ADDED
@@ -0,0 +1,87 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ruby_yahoo_answers_api
3
+ version: !ruby/object:Gem::Version
4
+ hash: 25
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 3
10
+ version: 0.0.3
11
+ platform: ruby
12
+ authors:
13
+ - Marlesson R. O. de Santana
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2012-04-20 00:00:00 -03:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: xml_hate
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ hash: 5
30
+ segments:
31
+ - 0
32
+ - 8
33
+ - 3
34
+ - 3
35
+ version: 0.8.3.3
36
+ type: :runtime
37
+ version_requirements: *id001
38
+ description: GEM Integrate for Yahoo! Answers API
39
+ email: marlessonsa@gmail.com
40
+ executables: []
41
+
42
+ extensions: []
43
+
44
+ extra_rdoc_files: []
45
+
46
+ files:
47
+ - lib/ruby_yahoo_answers_api/client.rb
48
+ - lib/ruby_yahoo_answers_api.rb
49
+ - test/ruby_yahoo_answers_api_test.rb
50
+ - Rakefile
51
+ - ruby_yahoo_answers_api.gemspec
52
+ has_rdoc: true
53
+ homepage: https://github.com/marlesson/ruby_yahoo_answers_api
54
+ licenses: []
55
+
56
+ post_install_message:
57
+ rdoc_options: []
58
+
59
+ require_paths:
60
+ - lib
61
+ required_ruby_version: !ruby/object:Gem::Requirement
62
+ none: false
63
+ requirements:
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ hash: 3
67
+ segments:
68
+ - 0
69
+ version: "0"
70
+ required_rubygems_version: !ruby/object:Gem::Requirement
71
+ none: false
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ hash: 3
76
+ segments:
77
+ - 0
78
+ version: "0"
79
+ requirements: []
80
+
81
+ rubyforge_project:
82
+ rubygems_version: 1.3.7
83
+ signing_key:
84
+ specification_version: 3
85
+ summary: GEM Integrate for Yahoo! Answers API
86
+ test_files: []
87
+