sitethree 0.0.2 → 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.
data/CHANGELOG CHANGED
@@ -5,3 +5,8 @@
5
5
  ## v0.0.2
6
6
 
7
7
  * Added missing require [shawn]
8
+
9
+ ## v0.0.3
10
+
11
+ * change from httparty to nokogiri and net/http
12
+ * added the ability to use the testapi
@@ -1,5 +1,8 @@
1
1
  require "sitethree/version"
2
- require "httparty"
2
+ require 'net/http'
3
+ require 'uri'
4
+ require 'cgi'
5
+ require 'nokogiri'
3
6
 
4
7
  module Sitethree
5
8
  API_URL = 'http://xml.sitethree.com/'
@@ -16,17 +19,20 @@ module Sitethree
16
19
  end
17
20
 
18
21
  def get_ads(params = {})
19
- response = HTTParty.get(API_URL, :query => {:partner_id => self.class.publisher_id, :feed_id => self.class.feed_id, :source => params[:source], :user_agent => params[:user_agent], :user_ip => params[:user_ip], :keywords => params[:keywords]})
20
- if response['response']['valid_request'] == 'false'
21
- self.class.errors = response['response']['error']
22
- return []
23
- else
24
- ads = []
25
- response['response']['ads']['ad'].each do |ad|
26
- ads << {:title => ad['title'], :description => ad['description'], :display_url => ad['display_url'], :click_url => ad['click_url']}
22
+ ads = []
23
+ url = "#{API_URL}?partner_id=#{self.class.publisher_id}&feed_id=#{self.class.feed_id}&source=#{CGI::escape(params[:source])}&user_ip=#{params[:user_ip]}&user_agent=#{CGI::escape(params[:user_agent])}&keywords=#{CGI::escape(params[:keywords])}#{params[:testapi] ? "&test=testapi" : ""}"
24
+ uri = URI.parse(url)
25
+ response = Net::HTTP.get_response(uri)
26
+ doc = Nokogiri::XML.parse(response.body)
27
+ response = doc.xpath("/response").first
28
+ if response.attr("valid_request") == "true" && response.attr("num_results") != '0'
29
+ doc.xpath("//ad").each do |ad|
30
+ ads << {'title' => ad.attr("title"), 'description' => ad.attr("description"), 'display_url' => ad.attr("display_url"), 'click_url' => ad.text.strip}
27
31
  end
28
- return ads
32
+ else
33
+ Rails.logger.info url
29
34
  end
35
+ ads
30
36
  end
31
37
  end
32
38
  end
@@ -1,3 +1,3 @@
1
1
  module Sitethree
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -20,5 +20,5 @@ Gem::Specification.new do |s|
20
20
 
21
21
  # specify any dependencies here; for example:
22
22
  # s.add_development_dependency "rspec"
23
- s.add_runtime_dependency "httparty"
23
+ s.add_runtime_dependency "nokogiri"
24
24
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sitethree
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,8 +13,8 @@ date: 2012-02-16 00:00:00.000000000 +11:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
- name: httparty
17
- requirement: &2157266040 !ruby/object:Gem::Requirement
16
+ name: nokogiri
17
+ requirement: &2165943440 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,7 +22,7 @@ dependencies:
22
22
  version: '0'
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *2157266040
25
+ version_requirements: *2165943440
26
26
  description: Ruby interface for the Sitethree advertising platform including the requesting
27
27
  of ads
28
28
  email: