Class: Roll::Environment

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

Overview

An Environment represents a set of libraries.

Defined Under Namespace

Classes: Index, Lookup

Constant Summary collapse

DEFAULT =

Default environment name.

'production'
DIRS =

Location of environment files. – Perhaps combine all enrtries instead? ++

::Config.find_config('roll')

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name = nil) ⇒ Environment

Instantiate environment.



37
38
39
# File 'lib/roll/environment.rb', line 37

def initialize(name=nil)
  @name = name || Environment.current
end

Instance Attribute Details

#nameObject (readonly)

Environment name.



34
35
36
# File 'lib/roll/environment.rb', line 34

def name
  @name
end

Class Method Details

.currentObject

Current environment name.



22
23
24
# File 'lib/roll/environment.rb', line 22

def self.current
  ENV['RUBYENV'] || DEFAULT
end

.listObject

List of available environments.



27
28
29
30
31
# File 'lib/roll/environment.rb', line 27

def self.list
  Dir[File.join(DIR, '*')].map do |file|
    File.basename(file)
  end
end

Instance Method Details

#each(&block) ⇒ Object



62
# File 'lib/roll/environment.rb', line 62

def each(&block) ; index.each(&block) ; end

#indexObject



42
43
44
# File 'lib/roll/environment.rb', line 42

def index
  @index ||= Index.new(name)
end

#lookupObject



47
48
49
# File 'lib/roll/environment.rb', line 47

def lookup
  @lookup ||= Lookup.new(name)
end

#saveObject

Save index.



57
58
59
# File 'lib/roll/environment.rb', line 57

def save
  index.save
end

#sizeObject



65
# File 'lib/roll/environment.rb', line 65

def size ; index.size ; end

#syncObject

Synchronize index to lookup table.



52
53
54
# File 'lib/roll/environment.rb', line 52

def sync
  index.reset(lookup.index)
end

#to_sObject



68
69
70
71
72
73
74
# File 'lib/roll/environment.rb', line 68

def to_s
  str = ""
  lookup.each do |(path, depth)|
    str << "#{path}  #{depth}\n"
  end
  str
end