class Spigot::Map::Resource

Attributes

definitions[R]

Public Class Methods

new(name, &block) click to toggle source
# File lib/spigot/map/resource.rb, line 6
def initialize(name, &block)
  @name = name.to_s.underscore.to_sym
  @definitions = []
  @options = Spigot::Map::Option.new
  instance_eval(&block) if block_given?
end

Public Instance Methods

append(definition) click to toggle source
# File lib/spigot/map/resource.rb, line 13
def append(definition)
  @definitions << definition
end
associations() click to toggle source
# File lib/spigot/map/resource.rb, line 17
def associations
  definitions.map do |definition|
    value = definition.instance_variable_get(:@value)
    definition if value.is_a?(Class)
  end.compact
end
method_missing(name, *args, &block) click to toggle source

Spigot::Map::Resource.new(:user){ username :login } Spigot::Map::Resource.new(:user){ username = :login }

# File lib/spigot/map/resource.rb, line 36
def method_missing(name, *args, &block)
  name = name.to_s.gsub('=', '').to_sym
  Spigot::Map::Definition.define(self, name, *args, &block)
end
options(&block) click to toggle source
# File lib/spigot/map/resource.rb, line 24
def options(&block)
  @options = Spigot::Map::Option.new(&block)
end
to_hash() click to toggle source
# File lib/spigot/map/resource.rb, line 28
def to_hash
  resource = {}
  @definitions.each { |rule| resource.merge!(rule.to_hash) }
  { @name => resource }
end