Sha256: eee1cce275a26d4593fff4665358c96a7d16540f9002ea1475eb37a438f13060
Contents?: true
Size: 948 Bytes
Versions: 3
Compression:
Stored size: 948 Bytes
Contents
module SimpleMapper module SimpleModel def self.included(base) base.extend ClassMethods end def to_hash(options={}) self.class.properties.inject({}) {|h,k| h[k] = instance_variable_get("@#{k}"); h} end def identifier instance_variable_get('@'+self.class.identifier) end def method_missing(method, *args) if self.class.properties.include?(method.to_s) instance_variable_get('@'+method.to_s) elsif method.to_s =~ /=$/ && self.class.properties.include?(method.to_s.gsub(/=/, '')) instance_variable_set('@'+method.to_s.gsub(/=/, ''), *args) else super end end module ClassMethods def properties(*properties) @properties = properties.collect {|e| e.to_s} if properties.length > 0 @properties end def identifier(id=nil) @identifier = id.to_s unless id.nil? @identifier end end end end
Version data entries
3 entries across 3 versions & 1 rubygems