Module: Gemist

Defined in:
lib/gemist.rb

Overview

Gem environment manager.

Defined Under Namespace

Classes: Gem, Gemfile

Constant Summary collapse

VERSION =
"0.1.0"

Class Method Summary collapse

Class Method Details

.gemfileObject

Returns the Gemfile for the current project.



41
42
43
# File 'lib/gemist.rb', line 41

def self.gemfile
  @@gemfile ||= Gemfile.load
end

.require(env = ENV['RACK_ENV']) ⇒ Object

Loads the gems via require.



12
13
14
15
16
# File 'lib/gemist.rb', line 12

def self.require(env=ENV['RACK_ENV'])
  load_rubygems
  setup env
  gemfile.gems_for(env).each { |g| g.require! }
end

.setup(env = ENV['RACK_ENV']) ⇒ Object

Loads the gems for a given environment.



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/gemist.rb', line 19

def self.setup(env=ENV['RACK_ENV'])
  @fail = Array.new

  gemfile.gems_for(env).each do |g|
    g.load! or @fail << g
  end

  if @fail.any?
    commands = @fail.map { |g| g.to_command }.compact
    list     = commands.map { |cmd| "gem install #{cmd}" }

    if list.any?
      $stderr << "Some gems failed to load. Try:\n\n"
      $stderr << "#{list.join("\n")}\n\n"
    end

    print_errors_for(@fail)
    exit 256
  end
end

.versionObject



7
8
9
# File 'lib/gemist.rb', line 7

def self.version
  VERSION
end