ruby-readability 0.2.3 → 0.3.0.pre

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,7 @@
1
+ .DS_Store
2
+ .gem
3
+ .bundle
4
+ Gemfile.lock
5
+ pkg/*
6
+ .idea
7
+ .rvmrc
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in ruby-readability.gemspec
4
+ gemspec
data/README CHANGED
@@ -15,6 +15,30 @@ Example:
15
15
  source = open('http://lab.arc90.com/experiments/readability/').read
16
16
  puts Readability::Document.new(source).content
17
17
 
18
+ Options:
19
+
20
+ You may provide additions options to Readability::Document.new, including:
21
+
22
+ :tags - the base whitelist of tags to sanitize, defaults to %w[div p]
23
+ :remove_empty_nodes - remove <p> tags that have no text content; this will also remove p tags that contain only images
24
+ :attributes - whitelist of allowed attributes
25
+ :debug - provide debugging output, defaults false
26
+ :encoding - if this page is of a known encoding, you can specify it; if left unspecified, the encoding will be guessed (only in Ruby 1.9.x)
27
+ :html_headers - in Ruby 1.9.x these will be passed to the guess_html_encoding gem to aid with guessing the HTML encoding
28
+
29
+ Readability comes with a command-line tool for experimentation in bin/readability.
30
+
31
+ Usage: readability [options] URL
32
+ -d, --debug Show debug output
33
+ -i, --images Keep images and links
34
+ -h, --help Show this message
35
+
36
+ Potential issues:
37
+
38
+ * If you're on a Mac and are getting segmentation faults, see this discussion https://github.com/tenderlove/nokogiri/issues/404 and consider updating your version of libxml2.
39
+ Version 2.7.8 of libxml2 with the following worked for me:
40
+ gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.7.8/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.7.8/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26
41
+
18
42
  ===
19
43
 
20
44
  This code is under the Apache License 2.0. http://www.apache.org/licenses/LICENSE-2.0
data/Rakefile CHANGED
@@ -1,45 +1,6 @@
1
- require 'rubygems'
2
- require 'rake'
1
+ require "bundler/gem_tasks"
2
+ require 'rspec/core/rake_task'
3
3
 
4
- begin
5
- require 'jeweler'
6
- Jeweler::Tasks.new do |gem|
7
- gem.name = "ruby-readability"
8
- gem.summary = %Q{Port of arc90's readability project to ruby}
9
- gem.description = %Q{Port of arc90's readability project to ruby}
10
- gem.email = "andrew@iterationlabs.com"
11
- gem.homepage = "http://github.com/iterationlabs/ruby-readability"
12
- gem.authors = ["Andrew Cantino", "starrhorne", "libc", "Kyle Maxwell"]
13
- gem.add_development_dependency "rspec", ">= 1.2.9"
14
- gem.add_dependency 'nokogiri', '>= 1.4.2'
15
- end
16
- Jeweler::GemcutterTasks.new
17
- rescue LoadError
18
- puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
19
- end
20
-
21
- require 'spec/rake/spectask'
22
- Spec::Rake::SpecTask.new(:spec) do |spec|
23
- spec.libs << 'lib' << 'spec'
24
- spec.spec_files = FileList['spec/**/*_spec.rb']
25
- end
26
-
27
- Spec::Rake::SpecTask.new(:rcov) do |spec|
28
- spec.libs << 'lib' << 'spec'
29
- spec.pattern = 'spec/**/*_spec.rb'
30
- spec.rcov = true
31
- end
32
-
33
- task :spec => :check_dependencies
4
+ RSpec::Core::RakeTask.new(:spec)
34
5
 
35
6
  task :default => :spec
36
-
37
- require 'rake/rdoctask'
38
- Rake::RDocTask.new do |rdoc|
39
- version = File.exist?('VERSION') ? File.read('VERSION') : ""
40
-
41
- rdoc.rdoc_dir = 'rdoc'
42
- rdoc.title = "ruby-readability #{version}"
43
- rdoc.rdoc_files.include('README*')
44
- rdoc.rdoc_files.include('lib/**/*.rb')
45
- end
data/bin/readability CHANGED
@@ -2,12 +2,39 @@
2
2
  $KCODE='u'
3
3
  require 'rubygems'
4
4
  require 'open-uri'
5
+ require 'optparse'
5
6
  require File.dirname(__FILE__) + '/../lib/readability'
6
7
 
8
+ options = { :debug => false, :images => false }
9
+ options_parser = OptionParser.new do |opts|
10
+ opts.banner = "Usage: #{File.basename($0)} [options] URL"
11
+
12
+ opts.on("-d", "--debug", "Show debug output") do |v|
13
+ options[:debug] = v
14
+ end
15
+
16
+ opts.on("-i", "--images", "Keep images and links") do |i|
17
+ options[:images] = i
18
+ end
19
+
20
+ opts.on_tail("-h", "--help", "Show this message") do
21
+ puts opts
22
+ exit
23
+ end
24
+ end
25
+ options_parser.parse!
26
+
7
27
  if ARGV.length != 1
8
- STDERR.puts "Usage: #{File.basename($0)} URL"
28
+ STDERR.puts options_parser
9
29
  exit 1
10
30
  end
11
31
 
12
32
  text = open(ARGV.first).read
13
- puts Readability::Document.new(text).content
33
+ if options[:images]
34
+ puts Readability::Document.new(text, :tags => %w[div p img a],
35
+ :attributes => %w[src href],
36
+ :remove_empty_nodes => false,
37
+ :debug => options[:debug]).content
38
+ else
39
+ puts Readability::Document.new(text, :debug => options[:debug]).content
40
+ end
data/lib/readability.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require 'rubygems'
2
2
  require 'nokogiri'
3
+ require 'guess_html_encoding'
3
4
 
4
5
  module Readability
5
6
  class Document
@@ -8,14 +9,22 @@ module Readability
8
9
  :min_text_length => 25,
9
10
  :remove_unlikely_candidates => true,
10
11
  :weight_classes => true,
11
- :clean_conditionally => true
12
+ :clean_conditionally => true,
13
+ :remove_empty_nodes => true
12
14
  }.freeze
13
15
 
14
16
  attr_accessor :options, :html
15
17
 
16
18
  def initialize(input, options = {})
17
- @input = input.gsub(REGEXES[:replaceBrsRe], '</p><p>').gsub(REGEXES[:replaceFontsRe], '<\1span>')
18
19
  @options = DEFAULT_OPTIONS.merge(options)
20
+ @input = input
21
+
22
+ if RUBY_VERSION =~ /^1\.9\./ && !@options[:encoding]
23
+ @input = GuessHtmlEncoding.encode(@input, @options[:html_headers]) unless @options[:do_not_guess_encoding]
24
+ @options[:encoding] = @input.encoding.to_s
25
+ end
26
+
27
+ @input = @input.gsub(REGEXES[:replaceBrsRe], '</p><p>').gsub(REGEXES[:replaceFontsRe], '<\1span>')
19
28
  @remove_unlikely_candidates = @options[:remove_unlikely_candidates]
20
29
  @weight_classes = @options[:weight_classes]
21
30
  @clean_conditionally = @options[:clean_conditionally]
@@ -23,7 +32,7 @@ module Readability
23
32
  end
24
33
 
25
34
  def make_html
26
- @html = Nokogiri::HTML(@input, nil, 'UTF-8')
35
+ @html = Nokogiri::HTML(@input, nil, @options[:encoding])
27
36
  end
28
37
 
29
38
  REGEXES = {
@@ -221,7 +230,7 @@ module Readability
221
230
  # wrap text nodes in p tags
222
231
  # elem.children.each do |child|
223
232
  # if child.text?
224
- ## debug("wrapping text node with a p")
233
+ # debug("wrapping text node with a p")
225
234
  # child.swap("<p>#{child.text}</p>")
226
235
  # end
227
236
  # end
@@ -238,9 +247,11 @@ module Readability
238
247
  elem.remove
239
248
  end
240
249
 
241
- # remove empty <p> tags
242
- node.css("p").each do |elem|
243
- elem.remove if elem.content.strip.empty?
250
+ if @options[:remove_empty_nodes]
251
+ # remove <p> tags that have no text content - this will also remove p tags that contain only images.
252
+ node.css("p").each do |elem|
253
+ elem.remove if elem.content.strip.empty?
254
+ end
244
255
  end
245
256
 
246
257
  # Conditionally clean <table>s, <ul>s, and <div>s
@@ -259,7 +270,6 @@ module Readability
259
270
  base_replace_with_whitespace.each { |tag| replace_with_whitespace[tag] = true }
260
271
 
261
272
  ([node] + node.css("*")).each do |el|
262
-
263
273
  # If element is in whitelist, delete all its attributes
264
274
  if whitelist[el.node_name]
265
275
  el.attributes.each { |a, x| el.delete(a) unless @options[:attributes] && @options[:attributes].include?(a.to_s) }
@@ -267,10 +277,9 @@ module Readability
267
277
  # Otherwise, replace the element with its contents
268
278
  else
269
279
  if replace_with_whitespace[el.node_name]
270
- # Adding &nbsp; here, because swap removes regular spaaces
271
- el.swap('&nbsp;' << el.text << '&nbsp;')
280
+ el.swap(Nokogiri::XML::Text.new(' ' << el.text << ' ', el.document))
272
281
  else
273
- el.swap(el.text)
282
+ el.swap(Nokogiri::XML::Text.new(el.text, el.document))
274
283
  end
275
284
  end
276
285
 
@@ -0,0 +1 @@
1
+ require 'readability'
@@ -1,72 +1,24 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
1
  # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
5
3
 
6
4
  Gem::Specification.new do |s|
7
- s.name = %q{ruby-readability}
8
- s.version = "0.2.3"
9
-
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Andrew Cantino", "starrhorne", "libc", "Kyle Maxwell"]
12
- s.date = %q{2011-01-26}
13
- s.default_executable = %q{readability}
5
+ s.name = "ruby-readability"
6
+ s.version = '0.3.0.pre'
7
+ s.authors = ["Andrew Cantino", "starrhorne", "libc", "Kyle Maxwell"]
8
+ s.email = ["andrew@iterationlabs.com"]
9
+ s.homepage = "http://github.com/iterationlabs/ruby-readability"
10
+ s.summary = %q{Port of arc90's readability project to ruby}
14
11
  s.description = %q{Port of arc90's readability project to ruby}
15
- s.email = %q{andrew@iterationlabs.com}
16
- s.executables = ["readability"]
17
- s.extra_rdoc_files = [
18
- "README"
19
- ]
20
- s.files = [
21
- ".document",
22
- "README",
23
- "Rakefile",
24
- "VERSION",
25
- "bin/readability",
26
- "lib/readability.rb",
27
- "ruby-readability.gemspec",
28
- "spec/fixtures/cant_read.html",
29
- "spec/fixtures/sample.html",
30
- "spec/fixtures/samples/blogpost_with_links-fragments.rb",
31
- "spec/fixtures/samples/blogpost_with_links.html",
32
- "spec/fixtures/samples/channel4-1-fragments.rb",
33
- "spec/fixtures/samples/channel4-1.html",
34
- "spec/fixtures/samples/foxnews-india1-fragments.rb",
35
- "spec/fixtures/samples/foxnews-india1.html",
36
- "spec/fixtures/samples/globemail-ottawa-cuts-fragments.rb",
37
- "spec/fixtures/samples/globemail-ottawa-cuts.html",
38
- "spec/fixtures/should_not_truncate.txt",
39
- "spec/readability_spec.rb",
40
- "spec/spec.opts",
41
- "spec/spec_helper.rb"
42
- ]
43
- s.homepage = %q{http://github.com/iterationlabs/ruby-readability}
44
- s.require_paths = ["lib"]
45
- s.rubygems_version = %q{1.3.7}
46
- s.summary = %q{Port of arc90's readability project to ruby}
47
- s.test_files = [
48
- "spec/fixtures/samples/blogpost_with_links-fragments.rb",
49
- "spec/fixtures/samples/channel4-1-fragments.rb",
50
- "spec/fixtures/samples/foxnews-india1-fragments.rb",
51
- "spec/fixtures/samples/globemail-ottawa-cuts-fragments.rb",
52
- "spec/readability_spec.rb",
53
- "spec/spec_helper.rb"
54
- ]
55
12
 
56
- if s.respond_to? :specification_version then
57
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
58
- s.specification_version = 3
13
+ s.rubyforge_project = "ruby-readability"
59
14
 
60
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
61
- s.add_development_dependency(%q<rspec>, [">= 1.2.9"])
62
- s.add_runtime_dependency(%q<nokogiri>, [">= 1.4.2"])
63
- else
64
- s.add_dependency(%q<rspec>, [">= 1.2.9"])
65
- s.add_dependency(%q<nokogiri>, [">= 1.4.2"])
66
- end
67
- else
68
- s.add_dependency(%q<rspec>, [">= 1.2.9"])
69
- s.add_dependency(%q<nokogiri>, [">= 1.4.2"])
70
- end
71
- end
15
+ s.files = `git ls-files`.split("\n")
16
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
17
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
18
+ s.require_paths = ["lib"]
72
19
 
20
+ s.add_development_dependency "rspec", ">= 2.6"
21
+ s.add_development_dependency "rr", ">= 1.0"
22
+ s.add_dependency 'nokogiri', '>= 1.4.2'
23
+ s.add_dependency 'guess_html_encoding', '>= 0.0.2'
24
+ end
@@ -1,3 +1,4 @@
1
+ # encoding: UTF-8
1
2
  # This sample originally from http://softarhive.net
2
3
 
3
4
  $required_fragments = [
@@ -1,4 +1,4 @@
1
-
1
+ # encoding: UTF-8
2
2
  # This sample originally from http://www.channel4.com/news/articles/world/judge+rules+briton+can+be+forcefed/3578372
3
3
 
4
4
  $required_fragments = [
@@ -1,4 +1,4 @@
1
-
1
+ # encoding: UTF-8
2
2
  # This sample originally from http://www.foxnews.com/world/2010/05/14/police-killed-bus-touches-high-voltage-wire-central-india/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed:+foxnews/latest+(Text+-+Latest+Headlines)
3
3
 
4
4
  $required_fragments = [
@@ -1,4 +1,4 @@
1
-
1
+ # encoding: UTF-8
2
2
  # Originally from http://www.theglobeandmail.com/news/national/ottawa-cuts-already-vacant-positions/article1494400/
3
3
 
4
4
  $required_fragments = [
@@ -1,4 +1,6 @@
1
- require File.expand_path(File.join(File.dirname(__FILE__), "spec_helper"))
1
+ # encoding: UTF-8
2
+
3
+ require 'spec_helper'
2
4
 
3
5
  describe Readability do
4
6
  before do
@@ -115,11 +117,9 @@ describe Readability do
115
117
  b[:content_score] <=> a[:content_score]
116
118
  }.first[:elem][:id].should == "body"
117
119
  end
118
- end
119
120
 
120
- describe "score_paragraphs" do
121
121
  context "when two consequent br tags are used instead of p" do
122
- before :each do
122
+ it "should assign the higher score to the first paragraph in this particular example" do
123
123
  @doc = Readability::Document.new(<<-HTML)
124
124
  <html>
125
125
  <head>
@@ -140,9 +140,6 @@ describe Readability do
140
140
  </html>
141
141
  HTML
142
142
  @candidates = @doc.score_paragraphs(0)
143
- end
144
-
145
- it "should assign the higher score to the first paragraph in this particular example" do
146
143
  @candidates.values.sort_by { |a| -a[:content_score] }.first[:elem][:id].should == 'post1'
147
144
  end
148
145
  end
@@ -204,14 +201,13 @@ describe Readability do
204
201
  end
205
202
 
206
203
  it "should output expected fragments of text" do
207
-
208
204
  checks = 0
209
205
  @samples.each do |sample|
210
206
  html = File.read(File.dirname(__FILE__) + "/fixtures/samples/#{sample}.html")
211
207
  doc = Readability::Document.new(html).content
212
208
 
213
209
  load "fixtures/samples/#{sample}-fragments.rb"
214
- puts "testing #{sample}..."
210
+ #puts "testing #{sample}..."
215
211
 
216
212
  $required_fragments.each do |required_text|
217
213
  doc.should include(required_text)
@@ -223,7 +219,32 @@ describe Readability do
223
219
  checks += 1
224
220
  end
225
221
  end
226
- puts "Performed #{checks} checks."
222
+ #puts "Performed #{checks} checks."
223
+ end
224
+ end
225
+
226
+ describe "encoding guessing" do
227
+ if RUBY_VERSION =~ /^1\.9\./
228
+ context "with ruby 1.9.2" do
229
+ it "should correctly guess and enforce HTML encoding" do
230
+ doc = Readability::Document.new("<html><head><meta http-equiv='content-type' content='text/html; charset=LATIN1'></head><body><div>hi!</div></body></html>")
231
+ content = doc.content
232
+ content.encoding.to_s.should == "ISO-8859-1"
233
+ content.should be_valid_encoding
234
+ end
235
+
236
+ it "should allow encoding guessing to be skipped" do
237
+ do_not_allow(GuessHtmlEncoding).encode
238
+ doc = Readability::Document.new(@simple_html_fixture, :do_not_guess_encoding => true)
239
+ doc.content
240
+ end
241
+
242
+ it "should allow encoding guessing to be overridden" do
243
+ do_not_allow(GuessHtmlEncoding).encode
244
+ doc = Readability::Document.new(@simple_html_fixture, :encoding => "UTF-8")
245
+ doc.content
246
+ end
247
+ end
227
248
  end
228
249
  end
229
250
  end
data/spec/spec_helper.rb CHANGED
@@ -1,10 +1,7 @@
1
- $LOAD_PATH.unshift(File.dirname(__FILE__))
2
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
3
1
  require 'rubygems'
4
2
  require 'readability'
5
- require 'spec'
6
- require 'spec/autorun'
7
-
8
- Spec::Runner.configure do |config|
3
+ require 'rr'
9
4
 
5
+ RSpec.configure do |config|
6
+ config.mock_with :rr
10
7
  end
metadata CHANGED
@@ -1,15 +1,10 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: ruby-readability
3
- version: !ruby/object:Gem::Version
4
- hash: 17
5
- prerelease: false
6
- segments:
7
- - 0
8
- - 2
9
- - 3
10
- version: 0.2.3
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.3.0.pre
5
+ prerelease: 6
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Andrew Cantino
14
9
  - starrhorne
15
10
  - libc
@@ -17,57 +12,68 @@ authors:
17
12
  autorequire:
18
13
  bindir: bin
19
14
  cert_chain: []
20
-
21
- date: 2011-01-26 00:00:00 -08:00
22
- default_executable: readability
23
- dependencies:
24
- - !ruby/object:Gem::Dependency
15
+ date: 2011-10-26 00:00:00.000000000Z
16
+ dependencies:
17
+ - !ruby/object:Gem::Dependency
25
18
  name: rspec
19
+ requirement: &70185897981180 !ruby/object:Gem::Requirement
20
+ none: false
21
+ requirements:
22
+ - - ! '>='
23
+ - !ruby/object:Gem::Version
24
+ version: '2.6'
25
+ type: :development
26
26
  prerelease: false
27
- requirement: &id001 !ruby/object:Gem::Requirement
27
+ version_requirements: *70185897981180
28
+ - !ruby/object:Gem::Dependency
29
+ name: rr
30
+ requirement: &70185897980680 !ruby/object:Gem::Requirement
28
31
  none: false
29
- requirements:
30
- - - ">="
31
- - !ruby/object:Gem::Version
32
- hash: 13
33
- segments:
34
- - 1
35
- - 2
36
- - 9
37
- version: 1.2.9
32
+ requirements:
33
+ - - ! '>='
34
+ - !ruby/object:Gem::Version
35
+ version: '1.0'
38
36
  type: :development
39
- version_requirements: *id001
40
- - !ruby/object:Gem::Dependency
41
- name: nokogiri
42
37
  prerelease: false
43
- requirement: &id002 !ruby/object:Gem::Requirement
38
+ version_requirements: *70185897980680
39
+ - !ruby/object:Gem::Dependency
40
+ name: nokogiri
41
+ requirement: &70185897980220 !ruby/object:Gem::Requirement
44
42
  none: false
45
- requirements:
46
- - - ">="
47
- - !ruby/object:Gem::Version
48
- hash: 3
49
- segments:
50
- - 1
51
- - 4
52
- - 2
43
+ requirements:
44
+ - - ! '>='
45
+ - !ruby/object:Gem::Version
53
46
  version: 1.4.2
54
47
  type: :runtime
55
- version_requirements: *id002
48
+ prerelease: false
49
+ version_requirements: *70185897980220
50
+ - !ruby/object:Gem::Dependency
51
+ name: guess_html_encoding
52
+ requirement: &70185897979760 !ruby/object:Gem::Requirement
53
+ none: false
54
+ requirements:
55
+ - - ! '>='
56
+ - !ruby/object:Gem::Version
57
+ version: 0.0.2
58
+ type: :runtime
59
+ prerelease: false
60
+ version_requirements: *70185897979760
56
61
  description: Port of arc90's readability project to ruby
57
- email: andrew@iterationlabs.com
58
- executables:
62
+ email:
63
+ - andrew@iterationlabs.com
64
+ executables:
59
65
  - readability
60
66
  extensions: []
61
-
62
- extra_rdoc_files:
63
- - README
64
- files:
67
+ extra_rdoc_files: []
68
+ files:
65
69
  - .document
70
+ - .gitignore
71
+ - Gemfile
66
72
  - README
67
73
  - Rakefile
68
- - VERSION
69
74
  - bin/readability
70
75
  - lib/readability.rb
76
+ - lib/ruby-readability.rb
71
77
  - ruby-readability.gemspec
72
78
  - spec/fixtures/cant_read.html
73
79
  - spec/fixtures/sample.html
@@ -83,44 +89,42 @@ files:
83
89
  - spec/readability_spec.rb
84
90
  - spec/spec.opts
85
91
  - spec/spec_helper.rb
86
- has_rdoc: true
87
92
  homepage: http://github.com/iterationlabs/ruby-readability
88
93
  licenses: []
89
-
90
94
  post_install_message:
91
95
  rdoc_options: []
92
-
93
- require_paths:
96
+ require_paths:
94
97
  - lib
95
- required_ruby_version: !ruby/object:Gem::Requirement
98
+ required_ruby_version: !ruby/object:Gem::Requirement
96
99
  none: false
97
- requirements:
98
- - - ">="
99
- - !ruby/object:Gem::Version
100
- hash: 3
101
- segments:
102
- - 0
103
- version: "0"
104
- required_rubygems_version: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ! '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ required_rubygems_version: !ruby/object:Gem::Requirement
105
105
  none: false
106
- requirements:
107
- - - ">="
108
- - !ruby/object:Gem::Version
109
- hash: 3
110
- segments:
111
- - 0
112
- version: "0"
106
+ requirements:
107
+ - - ! '>'
108
+ - !ruby/object:Gem::Version
109
+ version: 1.3.1
113
110
  requirements: []
114
-
115
- rubyforge_project:
116
- rubygems_version: 1.3.7
111
+ rubyforge_project: ruby-readability
112
+ rubygems_version: 1.8.6
117
113
  signing_key:
118
114
  specification_version: 3
119
115
  summary: Port of arc90's readability project to ruby
120
- test_files:
116
+ test_files:
117
+ - spec/fixtures/cant_read.html
118
+ - spec/fixtures/sample.html
121
119
  - spec/fixtures/samples/blogpost_with_links-fragments.rb
120
+ - spec/fixtures/samples/blogpost_with_links.html
122
121
  - spec/fixtures/samples/channel4-1-fragments.rb
122
+ - spec/fixtures/samples/channel4-1.html
123
123
  - spec/fixtures/samples/foxnews-india1-fragments.rb
124
+ - spec/fixtures/samples/foxnews-india1.html
124
125
  - spec/fixtures/samples/globemail-ottawa-cuts-fragments.rb
126
+ - spec/fixtures/samples/globemail-ottawa-cuts.html
127
+ - spec/fixtures/should_not_truncate.txt
125
128
  - spec/readability_spec.rb
129
+ - spec/spec.opts
126
130
  - spec/spec_helper.rb
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 0.2.3