Class: Prick::Build::ModuleNode

Inherits:
Node
  • Object
show all
Defined in:
lib/prick/builder/node.rb

Instance Attribute Summary collapse

Attributes inherited from Node

#args, #kind, #parent, #path, #phase

Instance Method Summary collapse

Methods inherited from Node

#dump, #lines, #name, #prefix_lines, #relpath, #schema, #schema=, #source, #source_lines, #to_s

Constructor Details

#initialize(parent, phase, path, klass, command, args = nil) ⇒ ModuleNode

Returns a new instance of ModuleNode.



99
100
101
102
103
104
105
106
107
108
109
110
111
112
# File 'lib/prick/builder/node.rb', line 99

def initialize(parent, phase, path, klass, command, args = nil)
  constrain klass, Symbol, String
  constrain command, Symbol, String

  super(parent, phase, :module, path, args)

  @klass = klass.to_sym
  @command = command.to_sym

  if !object
    Kernel.class_eval File.read(path)
    self.class.objects[@klass] = eval(klass.to_s).new(conn)
  end
end

Instance Attribute Details

#commandObject (readonly)

Returns the value of attribute command.



96
97
98
# File 'lib/prick/builder/node.rb', line 96

def command
  @command
end

#klassObject (readonly)

Returns the value of attribute klass.



95
96
97
# File 'lib/prick/builder/node.rb', line 95

def klass
  @klass
end

Instance Method Details

#callObject



114
115
116
# File 'lib/prick/builder/node.rb', line 114

def call()
  object.send(@command, *args)
end

#inspectObject



118
# File 'lib/prick/builder/node.rb', line 118

def inspect() "#{path} #{klass}##{command}" end

#objectObject



97
# File 'lib/prick/builder/node.rb', line 97

def object() self.class.objects[klass] end