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