spix_parser 1.7.6 → 1.7.7
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/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
|