Class: MetaCL::Logic::ResourceManager

Inherits:
Object
  • Object
show all
Defined in:
lib/metacl/logic/resource_manager.rb

Instance Method Summary collapse

Constructor Details

#initializeResourceManager

Returns a new instance of ResourceManager.



4
5
6
# File 'lib/metacl/logic/resource_manager.rb', line 4

def initialize
  @namespace = {}
end

Instance Method Details

#[](arg) ⇒ Object



48
49
50
# File 'lib/metacl/logic/resource_manager.rb', line 48

def [](arg)
  @namespace[arg]
end

#add_array(name, length, type = nil) ⇒ Object

name check



12
13
14
# File 'lib/metacl/logic/resource_manager.rb', line 12

def add_array(name, length, type = nil) # name check
  @namespace[name] = OpenStruct.new(name: name, klass: :array, type: type, length: length)
end

#add_expression(name, root_node, args = []) ⇒ Object



20
21
22
# File 'lib/metacl/logic/resource_manager.rb', line 20

def add_expression(name, root_node, args = [])
  @namespace[name] = OpenStruct.new(name: name, klass: :expression, args: args, root_node: root_node)
end

#add_matrix(name, size_n, size_m, type = nil) ⇒ Object



16
17
18
# File 'lib/metacl/logic/resource_manager.rb', line 16

def add_matrix(name, size_n, size_m, type = nil)
  @namespace[name] = OpenStruct.new(name: name, klass: :matrix, type: type, size_n: size_n, size_m: size_m)
end

#add_numeric(name, type = nil) ⇒ Object

name check



8
9
10
# File 'lib/metacl/logic/resource_manager.rb', line 8

def add_numeric(name, type = nil) # name check
  @namespace[name] = OpenStruct.new(name: name, klass: :numeric, type: type)
end

#arraysObject



28
29
30
# File 'lib/metacl/logic/resource_manager.rb', line 28

def arrays
  @namespace.values.select { |e| e.klass == :array }
end

#expressionsObject



36
37
38
# File 'lib/metacl/logic/resource_manager.rb', line 36

def expressions
  @namespace.values.select { |e| e.klass == :expression }
end

#expressions_hashObject



40
41
42
# File 'lib/metacl/logic/resource_manager.rb', line 40

def expressions_hash
  Hash[expressions.map { |e| [e.name, e] }]
end

#matricesObject



32
33
34
# File 'lib/metacl/logic/resource_manager.rb', line 32

def matrices
  @namespace.values.select { |e| e.klass == :matrix }
end

#matrices_hashObject



44
45
46
# File 'lib/metacl/logic/resource_manager.rb', line 44

def matrices_hash
  Hash[matrices.map { |e| [e.name, e] }]
end

#numericsObject



24
25
26
# File 'lib/metacl/logic/resource_manager.rb', line 24

def numerics
  @namespace.values.select { |e| e.klass == :numeric }
end