class Tataru::ResourceDsl

human representation of resources

Constants

REPCLASS

internal representation of resources

Public Class Methods

new(name, desc) click to toggle source
# File lib/tataru/resource_dsl.rb, line 8
def initialize(name, desc)
  @properties = {}
  @desc = desc
  @fields = Set.new(@desc.mutable_fields + @desc.immutable_fields)
  @name = name
  @dependencies = Set.new
end

Public Instance Methods

method_missing(name, *args, &block) click to toggle source
Calls superclass method
# File lib/tataru/resource_dsl.rb, line 20
def method_missing(name, *args, &block)
  return super unless @fields.include? name

  resolver = Resolver.new(args[0])
  @dependencies += resolver.dependencies
  @properties[name] = if resolver.representation.is_a? REPCLASS
                        resolver.representation.remote_id
                      else
                        resolver.representation
                      end
end
representation() click to toggle source
# File lib/tataru/resource_dsl.rb, line 32
def representation
  REPCLASS.new(@name, @desc, @properties)
end
respond_to_missing?(name, *_args) click to toggle source
# File lib/tataru/resource_dsl.rb, line 16
def respond_to_missing?(name, *_args)
  true if @fields.include? name
end