harrisj-nytimes-articles 0.1.3 → 0.2.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/VERSION.yml +2 -2
- data/lib/nytimes_articles/article.rb +12 -8
- data/lib/nytimes_articles/base.rb +17 -0
- data/test/nytimes/articles/test_article.rb +16 -4
- metadata +2 -2
data/VERSION.yml
CHANGED
@@ -57,7 +57,7 @@ module Nytimes
|
|
57
57
|
:author => text_field(params['author']),
|
58
58
|
:body => text_field(params['body']),
|
59
59
|
:byline => text_field(params['byline']),
|
60
|
-
:fee => params['fee']
|
60
|
+
:fee => boolean_field(params['fee']),
|
61
61
|
:lead_paragraph => text_field(params['lead_paragraph']),
|
62
62
|
:nytd_title => text_field(params['nytd_title']),
|
63
63
|
:nytd_lead_paragraph => text_field(params['nytd_lead_paragraph']),
|
@@ -302,15 +302,11 @@ module Nytimes
|
|
302
302
|
end
|
303
303
|
|
304
304
|
def self.facet_argument(name, value, exclude = false)
|
305
|
-
unless value.is_a? Array
|
306
|
-
value = [value]
|
307
|
-
end
|
308
|
-
|
309
305
|
if name.is_a? Symbol
|
310
306
|
name = Facet.symbol_name(name)
|
311
307
|
end
|
312
308
|
|
313
|
-
"#{'-' if exclude}#{name}:[#{value
|
309
|
+
"#{'-' if exclude}#{name}:[#{value}]"
|
314
310
|
end
|
315
311
|
|
316
312
|
def self.parse_facet_params(facets, exclude = false)
|
@@ -338,11 +334,19 @@ module Nytimes
|
|
338
334
|
end
|
339
335
|
|
340
336
|
facet_hash.each_pair do |k,v|
|
341
|
-
|
337
|
+
if v.is_a? Array
|
338
|
+
facet_args += v.map {|el| facet_argument(k, el, exclude)}
|
339
|
+
else
|
340
|
+
facet_args << facet_argument(k, v, exclude)
|
341
|
+
end
|
342
342
|
end
|
343
343
|
when Hash
|
344
344
|
facets.each_pair do |k,v|
|
345
|
-
|
345
|
+
if v.is_a? Array
|
346
|
+
facet_args += v.map {|el| facet_argument(k, el, exclude)}
|
347
|
+
else
|
348
|
+
facet_args << facet_argument(k, v, exclude)
|
349
|
+
end
|
346
350
|
end
|
347
351
|
end
|
348
352
|
|
@@ -52,6 +52,23 @@ module Nytimes
|
|
52
52
|
return nil unless value =~ /^\d{8}$/
|
53
53
|
Date.strptime(value, "%Y%m%d")
|
54
54
|
end
|
55
|
+
|
56
|
+
def self.boolean_field(value)
|
57
|
+
case value
|
58
|
+
when nil
|
59
|
+
false
|
60
|
+
when TrueClass
|
61
|
+
true
|
62
|
+
when FalseClass
|
63
|
+
false
|
64
|
+
when 'Y'
|
65
|
+
true
|
66
|
+
when 'N'
|
67
|
+
false
|
68
|
+
else
|
69
|
+
false
|
70
|
+
end
|
71
|
+
end
|
55
72
|
|
56
73
|
def self.invoke(params={})
|
57
74
|
begin
|
@@ -159,7 +159,7 @@ class TestNytimes::TestArticles::TestArticle < Test::Unit::TestCase
|
|
159
159
|
end
|
160
160
|
|
161
161
|
should "accept an Facet string hashed to an array terms" do
|
162
|
-
Article.expects(:invoke).with(has_entry("query", "#{Facet::GEO}:[CALIFORNIA
|
162
|
+
Article.expects(:invoke).with(has_entry("query", "#{Facet::GEO}:[CALIFORNIA] #{Facet::GEO}:[GREAT BRITAIN]"))
|
163
163
|
Article.search :only_facets => {Facet::GEO => ['CALIFORNIA', 'GREAT BRITAIN']}
|
164
164
|
end
|
165
165
|
|
@@ -181,7 +181,7 @@ class TestNytimes::TestArticles::TestArticle < Test::Unit::TestCase
|
|
181
181
|
f = Facet.new(Facet::GEO, 'CALIFORNIA', 2394)
|
182
182
|
f2 = Facet.new(Facet::GEO, 'IOWA', 12)
|
183
183
|
|
184
|
-
Article.expects(:invoke).with(has_entry("query", "#{Facet::GEO}:[CALIFORNIA
|
184
|
+
Article.expects(:invoke).with(has_entry("query", "#{Facet::GEO}:[CALIFORNIA] #{Facet::GEO}:[IOWA]"))
|
185
185
|
Article.search :only_facets => [f, f2]
|
186
186
|
end
|
187
187
|
|
@@ -203,7 +203,7 @@ class TestNytimes::TestArticles::TestArticle < Test::Unit::TestCase
|
|
203
203
|
end
|
204
204
|
|
205
205
|
should "accept an Facet string hashed to an array terms" do
|
206
|
-
Article.expects(:invoke).with(has_entry("query", "-#{Facet::GEO}:[CALIFORNIA
|
206
|
+
Article.expects(:invoke).with(has_entry("query", "-#{Facet::GEO}:[CALIFORNIA] -#{Facet::GEO}:[GREAT BRITAIN]"))
|
207
207
|
Article.search :except_facets => {Facet::GEO => ['CALIFORNIA', 'GREAT BRITAIN']}
|
208
208
|
end
|
209
209
|
|
@@ -225,7 +225,7 @@ class TestNytimes::TestArticles::TestArticle < Test::Unit::TestCase
|
|
225
225
|
f = Facet.new(Facet::GEO, 'CALIFORNIA', 2394)
|
226
226
|
f2 = Facet.new(Facet::GEO, 'IOWA', 12)
|
227
227
|
|
228
|
-
Article.expects(:invoke).with(has_entry("query", "-#{Facet::GEO}:[CALIFORNIA
|
228
|
+
Article.expects(:invoke).with(has_entry("query", "-#{Facet::GEO}:[CALIFORNIA] -#{Facet::GEO}:[IOWA]"))
|
229
229
|
Article.search :except_facets => [f, f2]
|
230
230
|
end
|
231
231
|
|
@@ -488,10 +488,22 @@ class TestNytimes::TestArticles::TestArticle < Test::Unit::TestCase
|
|
488
488
|
assert_equal false, article.free?
|
489
489
|
end
|
490
490
|
|
491
|
+
should "be true if returned as Y from the API" do
|
492
|
+
article = Article.init_from_api('fee' => 'Y')
|
493
|
+
assert_equal true, article.fee?
|
494
|
+
assert_equal false, article.free?
|
495
|
+
end
|
496
|
+
|
491
497
|
should "default to false if not specified in the hash" do
|
492
498
|
assert_equal false, @article.fee?
|
493
499
|
assert_equal true, @article.free?
|
494
500
|
end
|
501
|
+
|
502
|
+
should "default to false if returned as N from the API" do
|
503
|
+
article = Article.init_from_api('fee' => 'N')
|
504
|
+
assert_equal false, article.fee?
|
505
|
+
assert_equal true, article.free?
|
506
|
+
end
|
495
507
|
end
|
496
508
|
|
497
509
|
context "@url" do
|
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.
|
4
|
+
version: 0.2.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-02-
|
12
|
+
date: 2009-02-27 00:00:00 -08:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|