Sha256: c05f22db735e02eb6b60dc8f99f8b46356d06391c353a3c7d4d0d9290e808f56
Contents?: true
Size: 890 Bytes
Versions: 3
Compression:
Stored size: 890 Bytes
Contents
module Kludge class Mishmash def self.parts @parts ||= Parts.new end def self.one(name, options = {}) parts << One.new(name, options) attr_reader name define_method "#{name}=" do |value| @parts.find { |part| part.name == name }.value = value instance_variable_set("@#{name}", value) end end def self.many(name, options = {}) parts << Many.new(name, options) attr_reader name define_method "#{name}=" do |value| @parts.find { |part| part.name == name }.value = value instance_variable_set("@#{name}", value) end end def initialize(attributes = {}) @parts = self.class.parts.dup attributes.each do |key, value| send("#{key}=", value) end end def save @parts.save end def valid? @parts.valid? end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
kludge-0.0.3 | lib/kludge/mishmash.rb |
kludge-0.0.2 | lib/kludge/mishmash.rb |
kludge-0.0.1 | lib/kludge/mishmash.rb |