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
4 4
5 class << self5 class << self
6 attr_accessor :dir6 attr_accessor :dir
7
8 def inherited(subclass)
9 super
10 subclass.base_url = base_url
11 end
7 end12 end
8 13
14 self.base_url = 'http://localhost/'
15
9 private16 private
10 17
11 def request_one(url)18 def request_one(url)
12 Response.new read_file(file_path_for(url)), URL.parse(url)19 Response.new read_file(file_path_for(url)), URL.parse(url)
13 end20 end
14 21
15 def request_all(start_url)22 def request_all(url)
16 queue = [start_url]23 queue = [url]
17 until queue.empty?24 until queue.empty?
18 result = yield request_one(queue.shift)25 result = yield request_one(queue.shift)
19 queue.concat(result) if result.is_a? Array26 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
3 3
4class FileScraperTest < MiniTest::Spec4class FileScraperTest < MiniTest::Spec
5 class Scraper < Docs::FileScraper5 class Scraper < Docs::FileScraper
6 self.dir = '/dir'6 self.dir = '/'
7 self.base_url = 'http://example.com'
8 self.html_filters = Docs::FilterStack.new7 self.html_filters = Docs::FilterStack.new
9 self.text_filters = Docs::FilterStack.new8 self.text_filters = Docs::FilterStack.new
10 end9 end
@@ -17,19 +16,30 @@ class FileScraperTest < MiniTest::Spec · 6 unmodified lines
17 OpenStruct.new body: 'body', url: Docs::URL.parse(Scraper.base_url)16 OpenStruct.new body: 'body', url: Docs::URL.parse(Scraper.base_url)
18 end17 end
19 18
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
20 describe "#request_one" do25 describe "#request_one" do
21 let :url do26 let :path do
22 File.join(Scraper.base_url, 'path')27 File.join(Scraper.dir, 'path')
23 end28 end
24 29
25 let :result do30 let :result do
26 scraper.send :request_one, url31 scraper.send :request_one, path
27 end32 end
28 33
29 before do34 before do
30 stub(scraper).read_file35 stub(scraper).read_file
31 end36 end
32 37
38 it "reads a file" do
39 mock(scraper).read_file(path)
40 result
41 end
42
33 describe "the returned response object" do43 describe "the returned response object" do
34 it "has a #body" do44 it "has a #body" do
35 stub(scraper).read_file { 'body' }45 stub(scraper).read_file { 'body' }
@@ -37,15 +47,10 @@ class FileScraperTest < MiniTest::Spec · 1 unmodified line
37 end47 end
38 48
39 it "has a #url" do49 it "has a #url" do
40 assert_equal url, result.url.to_s50 assert_equal path, result.url.to_s
41 assert_instance_of Docs::URL, result.url51 assert_instance_of Docs::URL, result.url
42 end52 end
43 end53 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
49 end54 end
50 55
51 describe "#request_all" do56 describe "#request_all" do