module Frenchy::Veneer::ClassMethods
Public Class Methods
model_name()
click to toggle source
# File lib/frenchy/veneer.rb, line 25 def self.model_name ActiveModel::Name.new(self, nil, @model.to_s.camelize) end
table_name()
click to toggle source
# File lib/frenchy/veneer.rb, line 29 def self.table_name @model.to_s.pluralize end
Public Instance Methods
veneer(options={})
click to toggle source
Macro to establish a veneer for a given model
# File lib/frenchy/veneer.rb, line 19 def veneer(options={}) options.stringify_keys! @model = options.delete("model") || raise(Frenchy::Error, "Veneer must specify a model") extend ActiveModel::Naming class_eval do def self.model_name ActiveModel::Name.new(self, nil, @model.to_s.camelize) end def self.table_name @model.to_s.pluralize end end define_method(:record_key) do raise(Frenchy::Error, "No primary key is specified") unless respond_to?(:to_param) "#{self.class.table_name}/#{to_param}" end end