class Gitload::Config
Attributes
cache[RW]
clear_cache[RW]
clone_url_type[RW]
dry_run[RW]
root[RW]
Public Class Methods
new(options = {})
click to toggle source
# File lib/gitload/config.rb, line 11 def initialize options = {} @root = options[:root] @cache = options.cache @clear_cache = options.clear_cache @dry_run = options.dry_run @clone_url_type = options[:clone_url_type] end
Public Instance Methods
apply()
click to toggle source
# File lib/gitload/config.rb, line 19 def apply filename = File.expand_path '~/.gitload.rb' DSL.new(self).instance_eval File.read(filename), filename end
clone_options()
click to toggle source
# File lib/gitload/config.rb, line 24 def clone_options { dry_run: @dry_run, clone_url_type: @clone_url_type } end
delete(relative_path)
click to toggle source
# File lib/gitload/config.rb, line 60 def delete relative_path FileUtils.rm_f data_file(relative_path) end
load(relative_path)
click to toggle source
# File lib/gitload/config.rb, line 49 def load relative_path file = data_file relative_path File.exist?(file) ? JSON.parse(File.read(file)) : nil end
load_or_cache_data(relative_path) { || ... }
click to toggle source
# File lib/gitload/config.rb, line 31 def load_or_cache_data relative_path delete relative_path if @clear_cache if @cache data = self.load relative_path end unless data data = yield end if @cache save relative_path, data end data end
save(relative_path, contents)
click to toggle source
# File lib/gitload/config.rb, line 54 def save relative_path, contents file = data_file relative_path FileUtils.mkdir_p File.dirname(file) File.open(file, 'w'){ |f| f.write JSON.dump(contents) } end
Private Instance Methods
data_dir()
click to toggle source
# File lib/gitload/config.rb, line 123 def data_dir File.join File.expand_path('~'), '.gitload' end
data_file(relative_path)
click to toggle source
# File lib/gitload/config.rb, line 119 def data_file relative_path File.join data_dir, "#{relative_path}.json" end