Module: MetricFu::Io::FileSystem
- Defined in:
- lib/metric_fu/io.rb
Overview
TODO: Move this module / functionality elsewhere and make less verbose
Class Method Summary collapse
- .artifact_dir ⇒ Object
- .artifact_dir=(artifact_dir) ⇒ Object
- .create_directories(*dirs) ⇒ Object
- .default_artifact_dir ⇒ Object
- .directories ⇒ Object
- .directory(name) ⇒ Object
- .file_globs_to_ignore ⇒ Object
- .scratch_directory(name) ⇒ Object
-
.set_code_dirs ⇒ Object
Add the ‘app’ directory if we’re running within rails.
- .set_directories ⇒ Object
Class Method Details
.artifact_dir ⇒ Object
11 12 13 |
# File 'lib/metric_fu/io.rb', line 11 def self.artifact_dir (ENV["CC_BUILD_ARTIFACTS"] || @artifact_dir) end |
.artifact_dir=(artifact_dir) ⇒ Object
14 15 16 |
# File 'lib/metric_fu/io.rb', line 14 def self.artifact_dir=(artifact_dir) @artifact_dir = artifact_dir end |
.create_directories(*dirs) ⇒ Object
52 53 54 55 56 57 58 |
# File 'lib/metric_fu/io.rb', line 52 def create_directories(*dirs) # due to behavior differences between ruby 1.8.7 and 1.9.3 # this is good enough for now Array(*dirs).each do |dir| MetricFu::Utility.mkdir_p dir end end |
.default_artifact_dir ⇒ Object
8 9 10 |
# File 'lib/metric_fu/io.rb', line 8 def self.default_artifact_dir @default_artifact_dir end |
.directories ⇒ Object
21 22 23 |
# File 'lib/metric_fu/io.rb', line 21 def directories @directories ||= {} end |
.directory(name) ⇒ Object
25 26 27 |
# File 'lib/metric_fu/io.rb', line 25 def directory(name) directories.fetch(name) { raise "No such directory configured: #{name}" } end |
.file_globs_to_ignore ⇒ Object
33 34 35 |
# File 'lib/metric_fu/io.rb', line 33 def file_globs_to_ignore @file_globs_to_ignore ||= [] end |
.scratch_directory(name) ⇒ Object
29 30 31 |
# File 'lib/metric_fu/io.rb', line 29 def scratch_directory(name) File.join(directory("scratch_directory"), name.to_s) end |
.set_code_dirs ⇒ Object
Add the ‘app’ directory if we’re running within rails.
61 62 63 |
# File 'lib/metric_fu/io.rb', line 61 def set_code_dirs @directories["code_dirs"] = %w(app lib).select { |dir| Dir.exist?(dir) } end |
.set_directories ⇒ Object
37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/metric_fu/io.rb', line 37 def set_directories @directories = {} @directories["base_directory"] = MetricFu.artifact_dir @directories["scratch_directory"] = MetricFu.scratch_dir @directories["output_directory"] = MetricFu.output_dir @directories["data_directory"] = MetricFu.data_dir create_directories @directories.values @directories["root_directory"] = MetricFu.root_dir # TODO Though this is true of the general AwesomeTemplate, it is not necessarily true of templates within each Metric. Each metric should probably know how to use AwesomeTemplate (or whatever) @directories["template_directory"] = File.join(@directories.fetch("root_directory"), "lib", "templates") @file_globs_to_ignore = [] set_code_dirs end |