Class: Proof::Suite
- Inherits:
-
Object
- Object
- Proof::Suite
- Defined in:
- lib/proof/suite.rb
Instance Attribute Summary collapse
-
#files ⇒ Object
readonly
Returns the value of attribute files.
Class Method Summary collapse
- .default_device ⇒ Object
- .default_output ⇒ Object
- .flatten(args) ⇒ Object
- .glob(patterns, base_dir) ⇒ Object
- .run(*args) ⇒ Object
Instance Method Summary collapse
- #device ⇒ Object
-
#initialize(files, device = nil, output = nil) ⇒ Suite
constructor
A new instance of Suite.
- #output ⇒ Object
- #run ⇒ Object
Constructor Details
#initialize(files, device = nil, output = nil) ⇒ Suite
Returns a new instance of Suite.
16 17 18 19 20 |
# File 'lib/proof/suite.rb', line 16 def initialize(files, device = nil, output = nil) @files = files @device = device @output = output end |
Instance Attribute Details
#files ⇒ Object (readonly)
Returns the value of attribute files.
6 7 8 |
# File 'lib/proof/suite.rb', line 6 def files @files end |
Class Method Details
.default_device ⇒ Object
22 23 24 |
# File 'lib/proof/suite.rb', line 22 def self.default_device Output::Devices.build_device(:string_io, :name => :suite_results) end |
.default_output ⇒ Object
26 27 28 |
# File 'lib/proof/suite.rb', line 26 def self.default_output Proof::Output.instance end |
.flatten(args) ⇒ Object
64 65 66 67 68 69 70 |
# File 'lib/proof/suite.rb', line 64 def self.flatten(args) files = [] args.each do |pattern| files.concat pattern.is_a?(Array) ? pattern : [pattern] end files end |
.glob(patterns, base_dir) ⇒ Object
55 56 57 58 59 60 61 62 |
# File 'lib/proof/suite.rb', line 55 def self.glob(patterns, base_dir) files = [] patterns.each do |pattern| pattern = Pathname.new(pattern).absolute? ? pattern : File.join(base_dir, pattern) files.concat Dir.glob(pattern) end files end |
.run(*args) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/proof/suite.rb', line 30 def self.run(*args) device = default_device output = default_output if args.last.is_a? Hash opts = args.pop device = opts[:device] || device output = opts[:output] || output end base_dir = File.(File.dirname(caller[0])) file_patterns = flatten(args) files = glob(file_patterns, base_dir) if files.empty? output.summary "!! Suite has no files" return :failure end instance = new files, device, output results = instance.run Summary.output(results, output) end |
Instance Method Details
#device ⇒ Object
8 9 10 |
# File 'lib/proof/suite.rb', line 8 def device @device ||= self.class.default_device end |
#output ⇒ Object
12 13 14 |
# File 'lib/proof/suite.rb', line 12 def output @output ||= self.class.default_output end |
#run ⇒ Object
72 73 74 75 76 77 78 79 80 |
# File 'lib/proof/suite.rb', line 72 def run output.push_device(device) do files.each do |file| load file end end device.readlines end |