Class: Red::DefinitionNode::ObjectLiteralNode

Inherits:
Object
  • Object
show all
Defined in:
lib/red/definition_nodes.rb

Overview

:nodoc:

Instance Method Summary collapse

Constructor Details

#initialize(receiver, scope) ⇒ ObjectLiteralNode

Returns a new instance of ObjectLiteralNode.



129
130
131
132
133
134
# File 'lib/red/definition_nodes.rb', line 129

def initialize(receiver, scope)
  block_node = scope.assoc(:block) || scope
  properties = block_node.select {|node| (node.first == :cvdecl) rescue false }
  functions = block_node.select {|node| ![:block, :scope].include?(node) }
  @slots = (properties | functions).build_nodes
end

Instance Method Details

#compile_node(options = {}) ⇒ Object



136
137
138
139
# File 'lib/red/definition_nodes.rb', line 136

def compile_node(options = {})
  slots = @slots.compile_nodes(:as_prototype => true).compact.join(', ')
  return "{ %s }" % [slots]
end