class DaFunk::Struct
Attributes
members[RW]
values[RW]
Public Class Methods
klass(*variables)
click to toggle source
# File lib/da_funk/struct.rb, line 5 def self.klass(*variables) Proc.new do |*args| struct = DaFunk::Struct.new(*variables) args.each_with_index do |value, index| struct.send("#{variables[index]}=", value) end struct end end
new(*variables)
click to toggle source
# File lib/da_funk/struct.rb, line 15 def initialize(*variables) self.members = variables self.values = variables.inject({}){|hash,v| hash[v.to_sym] = nil; hash} end
Public Instance Methods
[](key)
click to toggle source
# File lib/da_funk/struct.rb, line 24 def [](key) self.values[key] end
[]=(key, value)
click to toggle source
# File lib/da_funk/struct.rb, line 20 def []=(key, value) self.values[key] = value end
include?(key)
click to toggle source
# File lib/da_funk/struct.rb, line 39 def include?(key) self.members.include?(key.to_sym) end
method_missing(method, *args, &block)
click to toggle source
Calls superclass method
# File lib/da_funk/struct.rb, line 28 def method_missing(method, *args, &block) param = method.to_s if self.include? method self[method] elsif (param[-1..-1] == "=" && self.include?(key = param[0..-2])) self[key.to_sym] = args.first else super end end