Sha256: fd7bcf0b999d52529d4f84510ddff8ee5c8f8337e374dc4551a8a1a9c20013d0
Contents?: true
Size: 1.5 KB
Versions: 1
Compression:
Stored size: 1.5 KB
Contents
module Inch class Config # Stores the configuration for an individual single codebase class Codebase attr_reader :included_files attr_reader :excluded_files YAML_FILE = ".inch.yml" def initialize(included = nil, excluded = nil) @included_files = included || [] @excluded_files = excluded || [] end # Returns the contents of +dir+/.inch.yml, if present. # Returns nil otherwise. # # @param dir [String] # @return [Hash,nil] def self.yaml(dir) yaml_file = File.join(dir, YAML_FILE) YAML.load(File.read(yaml_file)) if File.exist?(yaml_file) end def update(&block) instance_eval(&block) end def update_via_yaml(dir) if yaml = self.class.yaml(dir) old_dir = Dir.pwd Dir.chdir dir update_files yaml["files"] Dir.chdir old_dir end end def include_files(*files) @included_files.concat(files).flatten! end def exclude_files(*files) @excluded_files.concat(files).flatten! end private def expand_files(files) files.map do |f| case f when String f =~ /[\*\{]/ ? Dir[f] : f else f end end.flatten end def update_files(files) return if files.nil? include_files expand_files(files["included"]) exclude_files expand_files(files["excluded"]) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
inch-0.3.2.rc1 | lib/inch/config/codebase.rb |