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