google-site-search 0.0.3 → 0.0.5

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/Gemfile CHANGED
@@ -7,4 +7,5 @@ group :test do
7
7
  gem "minitest"
8
8
  gem "guard-minitest"
9
9
  gem "rb-inotify"
10
+ gem "mocha"
10
11
  end
@@ -15,7 +15,6 @@ require "xml"
15
15
  # A module to help query and parse the google site search api.
16
16
  #
17
17
  module GoogleSiteSearch
18
-
19
18
 
20
19
  GOOGLE_SEARCH_URL = "http://www.google.com"
21
20
  DEFAULT_PARAMS = {
@@ -31,16 +30,22 @@ module GoogleSiteSearch
31
30
  end
32
31
 
33
32
  # See Search - This is a convienence method for creating and querying.
34
- def query url, result_class = Result
35
- Search.new(url, result_class).query
33
+ # This method can except a block which can access the resulting search object.
34
+ def query url, result_class = Result, &block
35
+ search_result = Search.new(url, result_class).query
36
+ yield(search_result) if block_given?
37
+ search_result
36
38
  end
37
39
 
38
- def query_multiple url, result_class = Result, times
39
- searchs = []
40
- while times > 0
41
- times -= 1
42
- url = paginate(searchs.last.try(:next_results_url)) unless searchs.empty?
43
- searchs << Search.new(url, result_class).query
40
+ # See Search - This allows you to retrieve up to (times) number of searchs if they
41
+ # are available (i.e. Stops if a search has no next_results_url).
42
+ # This method can except a block which can access the resulting search object.
43
+ def query_multiple times, url, result_class = Result, &block
44
+ searchs = [query(url, result_class, &block).query]
45
+ while (times=times-1) > 0
46
+ next_results_url = searchs.last.try(:next_results_url)
47
+ break if next_results_url.blank?
48
+ searchs << search_result = query(url, result_class, &block).query
44
49
  end
45
50
  searchs
46
51
  end
@@ -1,5 +1,7 @@
1
1
  module GoogleSiteSearch
2
2
 
3
+ class ParsingError < StandardError; end;
4
+
3
5
  # Search is responsible for parsing the returned xml from
4
6
  # google's API.
5
7
  #
@@ -56,18 +58,22 @@ module GoogleSiteSearch
56
58
  private
57
59
 
58
60
  def parse_xml
59
- doc = ::XML::Parser.string(@xml).parse
60
- doc.find("//GSP/RES/R").each do |result_node|
61
- @results << result_class.new(result_node)
62
- end
61
+ begin
62
+ doc = ::XML::Parser.string(@xml).parse
63
+ doc.find("//GSP/RES/R").each do |result_node|
64
+ @results << result_class.new(result_node)
65
+ end
63
66
 
64
- spelling_node = doc.find_first("Spelling/Suggestion")
65
- @spelling = spelling_node.try(:content)
66
- @spelling_q = spelling_node.try(:attributes).try(:[],:q)
67
- @estimated_results_total = doc.find_first("RES/M").try(:content)
68
- @next_results_url = doc.find_first("RES/NB/NU").try(:content)
69
- @previous_results_url = doc.find_first("RES/NB/PU").try(:content)
70
- @search_query = doc.find_first("Q").try(:content)
67
+ spelling_node = doc.find_first("Spelling/Suggestion")
68
+ @spelling = spelling_node.try(:content)
69
+ @spelling_q = spelling_node.try(:attributes).try(:[],:q)
70
+ @estimated_results_total = doc.find_first("RES/M").try(:content)
71
+ @next_results_url = doc.find_first("RES/NB/NU").try(:content)
72
+ @previous_results_url = doc.find_first("RES/NB/PU").try(:content)
73
+ @search_query = doc.find_first("Q").try(:content)
74
+ rescue Exception => e
75
+ raise ParsingError, "#{e.message} URL:[#{@url}] XML:[#{@xml}]"
76
+ end
71
77
  end
72
78
  end
73
79
  end
@@ -1,3 +1,3 @@
1
1
  module GoogleSiteSearch
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.5"
3
3
  end
@@ -0,0 +1,127 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <GSP VER="3.2">
3
+ <TM>0.075037</TM>
4
+ <Q>rails</Q>
5
+ <PARAM name="q" value="rails" original_value="rails" url_escaped_value="rails" js_escaped_value="rails"/>
6
+ <PARAM name="num" value="2" original_value="2" url_escaped_value="2" js_escaped_value="2"/>
7
+ <PARAM name="hl" value="en" original_value="en" url_escaped_value="en" js_escaped_value="en"/>
8
+ <PARAM name="client" value="google-csbe" original_value="google-csbe" url_escaped_value="google-csbe" js_escaped_value="google-csbe"/>
9
+ <PARAM name="boostcse" value="0" original_value="0" url_escaped_value="0" js_escaped_value="0"/>
10
+ <PARAM name="output" value="xml_no_dtd" original_value="xml_no_dtd" url_escaped_value="xml_no_dtd" js_escaped_value="xml_no_dtd"/>
11
+ <PARAM name="ie" value="UTF-8" original_value="UTF-8" url_escaped_value="UTF-8" js_escaped_value="UTF-8"/>
12
+ <PARAM name="oe" value="UTF-8" original_value="UTF-8" url_escaped_value="UTF-8" js_escaped_value="UTF-8"/>
13
+ <PARAM name="prmd" value="ivnslb" original_value="ivnslb" url_escaped_value="ivnslb" js_escaped_value="ivnslb"/>
14
+ <PARAM name="ei" value="PYSNUNWAKKea2AXH0YDYDA" original_value="PYSNUNWAKKea2AXH0YDYDA" url_escaped_value="PYSNUNWAKKea2AXH0YDYDA" js_escaped_value="PYSNUNWAKKea2AXH0YDYDA"/>
15
+ <PARAM name="start" value="2" original_value="2" url_escaped_value="2" js_escaped_value="2"/>
16
+ <PARAM name="sa" value="N" original_value="N" url_escaped_value="N" js_escaped_value="N"/>
17
+ <SEARCH_MODES>
18
+ <PROMOTED_MODES/>
19
+ <UNPROMOTED_MODES/>
20
+ <MORE_TEXT>More</MORE_TEXT>
21
+ <LESS_TEXT>Fewer</LESS_TEXT>
22
+ </SEARCH_MODES>
23
+ <Spelling>
24
+ <Suggestion q="fake suggestion escaped">fake suggestion not escaped</Suggestion>
25
+ </Spelling>
26
+ <Context>
27
+ <title>Info-Tech Research Group</title>
28
+ <Facet>
29
+ <FacetItem>
30
+ <label>test_refinement</label>
31
+ <anchor_text>Test Refinement</anchor_text>
32
+ </FacetItem>
33
+ </Facet>
34
+ </Context>
35
+ <RES SN="3" EN="4">
36
+ <M>29</M>
37
+ <NB>
38
+ <PU>/previous</PU>
39
+ <NU>/next</NU>
40
+ </NB>
41
+ <RG START="1" SIZE="2"/>
42
+ <RG START="1" SIZE="1"> </RG>
43
+ <R N="3">
44
+ <U>http://www.infotech.com/research/web-app-dev-trade-in-j2ee-for-ruby-on-rails</U>
45
+ <UE>http://www.infotech.com/research/web-app-dev-trade-in-j2ee-for-ruby-on-rails</UE>
46
+ <T>Web App Dev: Trade in J2EE for Ruby on &lt;b&gt;Rails&lt;/b&gt; | Info-Tech Research &lt;b&gt;...&lt;/b&gt;</T>
47
+ <RK>0</RK>
48
+ <BYLINEDATE>1144738800</BYLINEDATE>
49
+ <S>11 Apr 2006 &lt;b&gt;...&lt;/b&gt; Ruby is gaining a lot of attention as more Web developers report shorter learning &lt;br&gt; curves and development cycles using the language.</S>
50
+ <LANG>en</LANG>
51
+ <PageMap>
52
+ <DataObject type="metatags">
53
+ <Attribute name="viewport" value="width=device-width, initial-scale=1.0"/>
54
+ <Attribute name="csrf-param" value="authenticity_token"/>
55
+ <Attribute name="csrf-token" value="33G4AEWugnU0gp6lDmF/Ct527Yi16df7TR3qST8t52I="/>
56
+ <Attribute name="product" value="itap|"/>
57
+ <Attribute name="product_slug" value="web-app-dev-trade-in-j2ee-for-ruby-on-rails"/>
58
+ <Attribute name="publicationtype" value="note"/>
59
+ <Attribute name="lifecycle" value="MakeDecisions|Evaluate|"/>
60
+ <Attribute name="categories" value="|applications|application-web-development-maintenance|development|"/>
61
+ <Attribute name="publishdate" value="2006-04-11"/>
62
+ <Attribute name="authors" value="Curtis Gittens|"/>
63
+ <Attribute name="title" value="Web App Dev: Trade in J2EE for Ruby on Rails"/>
64
+ </DataObject>
65
+ </PageMap>
66
+ <HAS>
67
+ <L/>
68
+ <C SZ="40k" CID="6P9DT50RDYIJ"/>
69
+ <RT/>
70
+ </HAS>
71
+ </R>
72
+ <RG START="2" SIZE="1"> </RG>
73
+ <R N="4">
74
+ <U>http://hr.mcleanco.com/research/hr-craft-effective-performance-improvement-plans</U>
75
+ <UE>http://hr.mcleanco.com/research/hr-craft-effective-performance-improvement-plans</UE>
76
+ <T>Implement Performance Improvement Plans | McLean &amp;amp; Company</T>
77
+ <RK>0</RK>
78
+ <BYLINEDATE>1313996400</BYLINEDATE>
79
+ <S>22 Aug 2011 &lt;b&gt;...&lt;/b&gt; 1. Implement Performance Improvement Plans. Get employee performance on &lt;br&gt; track before it rides off the &lt;b&gt;rails&lt;/b&gt;. McLean &amp;amp; Company. / 12. 00:00 &lt;b&gt;...&lt;/b&gt;</S>
80
+ <LANG>en</LANG>
81
+ <PageMap>
82
+ <DataObject type="publication">
83
+ <Attribute name="type">solution-set</Attribute>
84
+ <Attribute name="type-title">Solution Set</Attribute>
85
+ <Attribute name="attachment-icons">http://static.infotech.com/images/css/icons/ppt_icon-14x14.png|http://static.infotech.com/images/css/icons/doc_icon-14x14.png</Attribute>
86
+ <Attribute name="product_type_bias">1</Attribute>
87
+ <Attribute name="product_families">hr</Attribute>
88
+ <Attribute name="slug">hr-craft-effective-performance-improvement-plans</Attribute>
89
+ <Attribute name="categories">talent-management|coaching-and-development</Attribute>
90
+ <Attribute name="publishdate">2011-05-26</Attribute>
91
+ <Attribute name="authors">Susanna Hunter</Attribute>
92
+ <Attribute name="title">Implement Performance Improvement Plans</Attribute>
93
+ <Attribute name="description">Managers dread implementing a Performance Improvement Plan (PIP) because they think it's a waste of time. However, in a recent McLean &amp; Company survey, 68% of employees who were placed on a PIP were still with the organization. When a manager...</Attribute>
94
+ <Attribute name="keywords">performance management|Development|difficult employee|performance review|discrimination|termination|Coaching|poor performance|employee performance|Performance Improvement Plan|PIP|performance improvement|Performance appraisal|corrective action|development plans|corrective discipline|progressive discipline|performance issue</Attribute>
95
+ </DataObject>
96
+ <DataObject type="metatags">
97
+ <Attribute name="viewport" value="width=device-width, initial-scale=1.0"/>
98
+ <Attribute name="csrf-param" value="authenticity_token"/>
99
+ <Attribute name="csrf-token" value="9UbBckKIdrtN7Gn8ZFSuhOqvTcY/8JzUW34mXU4Cwiw="/>
100
+ <Attribute name="product" value="hr|"/>
101
+ <Attribute name="product_slug" value="hr-craft-effective-performance-improvement-plans"/>
102
+ <Attribute name="publicationtype" value="solution-set"/>
103
+ <Attribute name="categories" value="|talent-management|coaching-and-development|"/>
104
+ <Attribute name="publishdate" value="2011-05-26"/>
105
+ <Attribute name="authors" value="Susanna Hunter|"/>
106
+ <Attribute name="title" value="Implement Performance Improvement Plans"/>
107
+ </DataObject>
108
+ <DataObject type="cse_image">
109
+ <Attribute name="src" value="http://static.infotech.com/images/MCO-Thumb-SB6.jpg"/>
110
+ </DataObject>
111
+ <DataObject type="cse_thumbnail">
112
+ <Attribute name="width" value="280"/>
113
+ <Attribute name="height" value="160"/>
114
+ <Attribute name="src" value="http://t1.gstatic.com/images?q=tbn:ANd9GcSC2UdC2eeAKKC4nh_iWK8oiPjMI06QVKIKUgSwi3VbnlBEI4TmjiaG12IU"/>
115
+ </DataObject>
116
+ </PageMap>
117
+ <HAS>
118
+ <L/>
119
+ <C SZ="85k" CID="ffPBTuMTrTIJ"/>
120
+ <RT/>
121
+ </HAS>
122
+ </R>
123
+ <RHS_COLUMN>
124
+ <RG START="1" SIZE="0"/>
125
+ </RHS_COLUMN>
126
+ </RES>
127
+ </GSP>
@@ -84,4 +84,74 @@ describe GoogleSiteSearch do
84
84
  end
85
85
  end
86
86
 
87
+ describe ".query" do
88
+ it "creates a Search object and calls query on it" do
89
+ mock = MiniTest::Mock.new.expect(:query, mock)
90
+ Search.stub(:new, mock) do
91
+ GoogleSiteSearch.query("/doesnt_matter")
92
+ mock.verify
93
+ end
94
+ end
95
+ end
96
+
97
+ describe ".query_multiple" do
98
+
99
+ describe "when there are always next results available" do
100
+ before do
101
+ search = Search.new("fake_url",GoogleSiteSearch::Result)
102
+ search.stubs(:next_results_url).returns("next_url")
103
+ Search.any_instance.stubs(:query).returns(search)
104
+ end
105
+
106
+ let :result do
107
+ GoogleSiteSearch.query_multiple(3, "dosent_matter", Result)
108
+ end
109
+
110
+ it "returns an array of query results" do
111
+ result.must_be_instance_of Array
112
+ end
113
+
114
+ it "performs the correct number of searches" do
115
+ result.count.must_equal 3
116
+ end
117
+
118
+ describe "accepts and executes a block for each result" do
119
+ let :block_result do
120
+ block_result = []
121
+ GoogleSiteSearch.query_multiple(3, "dosent_matter", Result) do |search|
122
+ block_result << search.next_results_url
123
+ end
124
+ block_result
125
+ end
126
+
127
+ it "should have the mocked next result value" do
128
+ block_result.select{|result| result == "next_url"}.count.must_equal 3
129
+ end
130
+ end
131
+
132
+ end
133
+
134
+ describe "when there are less results then asked for" do
135
+
136
+ before do
137
+ search = Search.new("fake_url",GoogleSiteSearch::Result)
138
+ search.stubs(:next_results_url).returns(nil)
139
+ Search.any_instance.stubs(:query).returns(search)
140
+ end
141
+
142
+ let :result do
143
+ GoogleSiteSearch.query_multiple(3, "dosent_matter", Result)
144
+ end
145
+
146
+ it "returns an array of query results" do
147
+ result.must_be_instance_of Array
148
+ end
149
+
150
+ it "performs only available searchs" do
151
+ #next_results stubed to nil so should only ever do 1
152
+ result.count.must_equal 1
153
+ end
154
+
155
+ end
156
+ end
87
157
  end
data/test/test_helper.rb CHANGED
@@ -3,4 +3,6 @@ ENV['RACK_ENV'] = 'test'
3
3
  require "google-site-search"
4
4
  require "minitest/spec"
5
5
  require "minitest/mock"
6
+ require "mocha"
7
+
6
8
  include GoogleSiteSearch #include module so I don't have to namespace everything
data/test/test_search.rb CHANGED
@@ -3,22 +3,7 @@ require_relative 'test_helper'
3
3
  describe Search do
4
4
 
5
5
  let :xml do
6
- <<-xml
7
- <?xml version="1.0" encoding="UTF-8" standalone="no"?>
8
- <GSP VER="3.2">
9
- <TM>0.075037</TM><Q>rails</Q>
10
- <PARAM name="q" value="rails" original_value="rails" url_escaped_value="rails" js_escaped_value="rails"></PARAM><PARAM name="num" value="2" original_value="2" url_escaped_value="2" js_escaped_value="2"></PARAM><PARAM name="hl" value="en" original_value="en" url_escaped_value="en" js_escaped_value="en"></PARAM><PARAM name="client" value="google-csbe" original_value="google-csbe" url_escaped_value="google-csbe" js_escaped_value="google-csbe"></PARAM><PARAM name="cx" value="009797329687680929468:y_saholjpsk" original_value="009797329687680929468:y_saholjpsk" url_escaped_value="009797329687680929468%3Ay_saholjpsk" js_escaped_value="009797329687680929468:y_saholjpsk"></PARAM><PARAM name="boostcse" value="0" original_value="0" url_escaped_value="0" js_escaped_value="0"></PARAM><PARAM name="output" value="xml_no_dtd" original_value="xml_no_dtd" url_escaped_value="xml_no_dtd" js_escaped_value="xml_no_dtd"></PARAM><PARAM name="ie" value="UTF-8" original_value="UTF-8" url_escaped_value="UTF-8" js_escaped_value="UTF-8"></PARAM><PARAM name="oe" value="UTF-8" original_value="UTF-8" url_escaped_value="UTF-8" js_escaped_value="UTF-8"></PARAM><PARAM name="prmd" value="ivnslb" original_value="ivnslb" url_escaped_value="ivnslb" js_escaped_value="ivnslb"></PARAM><PARAM name="ei" value="PYSNUNWAKKea2AXH0YDYDA" original_value="PYSNUNWAKKea2AXH0YDYDA" url_escaped_value="PYSNUNWAKKea2AXH0YDYDA" js_escaped_value="PYSNUNWAKKea2AXH0YDYDA"></PARAM><PARAM name="start" value="2" original_value="2" url_escaped_value="2" js_escaped_value="2"></PARAM><PARAM name="sa" value="N" original_value="N" url_escaped_value="N" js_escaped_value="N"></PARAM><SEARCH_MODES><PROMOTED_MODES></PROMOTED_MODES><UNPROMOTED_MODES></UNPROMOTED_MODES><MORE_TEXT>More</MORE_TEXT><LESS_TEXT>Fewer</LESS_TEXT></SEARCH_MODES><Spelling><Suggestion q="fake suggestion escaped">fake suggestion not escaped</Suggestion></Spelling><Context><title>Info-Tech Research Group</title><Facet><FacetItem><label>test_refinement</label><anchor_text>Test Refinement</anchor_text></FacetItem></Facet></Context><RES SN="3" EN="4">
11
- it "contains the spelling suggestions" do
12
-
13
- end
14
- <M>29</M>
15
- <NB><PU>/previous</PU><NU>/next</NU></NB>
16
- <RG START="1" SIZE="2"></RG> <RG START="1" SIZE="1"> </RG> <R N="3"><U>http://www.infotech.com/research/web-app-dev-trade-in-j2ee-for-ruby-on-rails</U><UE>http://www.infotech.com/research/web-app-dev-trade-in-j2ee-for-ruby-on-rails</UE><T>Web App Dev: Trade in J2EE for Ruby on &lt;b&gt;Rails&lt;/b&gt; | Info-Tech Research &lt;b&gt;...&lt;/b&gt;</T><RK>0</RK><BYLINEDATE>1144738800</BYLINEDATE><S>11 Apr 2006 &lt;b&gt;...&lt;/b&gt; Ruby is gaining a lot of attention as more Web developers report shorter learning &lt;br&gt; curves and development cycles using the language.</S><LANG>en</LANG><Label>_cse_y_saholjpsk</Label><PageMap><DataObject type="metatags"><Attribute name="viewport" value="width=device-width, initial-scale=1.0"/><Attribute name="csrf-param" value="authenticity_token"/><Attribute name="csrf-token" value="33G4AEWugnU0gp6lDmF/Ct527Yi16df7TR3qST8t52I="/><Attribute name="product" value="itap|"/><Attribute name="product_slug" value="web-app-dev-trade-in-j2ee-for-ruby-on-rails"/><Attribute name="publicationtype" value="note"/><Attribute name="lifecycle" value="MakeDecisions|Evaluate|"/><Attribute name="categories" value="|applications|application-web-development-maintenance|development|"/><Attribute name="publishdate" value="2006-04-11"/><Attribute name="authors" value="Curtis Gittens|"/><Attribute name="title" value="Web App Dev: Trade in J2EE for Ruby on Rails"/></DataObject></PageMap><HAS><L/><C SZ="40k" CID="6P9DT50RDYIJ"/><RT/></HAS></R>
17
- <RG START="2" SIZE="1"> </RG> <R N="4"><U>http://hr.mcleanco.com/research/hr-craft-effective-performance-improvement-plans</U><UE>http://hr.mcleanco.com/research/hr-craft-effective-performance-improvement-plans</UE><T>Implement Performance Improvement Plans | McLean &amp;amp; Company</T><RK>0</RK><BYLINEDATE>1313996400</BYLINEDATE><S>22 Aug 2011 &lt;b&gt;...&lt;/b&gt; 1. Implement Performance Improvement Plans. Get employee performance on &lt;br&gt; track before it rides off the &lt;b&gt;rails&lt;/b&gt;. McLean &amp;amp; Company. / 12. 00:00 &lt;b&gt;...&lt;/b&gt;</S><LANG>en</LANG><Label>_cse_y_saholjpsk</Label><PageMap><DataObject type="publication"><Attribute name="type">solution-set</Attribute><Attribute name="type-title">Solution Set</Attribute><Attribute name="attachment-icons">http://static.infotech.com/images/css/icons/ppt_icon-14x14.png|http://static.infotech.com/images/css/icons/doc_icon-14x14.png</Attribute><Attribute name="product_type_bias">1</Attribute><Attribute name="product_families">hr</Attribute><Attribute name="slug">hr-craft-effective-performance-improvement-plans</Attribute><Attribute name="categories">talent-management|coaching-and-development</Attribute><Attribute name="publishdate">2011-05-26</Attribute><Attribute name="authors">Susanna Hunter</Attribute><Attribute name="title">Implement Performance Improvement Plans</Attribute><Attribute name="description">Managers dread implementing a Performance Improvement Plan (PIP) because they think it&#39;s a waste of time. However, in a recent McLean &amp; Company survey, 68% of employees who were placed on a PIP were still with the organization. When a manager...</Attribute><Attribute name="keywords">performance management|Development|difficult employee|performance review|discrimination|termination|Coaching|poor performance|employee performance|Performance Improvement Plan|PIP|performance improvement|Performance appraisal|corrective action|development plans|corrective discipline|progressive discipline|performance issue</Attribute></DataObject><DataObject type="metatags"><Attribute name="viewport" value="width=device-width, initial-scale=1.0"/><Attribute name="csrf-param" value="authenticity_token"/><Attribute name="csrf-token" value="9UbBckKIdrtN7Gn8ZFSuhOqvTcY/8JzUW34mXU4Cwiw="/><Attribute name="product" value="hr|"/><Attribute name="product_slug" value="hr-craft-effective-performance-improvement-plans"/><Attribute name="publicationtype" value="solution-set"/><Attribute name="categories" value="|talent-management|coaching-and-development|"/><Attribute name="publishdate" value="2011-05-26"/><Attribute name="authors" value="Susanna Hunter|"/><Attribute name="title" value="Implement Performance Improvement Plans"/></DataObject><DataObject type="cse_image"><Attribute name="src" value="http://static.infotech.com/images/MCO-Thumb-SB6.jpg"/></DataObject><DataObject type="cse_thumbnail"><Attribute name="width" value="280"/><Attribute name="height" value="160"/><Attribute name="src" value="http://t1.gstatic.com/images?q=tbn:ANd9GcSC2UdC2eeAKKC4nh_iWK8oiPjMI06QVKIKUgSwi3VbnlBEI4TmjiaG12IU"/></DataObject></PageMap><HAS><L/><C SZ="85k" CID="ffPBTuMTrTIJ"/><RT/></HAS></R>
18
- <RHS_COLUMN><RG START="1" SIZE="0"></RG></RHS_COLUMN></RES>
19
- </GSP>
20
- xml
21
-
6
+ IO.read(File.join(File.dirname(__FILE__), "data", "utf8_results.xml"))
22
7
  end
23
8
 
24
9
  describe "#query" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google-site-search
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-10-28 00:00:00.000000000Z
12
+ date: 2012-11-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
16
- requirement: &16445280 !ruby/object:Gem::Requirement
16
+ requirement: &22916060 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *16445280
24
+ version_requirements: *22916060
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: libxml-ruby
27
- requirement: &16444860 !ruby/object:Gem::Requirement
27
+ requirement: &22915560 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,7 +32,7 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *16444860
35
+ version_requirements: *22915560
36
36
  description: A gem to aid in the consumption of the google site search service; querys
37
37
  the service, populates a result object and has some related helper methods.
38
38
  email:
@@ -53,6 +53,7 @@ files:
53
53
  - lib/google-site-search/search.rb
54
54
  - lib/google-site-search/url_builder.rb
55
55
  - lib/google-site-search/version.rb
56
+ - test/data/utf8_results.xml
56
57
  - test/test_google_site_search.rb
57
58
  - test/test_helper.rb
58
59
  - test/test_search.rb
@@ -83,6 +84,7 @@ specification_version: 3
83
84
  summary: A gem to aid in the consumption of the google site search service; querys
84
85
  the service, populates a result object and has some related helper methods.
85
86
  test_files:
87
+ - test/data/utf8_results.xml
86
88
  - test/test_google_site_search.rb
87
89
  - test/test_helper.rb
88
90
  - test/test_search.rb