class ActiveRecord::Base
Public Class Methods
does_keys(opts={})
click to toggle source
Call this “acts as” method within your ActiveRecord
class to establish key- value behavior and prepare internal storage structures
# File lib/doeskeyvalue.rb, line 37 def self.does_keys(opts={}) DoesKeyValue.log("Adding key-value support to class #{self.to_s}") # TODO: Raise exception to improper opts passed self.instance_eval do DoesKeyValue::State.instance.add_class(self, opts) self.send(:serialize, opts[:column], Hash) if opts[:column] self.send(:attr_accessor, :key_value_cache) if opts[:table] extend DoesKeyValue::Accessors end # if storage_column = opts[:column] # DoesKeyValue.log("Adding key-value support via column #{storage_column} to class #{self.to_s}") # self.instance_eval do # DoesKeyValue::State.instance.add_class(self, :column=>storage_column) # self.send(:serialize, storage_column, Hash) # extend DoesKeyValue::ColumnStorage # end # elsif storage_table = opts[:table] # DoesKeyValue.log("Adding key-value support via table #{storage_table} to class #{self.to_s}") # self.instance_eval do # DoesKeyValue::State.instance.add_class(self, :table=>storage_table) # extend DoesKeyValue::TableStorage # end # end end