oodle 1.0.1 → 1.1.0
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/README.markdown +30 -4
- data/lib/oodle.rb +5 -16
- data/test/oodle_tests.rb +3 -0
- metadata +43 -14
- data/Changelog +0 -1
- data/INSTALL +0 -0
data/README.markdown
CHANGED
@@ -1,9 +1,35 @@
|
|
1
|
-
# Oodle Ruby API
|
1
|
+
# Oodle Ruby API
|
2
2
|
---
|
3
3
|
|
4
|
-
##
|
4
|
+
## Description
|
5
5
|
|
6
|
-
|
6
|
+
Oodle is an online classifieds service. By using this client for the [Oodle
|
7
|
+
API](http://developer.oodle.com/), you can add classified listings to your own site. You can filter
|
8
|
+
listings by category, region, and keywords. You will need to request an [API
|
9
|
+
key](http://developer.oodle.com/request-api-key) to get started.
|
7
10
|
|
8
|
-
|
11
|
+
## Installation
|
9
12
|
|
13
|
+
gem install oodle
|
14
|
+
|
15
|
+
## Example
|
16
|
+
|
17
|
+
require 'rubygems'
|
18
|
+
require 'oodle'
|
19
|
+
|
20
|
+
API_KEY = '??????' # Request your API key at http://developer.oodle.com/request-api-key
|
21
|
+
|
22
|
+
oodle = Oodle::API.new(API_KEY, :v2)
|
23
|
+
oodle.region = 'chicago'
|
24
|
+
oodle.category = 'personals'
|
25
|
+
oodle.fetch_listings(:json)['listings'][0]['body']
|
26
|
+
oodle.fetch_listings['listings'][1]['body']
|
27
|
+
|
28
|
+
## Dependencies
|
29
|
+
|
30
|
+
* xml-simple gem
|
31
|
+
* json gem
|
32
|
+
|
33
|
+
## License
|
34
|
+
|
35
|
+
This software is licensed using the MIT License (see LICENSE for details).
|
data/lib/oodle.rb
CHANGED
@@ -5,6 +5,7 @@
|
|
5
5
|
require 'net/http'
|
6
6
|
require 'xmlsimple'
|
7
7
|
require 'cgi'
|
8
|
+
require 'json'
|
8
9
|
|
9
10
|
# Oodle Module
|
10
11
|
module Oodle
|
@@ -40,8 +41,6 @@ module Oodle
|
|
40
41
|
# Oodle Class
|
41
42
|
#
|
42
43
|
class API
|
43
|
-
logger.debug "Oodle::API is loaded." if logger
|
44
|
-
|
45
44
|
attr_accessor :key, :region, :q, :category, :attributes, :location, :radius, :start, :num, :sort, :refinements, :ctime_low, :ctime_high, :exclude_sources, :assisted_search, :format, :jsoncallback, :fetched, :version
|
46
45
|
|
47
46
|
def initialize(key,version)
|
@@ -57,17 +56,8 @@ module Oodle
|
|
57
56
|
# A convience method to do actual http pulls
|
58
57
|
# Notice that there is not any exception trapping
|
59
58
|
def http_pull(dest_url)
|
60
|
-
|
61
|
-
|
62
|
-
logger.debug "URL: #{url} -- PATH: #{url.path} -- URI: #{url.path}?#{url.query}" if logger
|
63
|
-
|
64
|
-
res = Net::HTTP.get_response( url )
|
65
|
-
if res.code == '200'
|
66
|
-
self.fetched = res.body
|
67
|
-
return self.fetched
|
68
|
-
else
|
69
|
-
nil
|
70
|
-
end
|
59
|
+
res = Net::HTTP.get_response(URI.parse(dest_url))
|
60
|
+
self.fetched = res.body
|
71
61
|
end
|
72
62
|
|
73
63
|
# Requires version be set
|
@@ -91,8 +81,7 @@ module Oodle
|
|
91
81
|
url = "#{url}&ctime_high=#{CGI::escape(self.ctime_high)}" if self.ctime_high
|
92
82
|
url = "#{url}&exclude_sources=#{CGI::escape(self.exclude_sources_as_string)}" if self.exclude_sources.size > 0
|
93
83
|
url = "#{url}&assisted_search=#{CGI::escape(self.assisted_search)}" if self.assisted_search
|
94
|
-
url = "#{url}&format=#{CGI::escape(self.format)}" if self.format
|
95
|
-
logger.debug "#{__FILE__}:#{__LINE__} [#{__method__}] -- URL CONSTRUCTED: #{url}" if logger
|
84
|
+
url = "#{url}&format=#{CGI::escape(self.format)}&jsoncallback=none" if self.format
|
96
85
|
url
|
97
86
|
end
|
98
87
|
|
@@ -139,7 +128,7 @@ module Oodle
|
|
139
128
|
# parse xml raw
|
140
129
|
result = XmlSimple.xml_in raw, { 'ForceArray' => false, 'AttrPrefix' => true }
|
141
130
|
when 'json'
|
142
|
-
|
131
|
+
result = JSON.parse(raw)
|
143
132
|
when 'php_serial'
|
144
133
|
# return raw
|
145
134
|
when 'php_export'
|
data/test/oodle_tests.rb
ADDED
metadata
CHANGED
@@ -1,19 +1,48 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: oodle
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 1
|
7
|
+
- 1
|
8
|
+
- 0
|
9
|
+
version: 1.1.0
|
5
10
|
platform: ruby
|
6
11
|
authors:
|
7
12
|
- Kristan 'Krispy' Uccello
|
13
|
+
- Albert Vernon
|
8
14
|
autorequire:
|
9
15
|
bindir: bin
|
10
16
|
cert_chain: []
|
11
17
|
|
12
|
-
date:
|
18
|
+
date: 2010-03-18 00:00:00 -04:00
|
13
19
|
default_executable:
|
14
|
-
dependencies:
|
15
|
-
|
16
|
-
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
name: xml-simple
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
requirements:
|
26
|
+
- - ">="
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
segments:
|
29
|
+
- 0
|
30
|
+
version: "0"
|
31
|
+
type: :runtime
|
32
|
+
version_requirements: *id001
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: json
|
35
|
+
prerelease: false
|
36
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
segments:
|
41
|
+
- 0
|
42
|
+
version: "0"
|
43
|
+
type: :runtime
|
44
|
+
version_requirements: *id002
|
45
|
+
description: Provides a Ruby wrapper around the Oodle API
|
17
46
|
email: kaptiankrispy@soldierofcode.com
|
18
47
|
executables: []
|
19
48
|
|
@@ -23,12 +52,10 @@ extra_rdoc_files: []
|
|
23
52
|
|
24
53
|
files:
|
25
54
|
- README.markdown
|
26
|
-
- Changelog
|
27
55
|
- LICENSE
|
28
56
|
- lib/oodle.rb
|
29
|
-
- INSTALL
|
30
57
|
has_rdoc: true
|
31
|
-
homepage: http://
|
58
|
+
homepage: http://github.com/kuccello/Oodle-API-Ruby
|
32
59
|
licenses: []
|
33
60
|
|
34
61
|
post_install_message:
|
@@ -40,20 +67,22 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
40
67
|
requirements:
|
41
68
|
- - ">="
|
42
69
|
- !ruby/object:Gem::Version
|
70
|
+
segments:
|
71
|
+
- 0
|
43
72
|
version: "0"
|
44
|
-
version:
|
45
73
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
46
74
|
requirements:
|
47
75
|
- - ">="
|
48
76
|
- !ruby/object:Gem::Version
|
77
|
+
segments:
|
78
|
+
- 0
|
49
79
|
version: "0"
|
50
|
-
version:
|
51
80
|
requirements: []
|
52
81
|
|
53
82
|
rubyforge_project:
|
54
|
-
rubygems_version: 1.3.
|
83
|
+
rubygems_version: 1.3.6
|
55
84
|
signing_key:
|
56
85
|
specification_version: 3
|
57
|
-
summary: Provides a
|
58
|
-
test_files:
|
59
|
-
|
86
|
+
summary: Provides a Ruby wrapper around the Oodle API
|
87
|
+
test_files:
|
88
|
+
- test/oodle_tests.rb
|
data/Changelog
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
- Nov. 6 - 2009 - fixed the issue with the url being generated wrong
|
data/INSTALL
DELETED
File without changes
|