Sha256: 5e92c87b8dd4b59b578b8e0cfebcfa8ad6464ae689ddafbfed2842a96b6004e3
Contents?: true
Size: 1.25 KB
Versions: 2
Compression:
Stored size: 1.25 KB
Contents
# Copyright (c) 2006 Michael Fellinger m.fellinger@gmail.com # All files in this distribution are subject to the terms of the Ruby license. require 'ramaze/spec/helper/wrap' class SpecLayout attr_accessor :base, :layout, :files def initialize(base, layout) @base, @layout = base, layout end def run SpecWrap.new(@files).run end def gather @files = gather_files(@base, @layout) end def gather_files(base, layout) files = Set.new base = File.expand_path(base) layout.each do |key, value| if value.is_a?(Hash) files += gather_files(base/key, value) else glob = base/key/"#{value}.rb" files += Dir[glob].map{|f| File.expand_path(f)} end end files.reject{|f| File.directory?(f)} end def clean @files = clean_files(@files, @layout) end def clean_files(files, layout) layout.each do |key, value| if value.is_a?(Hash) clean_files(files, value) elsif files files.dup.each do |file| name = File.basename(file, File.extname(file)) dir = file.gsub(File.extname(file), '') if name == key and File.directory?(dir) files.delete(file) end end end end files end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
ramaze-0.2.1 | lib/ramaze/spec/helper/layout.rb |
ramaze-0.2.0 | lib/ramaze/spec/helper/layout.rb |