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 = {}
    @user = {}
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

#userObject (readonly)

Returns the value of attribute user.



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

def user
  @user
end

Instance Method Details

#[](name, raise = true) ⇒ Object

Raises:



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

def [] name, raise = true
    scheme = @builtin[name] || @user[name]
    raise E2Error.new("Scheme #{name} not found") if !scheme && raise
    scheme
end

#define_scheme(name, &blk) ⇒ Object

Raises:



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

def define_scheme name, &blk
    schemes = Engine2::core_loaded ? @user : @builtin
    raise E2Error.new("Scheme '#{name}' already defined") if schemes[name]
    schemes[name] = blk
end