Class: Rox::Core::PropertiesExtensions

Inherits:
Object
  • Object
show all
Defined in:
lib/rox/core/repositories/roxx/properties_extensions.rb

Instance Method Summary collapse

Constructor Details

#initialize(parser, properties_repository) ⇒ PropertiesExtensions

Returns a new instance of PropertiesExtensions.



6
7
8
9
# File 'lib/rox/core/repositories/roxx/properties_extensions.rb', line 6

def initialize(parser, properties_repository)
  @parser = parser
  @properties_repository = properties_repository
end

Instance Method Details

#extendObject



11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/rox/core/repositories/roxx/properties_extensions.rb', line 11

def extend
  @parser.add_operator('property') do |parser, stack, context|
    prop_name = stack.pop.to_s
    property = @properties_repository.custom_property(prop_name)

    if property.nil?
      stack.push(TokenType::UNDEFINED)
    else
      value = property.value(context)
      stack.push(value.nil? ? TokenType::UNDEFINED : value)
    end
  end
end