Sha256: b5b72365bd3b1cf35d33f8602f0b88fb416ce154390fa33a3c421095f317288f

Contents?: true

Size: 1.32 KB

Versions: 4

Compression:

Stored size: 1.32 KB

Contents

# File: placeholder.rb
# Purpose: Implementation of the Placeholder class.

require_relative 'unary-element' # Load the superclass


module Macros4Cuke # Module used as a namespace

# Module containing all classes implementing the simple template engine
# used internally in Macros4Cuke.
module Templating

  # Class used internally by the template engine.
  # Represents a named placeholder in a template, that is,
  # a name placed between <..> in the template.
  # At rendition, a placeholder is replaced by the text value
  # that is associated with it.
  class Placeholder < UnaryElement

    public

    # Render the placeholder given the passed arguments.
    # This method has the same signature as the {Engine#render} method.
    # @return [String] The text value assigned to the placeholder.
    #   Returns an empty string when no value is assigned to the placeholder.
    def render(aContextObject, theLocals)
      actual_value = retrieve_value_from(aContextObject, theLocals)

      result = case actual_value
        when NilClass
          ''

        when Array
          # TODO: Move away from hard-coded separator.
          actual_value.join('<br/>')

        when String
          actual_value
        else
          actual_value.to_s
      end

      return result
    end

  end # class

end # module

end # module

# End of file

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
macros4cuke-0.5.07 lib/macros4cuke/templating/placeholder.rb
macros4cuke-0.5.06 lib/macros4cuke/templating/placeholder.rb
macros4cuke-0.5.03 lib/macros4cuke/templating/placeholder.rb
macros4cuke-0.4.09 lib/macros4cuke/templating/placeholder.rb