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.
data/lib/spix_parser/parser.rb
CHANGED
@@ -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?
|
data/lib/spix_parser/version.rb
CHANGED
@@ -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)
|
@@ -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.
|
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-
|
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
|