class Dimples::Metadata

A class representing metadata passed into a template for rendering.

Attributes

keys[R]

Public Class Methods

new(source) click to toggle source
# File lib/dimples/metadata.rb, line 8
def initialize(source)
  source.each do |key, value|
    self.class.send(:attr_reader, key)
    instance_variable_set("@#{key}", build(value))
  end

  @keys = source.keys
end

Public Instance Methods

build(item) click to toggle source
# File lib/dimples/metadata.rb, line 17
def build(item)
  case item
  when Array
    item.map { |i| build(i) }
  when Hash
    item.empty? ? item : Metadata.new(item)
  else
    item
  end
end
method_missing(_method_name, *_args) click to toggle source
# File lib/dimples/metadata.rb, line 28
def method_missing(_method_name, *_args)
  nil
end
respond_to_missing?(_method_name, _include_private) click to toggle source
# File lib/dimples/metadata.rb, line 32
def respond_to_missing?(_method_name, _include_private)
  true
end