Class: Simulator::Model

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(&block) ⇒ Model

Returns a new instance of Model.



7
8
9
10
11
# File 'lib/simulator/model.rb', line 7

def initialize(&block)
  @equations = []
  @variables = {}
  instance_eval &block unless block.nil?
end

Instance Attribute Details

#equationsObject (readonly)

Returns the value of attribute equations.



5
6
7
# File 'lib/simulator/model.rb', line 5

def equations
  @equations
end

#nameObject

Returns the value of attribute name.



4
5
6
# File 'lib/simulator/model.rb', line 4

def name
  @name
end

Instance Method Details

#add_equation(equation) ⇒ Object



26
27
28
# File 'lib/simulator/model.rb', line 26

def add_equation(equation)
  @equations << equation
end

#add_variable(variable) ⇒ Object



29
30
31
# File 'lib/simulator/model.rb', line 29

def add_variable(variable)
  @variables[variable.name] = variable
end

#eqtn(var_name, default_value = nil, &block) ⇒ Object



20
21
22
23
24
25
# File 'lib/simulator/model.rb', line 20

def eqtn(var_name, default_value = nil, &block)
  v = var(var_name, default_value)
  e = Equation.new(v, &block)
  add_equation e
  e
end

#get_variable(name) ⇒ Object



32
33
34
# File 'lib/simulator/model.rb', line 32

def get_variable(name)
  @variables[name]
end

#new_runObject



39
40
41
# File 'lib/simulator/model.rb', line 39

def new_run
  Run.new self
end

#var(name, default_value = nil) ⇒ Object



12
13
14
15
16
17
18
19
# File 'lib/simulator/model.rb', line 12

def var(name, default_value = nil)
  v = get_variable(name)
  if v.nil?
    v = Variable.new name, default_value
    add_variable v
  end
  v
end

#variablesObject



35
36
37
# File 'lib/simulator/model.rb', line 35

def variables
  @variables.values
end