placemaker 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -20,7 +20,7 @@ The following is an example of using the Placemaker gem to read places in a stan
20
20
  already done so.
21
21
 
22
22
  require 'placemaker'
23
- p = Placemaker::Client.new(:appid => YOUR_APP_ID, :document_url => 'http://feeds.feedburner.com/wooster', :document_type => 'text/xml')
23
+ p = Placemaker::Client.new(:appid => YOUR_APP_ID, :document_url => 'http://feeds.nytimes.com/nyt/rss/HomePage', :document_type => 'text/xml')
24
24
  p.fetch!
25
25
 
26
26
  This will make a call to the Placemaker service and populate the Placemaker::Client object with data about the places in the content that you
@@ -73,4 +73,6 @@ The request to the Yahoo place coding service returns information about the requ
73
73
 
74
74
  = Author
75
75
 
76
- Justin S. Leitgeb, justin@phq.org
76
+ Justin S. Leitgeb, justin@stackbuilders.com
77
+
78
+ Copyright (c) 2011 {Stack Builders Inc.}[http://stackbuilders.com]
@@ -4,8 +4,8 @@ module Placemaker
4
4
 
5
5
  # Main interface to the Placemaker API.
6
6
  class Client
7
- POST_FIELDS = %w[ appid document_content document_url document_type document_title
8
- auto_disambiguate focus_woe_id input_language output_type ].map{|f| f.to_sym}
7
+ POST_FIELDS = %w[ appid document_content document_url document_type document_title
8
+ auto_disambiguate focus_woe_id input_language output_type ].map(&:to_sym)
9
9
 
10
10
  def initialize(options = {})
11
11
  @options = options
@@ -3,11 +3,11 @@ module Placemaker
3
3
  include Placemaker::XmlHelper
4
4
 
5
5
  def lat
6
- @nodeset.search('.//xmlns:latitude', 'xmlns' => 'http://wherein.yahooapis.com/v1/schema').inner_text.to_f
6
+ nested_node('latitude').to_f
7
7
  end
8
8
 
9
9
  def lng
10
- @nodeset.search('.//xmlns:longitude', 'xmlns' => 'http://wherein.yahooapis.com/v1/schema').inner_text.to_f
10
+ nested_node('longitude').to_f
11
11
  end
12
12
  end
13
13
  end
@@ -11,31 +11,31 @@ module Placemaker
11
11
 
12
12
  # Returns a Placemaker::Location object that is a container for one named place mentioned in the document
13
13
  def place_details
14
- @nodeset.search('.//xmlns:placeDetails', 'xmlns' => 'http://wherein.yahooapis.com/v1/schema').map do |p|
14
+ @nodeset.search('.//xmlns:placeDetails').map do |p|
15
15
  Placemaker::PlaceDetails.new(p)
16
16
  end
17
17
  end
18
18
 
19
19
  # Returns a Placemaker::Location object that is a container for the smallest administrative place that best describes the document
20
20
  def administrative_scope
21
- as = @nodeset.search('.//xmlns:administrativeScope', 'xmlns' => 'http://wherein.yahooapis.com/v1/schema').first
21
+ as = @nodeset.search('.//xmlns:administrativeScope').first
22
22
  Placemaker::Location.new(as) unless as.nil?
23
23
  end
24
24
 
25
25
  # Returns a Placemaker::Location object that is a container for the smallest place that best describes the document
26
26
  def geographic_scope
27
- gs = @nodeset.search('.//xmlns:geographicScope', 'xmlns' => 'http://wherein.yahooapis.com/v1/schema').first
27
+ gs = @nodeset.search('.//xmlns:geographicScope').first
28
28
  Placemaker::Location.new(gs) unless gs.nil?
29
29
  end
30
30
 
31
31
  # Returns a Placemaker::Extents object that is a container for the the map extents covering the places mentioned in the document
32
32
  def extents
33
- extents = @nodeset.search('.//xmlns:extents', 'xmlns' => 'http://wherein.yahooapis.com/v1/schema').first
33
+ extents = @nodeset.search('.//xmlns:extents').first
34
34
  Placemaker::Extents.new(extents) unless extents.nil?
35
35
  end
36
36
 
37
37
  def reference_list
38
- @nodeset.search('.//xmlns:referenceList[1]/xmlns:reference', 'xmlns' => 'http://wherein.yahooapis.com/v1/schema').map do |reference|
38
+ @nodeset.search('.//xmlns:referenceList[1]/xmlns:reference').map do |reference|
39
39
  Placemaker::Reference.new(reference)
40
40
  end
41
41
  end
@@ -8,17 +8,17 @@ module Placemaker
8
8
 
9
9
  # coordinates of center (WGS84)
10
10
  def center
11
- Placemaker::Coordinates.new(@nodeset.search('.//xmlns:center', 'xmlns' => 'http://wherein.yahooapis.com/v1/schema'))
11
+ Placemaker::Coordinates.new(@nodeset.search('.//xmlns:center'))
12
12
  end
13
13
 
14
14
  # coordinates of southwest corner of bounding box (WGS84)
15
15
  def south_west
16
- Placemaker::Coordinates.new(@nodeset.search('.//xmlns:southWest', 'xmlns' => 'http://wherein.yahooapis.com/v1/schema'))
16
+ Placemaker::Coordinates.new(@nodeset.search('.//xmlns:southWest'))
17
17
  end
18
18
 
19
19
  # coordinates of northeast corner of bounding box (WGS84)
20
20
  def north_east
21
- Placemaker::Coordinates.new(@nodeset.search('.//xmlns:northEast', 'xmlns' => 'http://wherein.yahooapis.com/v1/schema'))
21
+ Placemaker::Coordinates.new(@nodeset.search('.//xmlns:northEast'))
22
22
  end
23
23
  end
24
24
 
@@ -23,13 +23,13 @@ module Placemaker
23
23
 
24
24
  # centroid for the place
25
25
  def centroid
26
- Placemaker::Coordinates.new(@nodeset.search('.//xmlns:centroid', 'xmlns' => 'http://wherein.yahooapis.com/v1/schema'))
26
+ Placemaker::Coordinates.new(@nodeset.search('.//xmlns:centroid'))
27
27
  end
28
28
 
29
29
  private
30
30
 
31
31
  def nested_node(name)
32
- @nodeset.search(".//xmlns:#{name}", 'xmlns' => 'http://wherein.yahooapis.com/v1/schema').inner_text
32
+ @nodeset.search(".//xmlns:#{name}").inner_text
33
33
  end
34
34
  end
35
35
  end
@@ -6,7 +6,7 @@ module Placemaker
6
6
 
7
7
  # Returns a Placemaker::Location object as a container for place information.
8
8
  def place
9
- Placemaker::Location.new(@nodeset.search('.//xmlns:place', 'xmlns' => 'http://wherein.yahooapis.com/v1/schema'))
9
+ Placemaker::Location.new(@nodeset.search('.//xmlns:place'))
10
10
  end
11
11
 
12
12
  # type of match (0=text or text and coordinates, 1=coordinates only)
@@ -6,7 +6,7 @@ module Placemaker
6
6
 
7
7
  # Returns the inner text of a node with the given name under the current @nodeset
8
8
  def nested_node(name)
9
- @nodeset.search(".//xmlns:#{name}", 'xmlns' => 'http://wherein.yahooapis.com/v1/schema').inner_text
9
+ @nodeset.search(".//xmlns:#{name}").inner_text
10
10
  end
11
11
 
12
12
  private :nested_node
@@ -3,23 +3,22 @@ require 'placemaker/document'
3
3
  module Placemaker
4
4
  class XmlParser
5
5
  def initialize(xml_body)
6
- @body = xml_body
7
6
  @xml = Nokogiri::XML(xml_body)
8
7
  end
9
8
 
10
9
  # time in seconds to process the document
11
10
  def processing_time
12
- @xml.xpath('.//xmlns:processingTime', 'xmlns' => 'http://wherein.yahooapis.com/v1/schema').inner_text.to_f
11
+ @xml.xpath('.//xmlns:processingTime').inner_text.to_f
13
12
  end
14
13
 
15
14
  # version of the software used to process the document
16
15
  def version
17
- @xml.xpath('.//xmlns:version', 'xmlns' => 'http://wherein.yahooapis.com/v1/schema').inner_text.strip
16
+ @xml.xpath('.//xmlns:version').inner_text.strip
18
17
  end
19
18
 
20
19
  # length in bytes of the document
21
20
  def document_length
22
- @xml.xpath('.//xmlns:documentLength', 'xmlns' => 'http://wherein.yahooapis.com/v1/schema').inner_text.to_i
21
+ @xml.xpath('.//xmlns:documentLength').inner_text.to_i
23
22
  end
24
23
 
25
24
  # Returns a set of Placemaker::Document objects as containers for content location information
@@ -2,10 +2,9 @@ require 'spec_helper'
2
2
 
3
3
  describe Placemaker::Coordinates do
4
4
  before do
5
- @xml_str = File.read(File.join(File.dirname(__FILE__), %w[.. fixtures xml_rss_feed_result.xml]))
6
- @xmlp = Placemaker::XmlParser.new(@xml_str)
7
- @doc = @xmlp.documents[5]
8
- @coords = @doc.place_details.first.place.centroid
5
+ xmlp = Placemaker::XmlParser.new(File.read(File.join(File.dirname(__FILE__), %w[.. fixtures xml_rss_feed_result.xml])))
6
+ doc = xmlp.documents[5]
7
+ @coords = doc.place_details.first.place.centroid
9
8
  end
10
9
 
11
10
  it "should be a Placemaker::Coordinates object" do
@@ -2,9 +2,8 @@ require 'spec_helper'
2
2
 
3
3
  describe Placemaker::Document do
4
4
  before do
5
- @xml_str = File.read(File.join(File.dirname(__FILE__), %w[.. fixtures xml_rss_feed_result.xml]))
6
- @xmlp = Placemaker::XmlParser.new(@xml_str)
7
- @doc = @xmlp.documents[5]
5
+ xmlp = Placemaker::XmlParser.new(File.read(File.join(File.dirname(__FILE__), %w[.. fixtures xml_rss_feed_result.xml])))
6
+ @doc = xmlp.documents[5]
8
7
  end
9
8
 
10
9
  describe "#places" do
@@ -2,10 +2,9 @@ require 'spec_helper'
2
2
 
3
3
  describe Placemaker::Extents do
4
4
  before do
5
- @xml_str = File.read(File.join(File.dirname(__FILE__), %w[.. fixtures xml_rss_feed_result.xml]))
6
- @xmlp = Placemaker::XmlParser.new(@xml_str)
7
- @doc = @xmlp.documents[5]
8
- @extents = @doc.extents
5
+ xmlp = Placemaker::XmlParser.new(File.read(File.join(File.dirname(__FILE__), %w[.. fixtures xml_rss_feed_result.xml])))
6
+ doc = xmlp.documents[5]
7
+ @extents = doc.extents
9
8
  end
10
9
 
11
10
  it "should be a Placemaker::Extents object" do
@@ -2,10 +2,9 @@ require 'spec_helper'
2
2
 
3
3
  describe Placemaker::Location do
4
4
  before do
5
- @xml_str = File.read(File.join(File.dirname(__FILE__), %w[.. fixtures xml_rss_feed_result.xml]))
6
- @xmlp = Placemaker::XmlParser.new(@xml_str)
7
- @doc = @xmlp.documents[5]
8
- @loc = @doc.place_details.first.place
5
+ xmlp = Placemaker::XmlParser.new(File.read(File.join(File.dirname(__FILE__), %w[.. fixtures xml_rss_feed_result.xml])))
6
+ doc = xmlp.documents[5]
7
+ @loc = doc.place_details.first.place
9
8
  end
10
9
 
11
10
  describe "#woe_id" do
@@ -2,10 +2,9 @@ require 'spec_helper'
2
2
 
3
3
  describe Placemaker::PlaceDetails do
4
4
  before do
5
- @xml_str = File.read(File.join(File.dirname(__FILE__), %w[.. fixtures xml_rss_feed_result.xml]))
6
- @xmlp = Placemaker::XmlParser.new(@xml_str)
7
- @doc = @xmlp.documents[5]
8
- @pd = @doc.place_details.first
5
+ xmlp = Placemaker::XmlParser.new(File.read(File.join(File.dirname(__FILE__), %w[.. fixtures xml_rss_feed_result.xml])))
6
+ doc = xmlp.documents[5]
7
+ @pd = doc.place_details.first
9
8
  end
10
9
 
11
10
  describe "#match_type" do
@@ -2,8 +2,7 @@ require 'spec_helper'
2
2
 
3
3
  describe Placemaker::Reference do
4
4
  before do
5
- xml_str = File.read(File.join(File.dirname(__FILE__), %w[.. fixtures xml_rss_feed_result.xml]))
6
- xmlp = Placemaker::XmlParser.new(xml_str)
5
+ xmlp = Placemaker::XmlParser.new(File.read(File.join(File.dirname(__FILE__), %w[.. fixtures xml_rss_feed_result.xml])))
7
6
  doc = xmlp.documents[5]
8
7
  @reference = doc.reference_list.first
9
8
  end
@@ -2,8 +2,8 @@ require 'spec_helper'
2
2
 
3
3
  describe Placemaker::XmlParser do
4
4
  before do
5
- @xml_str = File.read(File.join(File.dirname(__FILE__), %w[.. fixtures xml_rss_feed_result.xml]))
6
- @xmlp = Placemaker::XmlParser.new(@xml_str)
5
+ xml_str = File.read(File.join(File.dirname(__FILE__), %w[.. fixtures xml_rss_feed_result.xml]))
6
+ @xmlp = Placemaker::XmlParser.new(xml_str)
7
7
  end
8
8
 
9
9
  describe "processing_time" do
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: placemaker
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 25
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 2
10
- version: 0.0.2
9
+ - 3
10
+ version: 0.0.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - Justin Leitgeb