busk-ruby-readability 1.1.1 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -216,4 +216,49 @@ describe Readability do
216
216
 
217
217
  end
218
218
 
219
+ describe "handles portal o dia" do
220
+
221
+ it "should extract the news and images from the page" do
222
+ url = "http://portalodia.com/noticias/piaui/mais-de-um-veiculo-e-roubado-por-dia-na-capital-102189.html"
223
+ FakeWeb.register_uri(:get, url,
224
+ :response => File.read("spec/fixtures/portalodia_photo.html"))
225
+ @uri = URI.parse(url)
226
+ @parsed_page = Readability::Document.new(Nokogiri::HTML(open(url)),
227
+ @uri.host, @uri.request_uri)
228
+ @content = @parsed_page.content
229
+
230
+ @content.should == "<p>\"A gente fica se sentindo impotente. N\303\243o sabe o que fazer\". Foi esse o sentimento que a jornalista Vanessa Viana teve ao saber que o seu carro havia sido levado por um assaltante no bairro Bela Vista, zona Sul de Teresina, no \303\272ltimo dia 29. Assim como Vanessa, de acordo com um levantamento do Comando de Policiamento da Capital da Pol\303\255cia Militar, outras 45 pessoas<br>tiveram seus ve\303\255culos (carros e motocicletas) roubados ou furtados em janeiro deste ano. O n\303\272mero representa uma m\303\251dia de 1,5 ve\303\255culos levados por bandidos diariamente na capital no per\303\255odo.</p><p>\"Eu tinha comprado o carro h\303\241 quatro meses apenas. Quando me falaram, na delegacia, que o assaltante j\303\241 era procurado pela pol\303\255cia, fiquei assustada. Afinal, uma pessoa que podia estar presa levou meu carro\", afirma Vanessa Viana. A jornalista conta que o carro, um Uno Mille novo, na noite em que foi roubado estava estacionado em uma rua no bairro Bela Vista em Teresina. No local, o seu cunhado que dirigia o ve\303\255culo participava de um encontro de jovens da Igreja do bairro.</p><p><img src=\"/media/uploads/filebrowser/moto1.jpg\" alt=\"\" width=\"510\" height=\"339\"></p>"
231
+ end
232
+
233
+ it "should extract the news from the page" do
234
+ FakeWeb.register_uri(:get, 'http://portalodia.com/noticias/mundo/homem-chama-a-policia-porque-nao-quer-fazer-sexo-com-a-mulher-100984.html',
235
+ :response => File.read("spec/fixtures/portalodia.com.html"))
236
+ @uri = URI.parse("http://portalodia.com/noticias/mundo/homem-chama-a-policia-porque-nao-quer-fazer-sexo-com-a-mulher-100984.html")
237
+ @parsed_page = Readability::Document.new(Nokogiri::HTML(open('http://portalodia.com/noticias/mundo/homem-chama-a-policia-porque-nao-quer-fazer-sexo-com-a-mulher-100984.html')),
238
+ @uri.host, @uri.request_uri)
239
+ @content = @parsed_page.content
240
+
241
+ @content.should == "<p>A pol\303\255cia alem\303\243 informou nesta ter\303\247a-feira que recebeu um chamado no m\303\255nimo inusitado. Um homem da cidade de Waiblingen, distrito de Stuttgart, ligou para os policiais porque n\303\243o queria mais fazer sexo com sua mulher.</p><p>De acordo com ele, apesar de recusar seguidamente as ofertas, ela continua insistindo e n\303\243o o\302\240deixa dormir. O casal, que tem dois filhos, est\303\241 junto h\303\241 18 anos, mas j\303\241 n\303\243o dorme na mesma cama h\303\241 quatro.\302\240</p><p>Embora o caso seja curioso, n\303\243o \303\251 in\303\251dito no pa\303\255s europeu. Em 2006, a pol\303\255cia de Aachen, oeste da Alemanha, foi acionada por uma mulher que acusava o marido de n\303\243o cumprir suas obriga\303\247\303\265es conjugais.</p><p>Na ocasi\303\243o, ap\303\263s meses sem nenhum contato f\303\255sico, ela acordou no meio da madrugada e exigiu que o c\303\264njuge satisfizesse suas necessidades sexuais. Frustrada por ter seu pedido negado, ela acionou os agentes, que nada puderam fazer.</p><p>O porta voz da pol\303\255cia, Paul Kemen, explicou \303\240 \303\251poca que os policiais n\303\243o se sentiram capazes de resolver o caso. \"O que eles puderam fazer foi abrir uma ocorr\303\252ncia para o caso de uma poss\303\255vel interven\303\247\303\243o futura\", disse.\302\240</p>"
242
+ end
243
+ end
244
+
245
+ describe "#has_special_rule?" do
246
+ it "should return true when I have a special rule" do
247
+ url = "http://portalodia.com/noticias/piaui/mais-de-um-veiculo-e-roubado-por-dia-na-capital-102189.html"
248
+ FakeWeb.register_uri(:get, url,
249
+ :response => File.read("spec/fixtures/portalodia_photo.html"))
250
+ @uri = URI.parse(url)
251
+ @parsed_page = Readability::Document.new(Nokogiri::HTML(open(url)), @uri.host, @uri.request_uri)
252
+ @parsed_page.has_special_rule?.should be_true
253
+ end
254
+
255
+ it "should return false when I don't have a special rule" do
256
+ url = "http://globoesporte.globo.com/futebol/times/internacional/noticia/2011/02/inter-ainda-aguarda-sinal-verde-da-fifa-para-cavenaghi-ser-relacionado.html"
257
+ FakeWeb.register_uri(:get, url,
258
+ :response => File.read("spec/fixtures/portalodia_photo.html"))
259
+ @uri = URI.parse(url)
260
+ @parsed_page = Readability::Document.new(Nokogiri::HTML(open(url)), @uri.host, @uri.request_uri)
261
+ @parsed_page.has_special_rule?.should be_false
262
+ end
263
+ end
219
264
  end
data/special_rules.yml ADDED
@@ -0,0 +1,5 @@
1
+ sites:
2
+ "portalodia.com":
3
+ name: Portal O Dia
4
+ css: "#content-noticia p"
5
+
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: busk-ruby-readability
3
3
  version: !ruby/object:Gem::Version
4
- hash: 17
4
+ hash: 31
5
5
  prerelease: false
6
6
  segments:
7
7
  - 1
8
- - 1
9
- - 1
10
- version: 1.1.1
8
+ - 2
9
+ - 0
10
+ version: 1.2.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Fabio Mont Alegre
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2011-01-28 00:00:00 -02:00
19
+ date: 2011-02-11 00:00:00 -02:00
20
20
  default_executable:
21
21
  dependencies: []
22
22
 
@@ -37,6 +37,8 @@ files:
37
37
  - ruby-readability.gemspec
38
38
  - spec/fixtures/cant_read.html
39
39
  - spec/fixtures/folha.html
40
+ - spec/fixtures/portalodia.com.html
41
+ - spec/fixtures/portalodia_photo.html
40
42
  - spec/fixtures/sample.html
41
43
  - spec/fixtures/samples/channel4-1-fragments.rb
42
44
  - spec/fixtures/samples/channel4-1.html
@@ -47,6 +49,7 @@ files:
47
49
  - spec/readability_spec.rb
48
50
  - spec/spec.opts
49
51
  - spec/spec_helper.rb
52
+ - special_rules.yml
50
53
  - test_on_url.rb
51
54
  has_rdoc: true
52
55
  homepage: http://github.com/busk/ruby-readability
@@ -85,6 +88,8 @@ summary: A rewrite of original ruby-readability
85
88
  test_files:
86
89
  - spec/fixtures/cant_read.html
87
90
  - spec/fixtures/folha.html
91
+ - spec/fixtures/portalodia.com.html
92
+ - spec/fixtures/portalodia_photo.html
88
93
  - spec/fixtures/sample.html
89
94
  - spec/fixtures/samples/channel4-1-fragments.rb
90
95
  - spec/fixtures/samples/channel4-1.html