class Ecogem::Workspace

Public Class Methods

new(args, options = {}, &block) click to toggle source
# File lib/ecogem/workspace.rb, line 7
def initialize(args, options = {}, &block)
  @args = args || ::Ecogem::Cli::Args.new([])
  options = {}.merge(options)
  new_tmpdir do |dir|
    begin
      @workdir = dir
      block.call self
      unless options[:readonly]
        gitsfile.save
      end
    end
  end
end

Public Instance Methods

env() click to toggle source
# File lib/ecogem/workspace.rb, line 25
def env
  @env ||= ::Ecogem::Env.new(global_env, env_path)
end
gemfile() click to toggle source
# File lib/ecogem/workspace.rb, line 46
def gemfile
  @gemfile ||= ::Ecogem::Gemfile.new(gemfile_path)
end
gitsfile() click to toggle source
# File lib/ecogem/workspace.rb, line 29
def gitsfile
  @gitsfile ||= ::Ecogem::Gitsfile.new(nil, global_env.dir + '/gits/keys')
end
global_env() click to toggle source
# File lib/ecogem/workspace.rb, line 21
def global_env
  @global_env ||= ::Ecogem::Env.new(nil, ::File.expand_path(::Dir.home + '/.ecogem'))
end
new_tmpdir(&block) click to toggle source
# File lib/ecogem/workspace.rb, line 58
def new_tmpdir(&block)
  ::FileUtils.mkdir_p tmp_path unless ::File.exist?(tmp_path)
  ::Dir.mktmpdir(nil, tmp_path) do |dir|
    return block.call(dir)
  end
end

Private Instance Methods

env_path() click to toggle source
# File lib/ecogem/workspace.rb, line 33
        def env_path
  @env_path ||= begin
    path = ::File.expand_path(@args.options[:env] || ::File.dirname(gemfile_path) + '/.ecogem')
    raise "file exists: #{path}" if ::File.file?(path)
    ::FileUtils.mkdir_p path unless ::File.exist?(path)
    path
  end
end
gemfile_path() click to toggle source
# File lib/ecogem/workspace.rb, line 42
        def gemfile_path
  @gemfile_path ||= ::File.expand_path(@args.options[:gemfile] || ::Dir.pwd + '/Ecogemfile')
end
tmp_path() click to toggle source
# File lib/ecogem/workspace.rb, line 50
        def tmp_path
  @tmp_path ||= begin
    path = File.expand_path(@args.options[:tmpdir] || "#{env_path}/tmp")
    raise "file exists: #{path}" if ::File.file?(path)
    path
  end
end