spec/spec_helper.rb in dokkit-0.3.0 vs spec/spec_helper.rb in dokkit-0.4.0
- old
+ new
@@ -3,59 +3,132 @@
# See 'dokkit.rb' or +LICENSE+ for licence information.
#
# (c)2006, 2007 Andrea Fazzi <andrea.fazzi@alca.le.it> (and contributors).
#
-module SpecPathHelper
- DATA_TEST_DIR = 'data/test_build'
- DATA_DEST_DIR = 'data'
- CACHE_PATH = '.cache'
- DOCUMENT_PATH = 'doc/pages'
- DATA_PATH = 'doc/data'
- CONFIG_PATH = 'doc/configs'
- LAYOUT_PATH = 'doc/layouts'
- TEMPLATE_PATH = 'templates'
- OUTPUT_PATH = 'output'
- def base_path(fn = '')
- File.join('.', fn)
+$LOAD_PATH.unshift(File.expand_path(File.join(File.dirname(__FILE__),'../lib')))
+
+require 'dokkit/hash'
+
+module SpecHelper
+ module Path
+ TEST_DATA = 'test_data'
+ DATA_DEST_DIR = 'data'
+ CACHE_PATH = '.cache'
+ DOCUMENT_PATH = 'doc/pages'
+ DATA_PATH = 'doc/data'
+ CONFIG_PATH = 'doc/configs'
+ LAYOUT_PATH = 'doc/layouts'
+ TEMPLATE_PATH = 'templates'
+ OUTPUT_PATH = 'output'
+ def base_path(fn = '')
+ File.join('.', fn)
+ end
+ def cache_path(fn = '')
+ File.join(base_path, CACHE_PATH, fn).sub(/^\.\//, '').sub(/\/$/, '')
+ end
+ def document_path(fn = '')
+ File.join(base_path, DOCUMENT_PATH, fn).sub(/^\.\//, '').sub(/\/$/, '')
+ end
+ def config_path(fn = '')
+ File.join(base_path, CONFIG_PATH, fn).sub(/^\.\//, '').sub(/\/$/, '')
+ end
+ def layout_path(fn = '')
+ File.join(base_path, LAYOUT_PATH, fn).sub(/^\.\//, '').sub(/\/$/, '')
+ end
+ def data_path(fn = '')
+ File.join(base_path, DATA_PATH, fn).sub(/^\.\//, '').sub(/\/$/, '')
+ end
+ def output_path(fn = '')
+ File.join(base_path, OUTPUT_PATH, fn).sub(/^\.\//, '').sub(/\/$/, '')
+ end
end
- def cache_path(fn = '')
- File.join(base_path, CACHE_PATH, fn).sub(/^\.\//, '').sub(/\/$/, '')
+ module Logger
+ def logger
+ mock('logger',
+ :info => nil,
+ :error => nil,
+ :warn => nil,
+ :debug => nil)
+ end
end
- def document_path(fn = '')
- File.join(base_path, DOCUMENT_PATH, fn).sub(/^\.\//, '').sub(/\/$/, '')
+ module Resource
+ include Path
+ def document_1
+ mock('document_1',
+ :source_fn => 'doc/pages/document_1',
+ :targets => { :html => nil, :text => nil },
+ :target_for => 'output/document_1.html',
+ :deps_for => ['doc/pages/document_1'],
+ :render => nil
+ )
+ end
+ def document_2
+ mock('document_2',
+ :source_fn => 'doc/pages/document_2',
+ :targets => { :html => nil },
+ :target_for => 'output/document_1.html',
+ :deps_for => ['doc/pages/document_2'],
+ :render => nil
+ )
+ end
+ def data_1
+ mock('data_1',
+ :target_fn => 'output/data_1',
+ :source_fn => 'doc/data/data_1'
+ )
+ end
+ def resource_factory
+ mock('resource_factory')
+ end
+ def filter_factory
+ mock('filter_factory')
+ end
end
- def config_path(fn = '')
- File.join(base_path, CONFIG_PATH, fn).sub(/^\.\//, '').sub(/\/$/, '')
+ module Cache
+ def cache
+ mock('cache', :load => nil,
+ :deps => { },
+ :add_dependency => nil)
+ end
end
- def layout_path(fn = '')
- File.join(base_path, LAYOUT_PATH, fn).sub(/^\.\//, '').sub(/\/$/, '')
+ module Configuration
+ def configuration
+ { :document_dir => 'doc/pages',
+ :data_dir => 'doc/data',
+ :layout_dir => 'doc/layouts',
+ :config_dir => 'doc/configs',
+ :cache_dir => '.cache',
+ :output_dir => 'output'
+ }
+ end
+ def merge_hashes(*hashes)
+ config = { }
+ hashes.each do |hash|
+ config.recursive_merge!(YAML::load(File.read(hash))) if File.exists?(hash.to_s)
+ config.recursive_merge!(hash) if hash.is_a?(Hash)
+ end
+ config.delete('config')
+ config
+ end
end
- def data_path(fn = '')
- File.join(base_path, DATA_PATH, fn).sub(/^\.\//, '').sub(/\/$/, '')
+ module CaptureOutput
+ def capture_stdout
+ s = StringIO.new
+ oldstdout = $stdout
+ $stdout = s
+ yield
+ s.string
+ ensure
+ $stdout = oldstdout
+ end
+ def capture_stderr
+ s = StringIO.new
+ oldstdout = $stderr
+ $stderr = s
+ yield
+ s.string
+ ensure
+ $stderr = oldstdout
+ end
end
- def output_path(fn = '')
- File.join(base_path, OUTPUT_PATH, fn).sub(/^\.\//, '').sub(/\/$/, '')
- end
end
-
-module CaptureStdout
- def capture_stdout
- s = StringIO.new
- oldstdout = $stdout
- $stdout = s
- yield
- s.string
- ensure
- $stdout = oldstdout
- end
- def capture_stderr
- s = StringIO.new
- oldstdout = $stderr
- $stderr = s
- yield
- s.string
- ensure
- $stderr = oldstdout
- end
-end
-