Sha256: a046f390ed954a256e959559c903ac0741e7dacbc8fc98d124fcc5e6608888b5

Contents?: true

Size: 834 Bytes

Versions: 1

Compression:

Stored size: 834 Bytes

Contents

module Tokamak
  # This is a Blank Slate class to support the renderization of the values block for Resource Representation Interfaces
  # Every Media type should implement a Builder with a insert_value method that renders the values block to a specific format
  class Values
    attr_accessor :builder

    # remove all methods from this class
    instance_methods.each do |m|
      undef_method m unless m.to_s =~ /\[\]|method_missing|send|respond_to\?|^__/
    end

    def initialize(builder)
      @builder = builder
      @current_prefix = nil
    end

    def [](prefix)
      @current_prefix = prefix
      self
    end

    def method_missing(symbol, *args, &block)
      name = symbol.to_s
      prefix = @current_prefix
      @current_prefix = nil
      @builder.insert_value(name, prefix, *args, &block)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
tokamak-1.0.0.beta2 lib/tokamak/values.rb