Class: Gemist::Gem

Inherits:
Object
  • Object
show all
Defined in:
lib/gemist.rb

Overview

A Gem in the gemfile.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Gem

Returns a new instance of Gem.



175
176
177
# File 'lib/gemist.rb', line 175

def initialize(options={})
  update options
end

Instance Attribute Details

#errorObject (readonly)

Returns the value of attribute error.



173
174
175
# File 'lib/gemist.rb', line 173

def error
  @error
end

#groupObject

Returns the value of attribute group.



172
173
174
# File 'lib/gemist.rb', line 172

def group
  @group
end

#nameObject

Returns the value of attribute name.



169
170
171
# File 'lib/gemist.rb', line 169

def name
  @name
end

#requireObject

Returns the value of attribute require.



171
172
173
# File 'lib/gemist.rb', line 171

def require
  @require
end

#versionsObject

Returns the value of attribute versions.



170
171
172
# File 'lib/gemist.rb', line 170

def versions
  @versions
end

Instance Method Details

#load!Object

Activates the gem; returns false if it’s not available.



188
189
190
191
192
193
194
# File 'lib/gemist.rb', line 188

def load!
  ::Gem.activate name, *versions
  true
rescue ::Gem::LoadError => e
  @error = e
  false
end

#require!Object

Loads the gem via require. Make sure you load! it first. Returns true if loaded.



198
199
200
# File 'lib/gemist.rb', line 198

def require!
  [*require].each { |r| Kernel.require r  if r }
end

#to_commandObject

Returns the gem install paramaters needed to install the gem.



203
204
205
206
207
208
209
# File 'lib/gemist.rb', line 203

def to_command
  if error
    [error.name, *version_join(error.requirement.to_s.split(', '))].join(' ')  if error.name
  else
    [name, version_join(versions)].compact.join ' '
  end
end

#update(options = {}) ⇒ Object



179
180
181
182
183
184
185
# File 'lib/gemist.rb', line 179

def update(options={})
  self.name       = options[:name]     unless options[:name].nil?
  self.versions   = options[:version]  unless options[:version].nil?
  self.group      = options[:group]    unless options[:group].nil?
  self.require    = options[:require]  unless options[:require].nil?
  self.require    = self.name  if self.require.nil?
end