module HasMeta
Constants
- VERSION
Public Instance Methods
has_meta(*attributes)
click to toggle source
# File lib/has-meta.rb, line 28 def has_meta(*attributes) options = attributes.pop if attributes.last.is_a? Hash attributes = attributes.to_a.flatten.compact.map(&:to_sym) if self.meta_attributes.present? self.meta_attributes += attributes else class_attribute :meta_attributes, instance_predicate: false, instance_writer: false self.meta_attributes = attributes end class_eval do has_many :meta_data, as: :meta_model, dependent: :destroy, class_name: '::HasMeta::MetaData' attr_accessor :meta_attributes_pending_save after_save :save_pending_meta_attributes, if: ->(x) { x.persisted? and x.meta_attributes_pending_save.present? } include HasMeta::InstanceMethods include HasMeta::DynamicMethods include HasMeta::QueryMethods end end
meta_attributes()
click to toggle source
# File lib/has-meta.rb, line 24 def meta_attributes nil end