# frozen_string_literal: true # File: unary-element.rb # Purpose: Implementation of the Section and ConditionalSection classes. module Macros4Cuke # Module used as a namespace # Base class used internally by the template engine. # The generalization of any element from a template that has one variable # whose actual value influences the rendition. class UnaryElement # The name of the placeholder/variable. attr_reader(:name) # @param aVarName [String] The name of the placeholder from a template. def initialize(aVarName) @name = aVarName end protected # This method has the same signature as the {Engine#render} method. # @return [Object] The actual value from the locals or context # that is assigned to the variable. def retrieve_value_from(aContextObject, theLocals) actual_value = theLocals[name] if actual_value.nil? && aContextObject.respond_to?(name.to_sym) actual_value = aContextObject.send(name.to_sym) end return actual_value end end # class end # module # End of file