module MessageTrain::Mixin
Mixin
module automatically extended by ActiveRecord::Base
Public Instance Methods
message_train(options = {})
click to toggle source
Run message_train
mixin in your model to enable
# File lib/message_train/mixin.rb, line 7 def message_train(options = {}) cattr_accessor :message_train_table_sym, :message_train_relationships table_sym = table_name.to_sym relationships = [options.delete(:only) || [:sender, :recipient]].flatten relationships -= [options.delete(:except) || []].flatten associations_from_relationships(relationships) MessageTrain.configure_table(table_sym, name, options) self.message_train_relationships = relationships self.message_train_table_sym = table_sym extend MessageTrain::ClassMethods include MessageTrain::InstanceMethods end
Private Instance Methods
associations_from_relationships(relationships)
click to toggle source
# File lib/message_train/mixin.rb, line 27 def associations_from_relationships(relationships) if relationships.include? :sender has_many :messages, as: :sender, class_name: 'MessageTrain::Message' end return unless relationships.include? :recipient has_many :receipts, as: :recipient, class_name: 'MessageTrain::Receipt' has_many( :unsubscribes, as: :recipient, class_name: 'MessageTrain::Unsubscribe' ) end