Sha256: 99b2cde7bf43a1351b20d9ec66f1dd36016138e38f6183b0d5e06f0dd0b62463
Contents?: true
Size: 629 Bytes
Versions: 4
Compression:
Stored size: 629 Bytes
Contents
module BuildMaster class Attribute def initialize(expression_evaluator, properties = {}) @evaluator = expression_evaluator @properties = properties end def process(target, template, source) name = template.attribute_value!('name') eval = template.attribute_value!('eval') result = nil if (@evaluator.respond_to?(eval)) result = @evaluator.send(eval, source) else result = @properties[eval] raise TemplateError.new(template), '#{@evaluator.class} cannot evaluate expression #{eval}' unless result end target.attributes[name] = result end end end
Version data entries
4 entries across 4 versions & 1 rubygems