class ConfigKit::Data::GitLoader

Attributes

clone_path[R]

Public Class Methods

loader() click to toggle source
# File lib/config_kit/data/loaders/git_loader.rb, line 5
def self.loader; "git"; end
new(uri_kls, env, app, version) click to toggle source
# File lib/config_kit/data/loaders/git_loader.rb, line 7
def initialize(uri_kls, env, app, version)
  @uri_kls, @env, @app, @version = uri_kls, env, app, version
  @clone_path = Dir.mktmpdir
  @file_path = "file://#{@clone_path}"
  @file_kls = URI.parse(@file_path)
  clone
end

Public Instance Methods

run(&block) click to toggle source
# File lib/config_kit/data/loaders/git_loader.rb, line 15
def run(&block)
  ConfigKit.logger.debug "Git is loading env(#{@env}) #{@app} from #{@uri_kls.to_s}"
  begin
    FileLoader.new(@file_kls, @env, @app, @version).run(&block)
  ensure
    FileUtils.rm_rf @clone_path
  end
end

Private Instance Methods

clone() click to toggle source
# File lib/config_kit/data/loaders/git_loader.rb, line 25
def clone
  ConfigKit.logger.debug "Git is cloning env(#{@env}) #{@app} from #{@uri_kls.to_s}"
  begin
    g = Git.clone(@uri_kls.to_s, @clone_path)
    tags =  g.tags.map { |t| t.name }
    raise GitLoaderError.new "Version(#{@version}) not found" unless tags.include?(@version)
    g.checkout(@version)
  rescue GitLoaderError => e
    raise GitLoaderError.new e.message
  rescue Exception => e
    raise GitLoaderError.new "Unknown error to load (#{@version}) in #{@uri_kls.to_s}"
  end
end