Class: Engine2::Schemes

Inherits:
Object show all
Defined in:
lib/engine2/scheme.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeSchemes

Returns a new instance of Schemes.



10
11
12
13
# File 'lib/engine2/scheme.rb', line 10

def initialize
    @builtin = {}
    @schemes = {}
end

Instance Attribute Details

#builtinObject (readonly)

Returns the value of attribute builtin.



9
10
11
# File 'lib/engine2/scheme.rb', line 9

def builtin
  @builtin
end

#schemesObject (readonly)

Returns the value of attribute schemes.



9
10
11
# File 'lib/engine2/scheme.rb', line 9

def schemes
  @schemes
end

Instance Method Details

#[](name) ⇒ Object

Raises:



25
26
27
28
29
# File 'lib/engine2/scheme.rb', line 25

def [] name
    scheme = @schemes[name]
    raise E2Error.new("Scheme #{name} not found") unless scheme
    scheme
end

#clearObject



21
22
23
# File 'lib/engine2/scheme.rb', line 21

def clear
    @schemes = {}
end

#define_scheme(name, &blk) ⇒ Object



15
16
17
18
19
# File 'lib/engine2/scheme.rb', line 15

def define_scheme name, &blk
    schemes = Engine2::core_loading ? @builtin : @schemes
    raise "Scheme '#{name}' already defined" if schemes[name]
    schemes[name] = blk
end

#merge!Object



31
32
33
# File 'lib/engine2/scheme.rb', line 31

def merge!
    @schemes.merge!(@builtin){|n| raise E2Error.new("Scheme collision: #{n}")}
end