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