History

Set the default FileScraper::base_url to localhost

Thibaut committed 12 years ago

Commit 9089d031 parent 5c477522 files · +25 −13Browse files

Unified · Split

2 files
  1. lib/docs/core/scrapers/file_scraper.rb +9 −2
  2. test/lib/docs/core/scrapers/file_scraper_test.rb +16 −11
lib/docs/core/scrapers/file_scraper.rb+9−2
@@ -4,16 +4,23 @@ module Docs · 3 unmodified lines
44
55 class << self
66 attr_accessor :dir
7+
8+ def inherited(subclass)
9+ super
10+ subclass.base_url = base_url
11+ end
712 end
813
14+ self.base_url = 'http://localhost/'
15+
916 private
1017
1118 def request_one(url)
1219 Response.new read_file(file_path_for(url)), URL.parse(url)
1320 end
1421
15− def request_all(start_url)
16− queue = [start_url]
22+ def request_all(url)
23+ queue = [url]
1724 until queue.empty?
1825 result = yield request_one(queue.shift)
1926 queue.concat(result) if result.is_a? Array
test/lib/docs/core/scrapers/file_scraper_test.rb+16−11
@@ -3,8 +3,7 @@ require 'docs' · 2 unmodified lines
33
44 class FileScraperTest < MiniTest::Spec
55 class Scraper < Docs::FileScraper
6− self.dir = '/dir'
7− self.base_url = 'http://example.com'
6+ self.dir = '/'
87 self.html_filters = Docs::FilterStack.new
98 self.text_filters = Docs::FilterStack.new
109 end
@@ -17,19 +16,30 @@ class FileScraperTest < MiniTest::Spec · 6 unmodified lines
1716 OpenStruct.new body: 'body', url: Docs::URL.parse(Scraper.base_url)
1817 end
1918
19+ describe ".inherited" do
20+ it "sets .base_url" do
21+ assert_equal Scraper.base_url, Class.new(Scraper).base_url
22+ end
23+ end
24+
2025 describe "#request_one" do
21− let :url do
22− File.join(Scraper.base_url, 'path')
26+ let :path do
27+ File.join(Scraper.dir, 'path')
2328 end
2429
2530 let :result do
26− scraper.send :request_one, url
31+ scraper.send :request_one, path
2732 end
2833
2934 before do
3035 stub(scraper).read_file
3136 end
3237
38+ it "reads a file" do
39+ mock(scraper).read_file(path)
40+ result
41+ end
42+
3343 describe "the returned response object" do
3444 it "has a #body" do
3545 stub(scraper).read_file { 'body' }
@@ -37,15 +47,10 @@ class FileScraperTest < MiniTest::Spec · 1 unmodified line
3747 end
3848
3949 it "has a #url" do
40− assert_equal url, result.url.to_s
50+ assert_equal path, result.url.to_s
4151 assert_instance_of Docs::URL, result.url
4252 end
4353 end
44−
45− it "reads .dir/path when the url is .base_url/path" do
46− stub(scraper).read_file(File.join(Scraper.dir, 'path')) { 'test' }
47− assert_equal 'test', result.body
48− end
4954 end
5055
5156 describe "#request_all" do