harrisj-nytimes-articles 0.3.0 → 0.4.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/.gitignore ADDED
@@ -0,0 +1,3 @@
1
+ *.sw?
2
+ .DS_Store
3
+ coverage
data/HISTORY ADDED
@@ -0,0 +1,9 @@
1
+ HISTORY
2
+
3
+ = 0.4.0
4
+ - Changed facet format returned from search
5
+ - Changed default fields returned to all
6
+ - Added basic fields type
7
+
8
+ = 0.3.0
9
+ - Whoops, I never had a history file!
data/LICENSE ADDED
@@ -0,0 +1,24 @@
1
+ Copyright (c) 2008 Jacob Harris
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21
+
22
+ THIS LICENSE ALSO APPLIES ONLY TO THE RUBY GEM FOR ACCESSING THE NYTIMES
23
+ ARTICLE SEARCH API AND DOES NOT SUPPLEMENT OR ABROGATE ANY TERMS OF USE
24
+ OF THE API AT THE NEW YORK TIMES.
data/README ADDED
@@ -0,0 +1,32 @@
1
+ = nytimes-articles
2
+
3
+ A simple GEM for interacting with the New York Times' Article Search API (http://developer.nytimes.com/docs/article_search_api)
4
+
5
+ == CREDITS
6
+
7
+ * Jacob Harris (http://open.blogs.nytimes.com/)
8
+ * Taylor Barstow (http://www.nytexplorer.com/)
9
+
10
+ == USAGE
11
+
12
+ require 'rubygems'
13
+ require 'nytimes-articles'
14
+
15
+ include Nytimes::Articles
16
+ Base.api_key = 'YOUR API KEY'
17
+ Article.search 'ice cream'
18
+ Article.search :title => '"ice cream"', :since => 3.weeks.ago, :fields => :basic
19
+ Article.search :author => 'Sewell Chan', :facets => [:geo, :person]
20
+
21
+ See the RDOC for Article#search for better instructions on usage.
22
+
23
+ == TODO
24
+
25
+ The following functionality is still to be implemented:
26
+
27
+ * Parsing multimedia and related_multimedia fields
28
+ * Coercion of some facet results into more suitable Ruby types (mostly Dates / Integer fields)
29
+ * Next / previous result set pagination (with memoization?)
30
+
31
+ == COPYRIGHT
32
+ Copyright (c) 2008 Jacob Harris. See LICENSE for details.
data/Rakefile ADDED
@@ -0,0 +1,54 @@
1
+ require 'rake'
2
+
3
+ begin
4
+ require 'jeweler'
5
+ Jeweler::Tasks.new do |s|
6
+ s.name = "nytimes-articles"
7
+ s.summary = %Q{A gem for accessing the NYTimes Article Search API}
8
+ s.email = "jharris@nytimes.com"
9
+ s.homepage = "http://github.com/harrisj/nytimes-articles"
10
+ s.description = "A gem for accessing the New York Times Article Search API"
11
+ s.authors = ["Jacob Harris"]
12
+ s.requirements << 'Unicode'
13
+ s.requirements << 'The htmlentities gem'
14
+ s.add_dependency('htmlentities')
15
+ end
16
+ rescue LoadError
17
+ puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
18
+ end
19
+
20
+ require 'rake/rdoctask'
21
+ Rake::RDocTask.new do |rdoc|
22
+ rdoc.rdoc_dir = 'rdoc'
23
+ rdoc.title = 'nytimes-articles'
24
+ rdoc.options << '--line-numbers' << '--inline-source'
25
+ rdoc.rdoc_files.include('README*')
26
+ rdoc.rdoc_files.include('lib/**/*.rb')
27
+ end
28
+
29
+ require 'rake/testtask'
30
+ Rake::TestTask.new(:test) do |t|
31
+ t.libs << 'lib' << 'test'
32
+ t.pattern = 'test/**/test_*.rb'
33
+ t.verbose = false
34
+ end
35
+
36
+ begin
37
+ require 'rcov/rcovtask'
38
+ Rcov::RcovTask.new do |t|
39
+ t.libs << 'test'
40
+ t.test_files = FileList['test/**/test_*.rb']
41
+ t.verbose = true
42
+ end
43
+ rescue LoadError
44
+ puts "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
45
+ end
46
+
47
+ begin
48
+ require 'cucumber/rake/task'
49
+ Cucumber::Rake::Task.new(:features)
50
+ rescue LoadError
51
+ puts "Cucumber is not available. In order to run features, you must: sudo gem install cucumber"
52
+ end
53
+
54
+ task :default => :test
data/VERSION.yml CHANGED
@@ -1,4 +1,4 @@
1
1
  ---
2
- :minor: 3
3
2
  :patch: 0
4
3
  :major: 0
4
+ :minor: 4
@@ -0,0 +1,9 @@
1
+ Feature: something something
2
+ In order to something something
3
+ A user something something
4
+ something something something
5
+
6
+ Scenario: something something
7
+ Given inspiration
8
+ When I create a sweet new gem
9
+ Then everyone should see how awesome I am
File without changes
@@ -0,0 +1,13 @@
1
+ $LOAD_PATH.unshift(File.dirname(__FILE__) + '/../../lib')
2
+ require 'nytimes_articles'
3
+
4
+ require 'test/unit/assertions'
5
+
6
+ require 'test/unit/assertions'
7
+
8
+ World do |world|
9
+
10
+ world.extend(Test::Unit::Assertions)
11
+
12
+ world
13
+ end
@@ -1,6 +1,6 @@
1
1
  # should I be setting this?
2
2
  $KCODE = 'UTF8'
3
3
 
4
- %w(exceptions base facet thumbnail article result_set query).each do |f|
4
+ %w(exceptions base facet facet_hash thumbnail article result_set query).each do |f|
5
5
  require File.join(File.dirname(__FILE__), 'nytimes_articles', f)
6
6
  end
@@ -30,6 +30,10 @@ module Nytimes
30
30
  attr_reader :classifiers, :descriptions, :geo, :material_types, :organizations, :persons, :nytd_bylines, :nytd_descriptions, :nytd_geo, :nytd_organizations, :nytd_persons, :nytd_sections, :nytd_works_mentioned, :works_mentioned
31
31
  alias :people :persons
32
32
  alias :nytd_people :nytd_persons
33
+ alias :places :geo
34
+ alias :nytd_places :nytd_geo
35
+ alias :subjects :descriptions
36
+ alias :nytd_subjects :nytd_descriptions
33
37
 
34
38
  ##
35
39
  # Create a new Article from hash arguments. You really don't need to call this as Article instances are automatically returned from the API
@@ -183,13 +187,14 @@ module Nytimes
183
187
  #
184
188
  # == ARTICLE FIELDS
185
189
  #
186
- # The <tt>:fields</tt> parameter is used to indicate what fields are returned with each article from the search results. If not specified, only
187
- # the following fields are returned for each article: body, byline, date, title, and url. To return specific fields, any of the search fields
190
+ # The <tt>:fields</tt> parameter is used to indicate what fields are returned with each article from the search results. If not specified, all
191
+ # fields are returned. To return specific fields, any of the search fields
188
192
  # from above can be explicitly specified in a comma-delimited list, as well as the additional display-only (not searchable) fields below (these
189
193
  # are strings or symbols):
190
194
  #
191
195
  # * <tt>:all</tt> - return all fields for the article
192
196
  # * <tt>:none</tt> - display only the facet breakdown and no article results
197
+ # * <tt>:basic</tt> - return only the body, byline, date, title, and url
193
198
  # * <tt>:multimedia</tt> - return any related multimedia links for the article
194
199
  # * <tt>:thumbnail</tt> - return information for a related thumbnail image (if the article has one)
195
200
  # * <tt>:word_count</tt> - the word_count of the article.
@@ -226,9 +231,8 @@ module Nytimes
226
231
  end
227
232
 
228
233
  def self.facet_params(params, facet_name)
229
- return nil if params[facet_name].nil?
230
-
231
- params[facet_name].map {|f| Facet.new(facet_name, f, nil) }
234
+ #return nil if params[facet_name].nil?
235
+ params[facet_name] # .map {|f| Facet.new(facet_name, f, nil) }
232
236
  end
233
237
 
234
238
  def self.text_argument(field, argument)
@@ -273,10 +277,10 @@ module Nytimes
273
277
 
274
278
  def self.add_fields_param(out_params, in_params)
275
279
  case in_params[:fields]
276
- when nil
277
- # do nothing
278
- when :all
280
+ when nil, :all
279
281
  out_params['fields'] = ALL_FIELDS.join(',')
282
+ when :basic
283
+ # do nothing, the API will return basic URLs
280
284
  when :none
281
285
  out_params['fields'] = ' '
282
286
  unless out_params['facets']
@@ -0,0 +1,26 @@
1
+ module Nytimes
2
+ module Articles
3
+ class FacetHash
4
+ def initialize(hash)
5
+ @facets = hash
6
+ end
7
+
8
+ def [](key)
9
+ case key
10
+ when Symbol
11
+ key = Facet.symbol_name(key)
12
+ when String
13
+ # do nothing
14
+ else
15
+ raise ArgumentError, "Argument to facets hash must be a symbol or string name"
16
+ end
17
+
18
+ @facets[key]
19
+ end
20
+
21
+ def self.init_from_api(hash)
22
+ new(hash)
23
+ end
24
+ end
25
+ end
26
+ end
@@ -8,7 +8,7 @@ module Nytimes
8
8
  #
9
9
  class Query
10
10
  FIELDS = [:only_facets, :except_facets, :begin_date, :end_date, :since,
11
- :before, :fee, :has_thumbnail, :facets, :fields, :query, :offset] + Article::TEXT_FIELDS.map(&:to_sym)
11
+ :before, :fee, :has_thumbnail, :facets, :fields, :query, :offset] + Article::TEXT_FIELDS.map{|f| f.to_sym}
12
12
  FIELDS.each {|f| attr_accessor f}
13
13
 
14
14
  # Produce a hash which uniquely identifies this query
@@ -35,7 +35,7 @@ module Nytimes
35
35
  @offset = params[:offset]
36
36
  @total_results = params[:total_results]
37
37
  @results = params[:results]
38
- @facets = params[:facets]
38
+ @facets = FacetHash.init_from_api(params[:facets])
39
39
  end
40
40
 
41
41
  ##
@@ -0,0 +1,73 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = %q{nytimes-articles}
5
+ s.version = "0.4.0"
6
+
7
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
+ s.authors = ["Jacob Harris"]
9
+ s.date = %q{2009-07-23}
10
+ s.description = %q{A gem for accessing the New York Times Article Search API}
11
+ s.email = %q{jharris@nytimes.com}
12
+ s.extra_rdoc_files = [
13
+ "LICENSE",
14
+ "README"
15
+ ]
16
+ s.files = [
17
+ ".gitignore",
18
+ "HISTORY",
19
+ "LICENSE",
20
+ "README",
21
+ "Rakefile",
22
+ "VERSION.yml",
23
+ "features/nytimes_articles.feature",
24
+ "features/steps/nytimes_articles_steps.rb",
25
+ "features/support/env.rb",
26
+ "lib/nytimes_articles.rb",
27
+ "lib/nytimes_articles/article.rb",
28
+ "lib/nytimes_articles/base.rb",
29
+ "lib/nytimes_articles/exceptions.rb",
30
+ "lib/nytimes_articles/facet.rb",
31
+ "lib/nytimes_articles/facet_hash.rb",
32
+ "lib/nytimes_articles/query.rb",
33
+ "lib/nytimes_articles/result_set.rb",
34
+ "lib/nytimes_articles/thumbnail.rb",
35
+ "nytimes-articles.gemspec",
36
+ "script/console",
37
+ "test/nytimes/articles/test_article.rb",
38
+ "test/nytimes/articles/test_base.rb",
39
+ "test/nytimes/articles/test_facet.rb",
40
+ "test/nytimes/articles/test_query.rb",
41
+ "test/nytimes/articles/test_result_set.rb",
42
+ "test/nytimes/articles/test_thumbnail.rb",
43
+ "test/test_helper.rb"
44
+ ]
45
+ s.homepage = %q{http://github.com/harrisj/nytimes-articles}
46
+ s.rdoc_options = ["--charset=UTF-8"]
47
+ s.require_paths = ["lib"]
48
+ s.requirements = ["Unicode", "The htmlentities gem"]
49
+ s.rubygems_version = %q{1.3.5}
50
+ s.summary = %q{A gem for accessing the NYTimes Article Search API}
51
+ s.test_files = [
52
+ "test/nytimes/articles/test_article.rb",
53
+ "test/nytimes/articles/test_base.rb",
54
+ "test/nytimes/articles/test_facet.rb",
55
+ "test/nytimes/articles/test_query.rb",
56
+ "test/nytimes/articles/test_result_set.rb",
57
+ "test/nytimes/articles/test_thumbnail.rb",
58
+ "test/test_helper.rb"
59
+ ]
60
+
61
+ if s.respond_to? :specification_version then
62
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
63
+ s.specification_version = 3
64
+
65
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
66
+ s.add_runtime_dependency(%q<htmlentities>, [">= 0"])
67
+ else
68
+ s.add_dependency(%q<htmlentities>, [">= 0"])
69
+ end
70
+ else
71
+ s.add_dependency(%q<htmlentities>, [">= 0"])
72
+ end
73
+ end
data/script/console ADDED
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env ruby
2
+ # File: script/console
3
+ irb = RUBY_PLATFORM =~ /(:?mswin|mingw)/ ? 'irb.bat' : 'irb'
4
+
5
+ libs = " -r irb/completion"
6
+ # Perhaps use a console_lib to store any extra methods I may want available in the cosole
7
+ # libs << " -r #{File.dirname(__FILE__) + '/../lib/console_lib/console_logger.rb'}"
8
+ libs << " -r #{File.dirname(__FILE__) + '/../lib/nytimes_articles.rb'}"
9
+ puts "Loading nytimes_articles gem"
10
+ exec "#{irb} #{libs} --simple-prompt"
@@ -249,6 +249,13 @@ class TestNytimes::TestArticles::TestArticle < Test::Unit::TestCase
249
249
  end
250
250
 
251
251
  context ":fields" do
252
+ context "when not specified at all" do
253
+ should "pass all fields in a comma-delimited list" do
254
+ Article.expects(:invoke).with(has_entry('fields', Article::ALL_FIELDS.join(',')))
255
+ Article.search "FOO BAR", :fields => :all
256
+ end
257
+ end
258
+
252
259
  context "for the :all argument" do
253
260
  should "pass all fields in a comma-delimited list" do
254
261
  Article.expects(:invoke).with(has_entry('fields', Article::ALL_FIELDS.join(',')))
@@ -256,6 +263,13 @@ class TestNytimes::TestArticles::TestArticle < Test::Unit::TestCase
256
263
  end
257
264
  end
258
265
 
266
+ context "for the :basic argument" do
267
+ should "not send a fields argument to the api" do
268
+ Article.expects(:invoke).with(Not(has_key('fields')))
269
+ Article.search "FOO BAR", :fields => :basic
270
+ end
271
+ end
272
+
259
273
  context "for the :none argument" do
260
274
  should "request a blank space for the fields argument" do
261
275
  Article.expects(:invoke).with(has_entry('fields', ' '))
@@ -562,79 +576,9 @@ class TestNytimes::TestArticles::TestArticle < Test::Unit::TestCase
562
576
  assert_equal ARTICLE_API_HASH2['small_image_height'].to_i, thumbnail.height
563
577
  end
564
578
  end
579
+
580
+ context "array facets" do
581
+ should "have some tests for array facets"
582
+ end
565
583
  end
566
584
  end
567
-
568
-
569
- # abstract String X X A summary of the article, written by Times indexers
570
- # author String X X An author note, such as an e-mail address or short biography (compare byline)
571
- # body String X X A portion of the beginning of the article. Note: Only a portion of the article body is included in responses. But when you search against the body field, you search the full text of the article.
572
- # byline String X X The article byline, including the author's name
573
- # classifers_facet Array (Strings) X X Taxonomic classifiers that reflect Times content categories, such as Top/News/Sports
574
- # column_facet String X X A Times column title (if applicable), such as Weddings or Ideas & Trends
575
- # date Date X X The publication date in YYYYMMDD format
576
- # day_of_week_facet String X X The day of the week (e.g., Monday, Tuesday) the article was published (compare publication_day, which is the numeric date rather than the day of the week)
577
- # des_facet Array (Strings) X X Descriptive subject terms assigned by Times indexers
578
- #
579
- # When used in a request, values must be UPPERCASE
580
- # desk_facet
581
- # desk_facet String X X The Times desk that produced the story (e.g., Business/Financial Desk)
582
- # fee Boolean X X Indicates whether users must pay a fee to retrieve the full article
583
- # geo_facet Array (Strings) X X Standardized names of geographic locations, assigned by Times indexers
584
- #
585
- # When used in a request, values must be UPPERCASE
586
- # lead_paragraph String X X The first paragraph of the article (as it appeared in the printed newspaper)
587
- # material_type_facet Array (Strings) X X The general article type, such as Biography, Editorial or Review
588
- # multimedia Array X Associated multimedia features, including URLs (see also the related_multimedia field)
589
- # nytd_byline_facet String X X The article byline, formatted for NYTimes.com
590
- # nytd_des_facet Array (Strings) X X Descriptive subject terms, assigned for use on NYTimes.com (to get standardized terms, use the TimesTags API)
591
- #
592
- # When used in a request, values must be Mixed Case
593
- # nytd_geo_facet Array (Strings) X X Standardized names of geographic locations, assigned for use on NYTimes.com (to get standardized terms, use the TimesTags API)
594
- #
595
- # When used in a request, values must be Mixed Case
596
- # nytd_lead_paragraph String X X The first paragraph of the article (as it appears on NYTimes.com)
597
- # nytd_org_facet Array (Strings) X X Standardized names of organizations, assigned for use on NYTimes.com (to get standardized terms, use the TimesTags API)
598
- #
599
- # When used in a request, values must be Mixed Case
600
- # nytd_per_facet Array (Strings) X X Standardized names of people, assigned for use on NYTimes.com (to get standardized terms, use the TimesTags API)
601
- #
602
- # When used in a request, values must be Mixed Case
603
- # nytd_section_facet Array (Strings) X X The section the article appears in (on NYTimes.com)
604
- # nytd_title String X X The article title on NYTimes.com (this field may or may not match the title field; headlines may be shortened and edited for the Web)
605
- # nytd_works_mentioned
606
- # _facet String X X Literary works mentioned (titles formatted for use on NYTimes.com)
607
- # org_facet Array (Strings) X X Standardized names of organizations, assigned by Times indexers
608
- #
609
- # When used in a request, values must be UPPERCASE
610
- # page_facet String X X The page the article appeared on (in the printed paper)
611
- # per_facet Array (Strings) X X Standardized names of people, assigned by Times indexers
612
- #
613
- # When used in a request, values must be UPPERCASE
614
- # publication_day
615
- # publication_month
616
- # publication_year Date
617
- # Date
618
- # Date X
619
- # X
620
- # X X
621
- # x
622
- # x The day (DD), month (MM) and year (YYYY) segments of date, separated for use as facets
623
- # related_multimedia Boolean X X Indicates whether multimedia features are associated with this article. Additional metadata for each related multimedia feature appears in the multimedia array.
624
- # section_page_facet String X X The full page number of the printed article (e.g., D00002)
625
- # small_image
626
- # small_image_url
627
- # small_image_height
628
- # small_image_width Boolean
629
- # String
630
- # Integer
631
- # Integer X X
632
- # X
633
- # X
634
- # X The small_image field indicates whether a smaller thumbnail image is associated with the article. The small_image_url field provides the URL of the image on NYTimes.com. The small_image_height and small_image_width fields provide the image dimensions.
635
- # source_facet String X X The originating body (e.g., AP, Dow Jones, The New York Times)
636
- # text String X The text field consists of title + byline + body (combined in an OR search) and is the default field for keyword searches. For more information, see Constructing a Search Query.
637
- # title String X X The article title (headline); corresponds to the headline that appeared in the printed newspaper
638
- # url String X X The URL of the article on NYTimes.com
639
- # word_count Integer X The full article word count
640
- # works_mentioned_facet
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: harrisj-nytimes-articles
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jacob Harris
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-03-03 00:00:00 -08:00
12
+ date: 2009-07-23 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -28,21 +28,30 @@ executables: []
28
28
 
29
29
  extensions: []
30
30
 
31
- extra_rdoc_files: []
32
-
31
+ extra_rdoc_files:
32
+ - LICENSE
33
+ - README
33
34
  files:
35
+ - .gitignore
36
+ - HISTORY
37
+ - LICENSE
38
+ - README
39
+ - Rakefile
34
40
  - VERSION.yml
35
- - lib/nytimes_articles
41
+ - features/nytimes_articles.feature
42
+ - features/steps/nytimes_articles_steps.rb
43
+ - features/support/env.rb
44
+ - lib/nytimes_articles.rb
36
45
  - lib/nytimes_articles/article.rb
37
46
  - lib/nytimes_articles/base.rb
38
47
  - lib/nytimes_articles/exceptions.rb
39
48
  - lib/nytimes_articles/facet.rb
49
+ - lib/nytimes_articles/facet_hash.rb
40
50
  - lib/nytimes_articles/query.rb
41
51
  - lib/nytimes_articles/result_set.rb
42
52
  - lib/nytimes_articles/thumbnail.rb
43
- - lib/nytimes_articles.rb
44
- - test/nytimes
45
- - test/nytimes/articles
53
+ - nytimes-articles.gemspec
54
+ - script/console
46
55
  - test/nytimes/articles/test_article.rb
47
56
  - test/nytimes/articles/test_base.rb
48
57
  - test/nytimes/articles/test_facet.rb
@@ -50,11 +59,10 @@ files:
50
59
  - test/nytimes/articles/test_result_set.rb
51
60
  - test/nytimes/articles/test_thumbnail.rb
52
61
  - test/test_helper.rb
53
- has_rdoc: true
62
+ has_rdoc: false
54
63
  homepage: http://github.com/harrisj/nytimes-articles
55
64
  post_install_message:
56
65
  rdoc_options:
57
- - --inline-source
58
66
  - --charset=UTF-8
59
67
  require_paths:
60
68
  - lib
@@ -76,7 +84,13 @@ requirements:
76
84
  rubyforge_project:
77
85
  rubygems_version: 1.2.0
78
86
  signing_key:
79
- specification_version: 2
87
+ specification_version: 3
80
88
  summary: A gem for accessing the NYTimes Article Search API
81
- test_files: []
82
-
89
+ test_files:
90
+ - test/nytimes/articles/test_article.rb
91
+ - test/nytimes/articles/test_base.rb
92
+ - test/nytimes/articles/test_facet.rb
93
+ - test/nytimes/articles/test_query.rb
94
+ - test/nytimes/articles/test_result_set.rb
95
+ - test/nytimes/articles/test_thumbnail.rb
96
+ - test/test_helper.rb