Sha256: ed6e3e5830a1609df9835544dbb352bf5959a02f10ae0ed7865f2756ce18c62c
Contents?: true
Size: 1.1 KB
Versions: 4
Compression:
Stored size: 1.1 KB
Contents
require '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
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
ramaze-0.1.0 | spec/helper/layout.rb |
ramaze-0.1.3 | spec/helper/layout.rb |
ramaze-0.1.2 | spec/helper/layout.rb |
ramaze-0.1.1 | spec/helper/layout.rb |