spix_parser 1.7.6 → 1.7.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -41,8 +41,33 @@ module Spix
41
41
  text
42
42
  end
43
43
 
44
+ def publisher_special_case(options)
45
+ text = options[:text]
46
+ url = options[:url]
47
+ begin
48
+ case publisher = URI.parse(url).host
49
+ when /ig\.com/
50
+ strip_tags(text, 'span', :class => 'inclusion')
51
+ else
52
+ text
53
+ end
54
+ rescue
55
+ text
56
+ end
57
+ end
58
+
44
59
  private
45
60
 
61
+ def strip_tags(text, tag, attrs)
62
+ attr_parts = attrs.map{ |t|
63
+ %r{#{t.first.to_s}=['"]#{t.last.to_s}['"]}
64
+ }
65
+ tag_regexp = %r{<#{tag}.*?/#{tag}>}
66
+ text.gsub(tag_regexp) do |s|
67
+ s unless attr_parts.all? {|reg| reg =~ s}
68
+ end
69
+ end
70
+
46
71
  def join_attributes(attrs)
47
72
  attrs.map do |attr, value|
48
73
  %Q[#{attr}="#{value.to_s}"] unless value.blank?
@@ -4,7 +4,7 @@ module Spix
4
4
  module Version
5
5
  MAJOR = 1
6
6
  MINOR = 7
7
- TINY = 6
7
+ TINY = 7
8
8
 
9
9
  def self.current_version
10
10
  "#{MAJOR}.#{MINOR}.#{TINY}"
@@ -58,6 +58,7 @@ module Spix
58
58
  text = Sanitizer.strip_comments(text)
59
59
  text = Sanitizer.strip_disallowed_tags(text)
60
60
  text = Sanitizer.entities_to_chars(text)
61
+ text = Spix::Utils.publisher_special_case :text => text, :url => @feed.url
61
62
  Spix::Utils.format_links({:text => text, :site_url => @feed.site_url})
62
63
  end
63
64
  memoize(:content)
@@ -35,6 +35,10 @@ module Spix
35
35
  @feed.feed_url
36
36
  end
37
37
 
38
+ def url
39
+ @feed.url
40
+ end
41
+
38
42
  def uid
39
43
  @feed.feed_url.to_sha1
40
44
  end
@@ -2,6 +2,23 @@
2
2
  require 'spec_helper'
3
3
 
4
4
  describe Spix::Utils do
5
+ describe ".publisher_special_case" do
6
+ context "when ig publisher" do
7
+ it "should extract all span.inclusion tags" do
8
+ text = %{
9
+ <![CDATA[
10
+ <p>National Geographic</p>Chimpanzé passa de geração a geração os truques para caçar cupins usando ferramentas<p><img src=http://i0.ig.com/bancodeimagens/38/8z/o6/388zo6avp3myfcfn7k8bsjupj.jpg /></p><p>Foto: Ian Nichols / National Geographic Image Sales</p><p><span id="_CSEMBEDTYPE_=inclusion&_PAGENAME_=ultimosegundo%2FMiGComponente_C%2FConteudoRelacionadoFoto&_cid_=1597176997854 &_c_=MiGComponente_C" class="inclusion">_CSEMBEDTYPE_=inclusion&_PAGENAME_=ultimosegundo%2FMiGComponente_C%2FConteudoRelacionadoFoto&_cid_=1597176997854 &_c_=MiGComponente_C</span>Para caçar um lanche de alto valor proteico, um chimpanzé macho se aproxima de um cupinzeiro com um graveto para caçar os insetos. Chimpanzé caçando cupins com pedaços de madeira tem sido observado por toda a África, mas os macacos do triângulo de Goualougo transmitem seu conhecimento de geração a geração.</p>
11
+ ]]>
12
+ }
13
+ Spix::Utils.publisher_special_case(:text => text, :url => "http://ultimosegundo.ig.com.br/").should == %{
14
+ <![CDATA[
15
+ <p>National Geographic</p>Chimpanzé passa de geração a geração os truques para caçar cupins usando ferramentas<p><img src=http://i0.ig.com/bancodeimagens/38/8z/o6/388zo6avp3myfcfn7k8bsjupj.jpg /></p><p>Foto: Ian Nichols / National Geographic Image Sales</p><p>Para caçar um lanche de alto valor proteico, um chimpanzé macho se aproxima de um cupinzeiro com um graveto para caçar os insetos. Chimpanzé caçando cupins com pedaços de madeira tem sido observado por toda a África, mas os macacos do triângulo de Goualougo transmitem seu conhecimento de geração a geração.</p>
16
+ ]]>
17
+ }
18
+ end
19
+ end
20
+ end
21
+
5
22
  describe ".format_links" do
6
23
  context "html containing links" do
7
24
 
@@ -0,0 +1,11 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+
4
+ describe Spix::Parser::Feed do
5
+ describe '#url' do
6
+ it 'should return the same url from feed' do
7
+ feed = Spix::Parser.parse(fixture('feed.rss'), :mode => :file)
8
+ feed.url.should == 'http://3den.org/component/content/frontpage'
9
+ end
10
+ end
11
+ end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: spix_parser
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 1.7.6
5
+ version: 1.7.7
6
6
  platform: ruby
7
7
  authors:
8
8
  - Marcio Lopes de Faria
@@ -11,7 +11,7 @@ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
13
 
14
- date: 2011-07-13 00:00:00 -03:00
14
+ date: 2011-08-25 00:00:00 -03:00
15
15
  default_executable:
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
@@ -116,6 +116,7 @@ files:
116
116
  - spec/spix_parser/tools/feed_discovery/feed_spec.rb
117
117
  - spec/spix_parser/tools/feed_discovery_spec.rb
118
118
  - spec/spix_parser/utils_spec.rb
119
+ - spec/spix_parser/wrappers/feed_spec.rb
119
120
  has_rdoc: true
120
121
  homepage: http://github.com/busk/spix_parser
121
122
  licenses: []
@@ -151,3 +152,4 @@ test_files:
151
152
  - spec/spix_parser/tools/feed_discovery/feed_spec.rb
152
153
  - spec/spix_parser/tools/feed_discovery_spec.rb
153
154
  - spec/spix_parser/utils_spec.rb
155
+ - spec/spix_parser/wrappers/feed_spec.rb