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.



105
106
107
108
109
110
111
112
113
114
115
116
117
118
# File 'lib/prick/builder/node.rb', line 105

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.



102
103
104
# File 'lib/prick/builder/node.rb', line 102

def command
  @command
end

#klassObject (readonly)

Returns the value of attribute klass.



101
102
103
# File 'lib/prick/builder/node.rb', line 101

def klass
  @klass
end

Instance Method Details

#callObject



120
121
122
# File 'lib/prick/builder/node.rb', line 120

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

#inspectObject



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

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

#objectObject



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

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