module SirTrevorRails::HasSirTrevorContent::ClassMethods

Public Instance Methods

sir_trevor_content(*attributes) click to toggle source
# File lib/sir_trevor_rails/has_sir_trevor_content.rb, line 9
def sir_trevor_content(*attributes)
  attributes.each do |attribute|
    #next unless name.constantize.column_names.include? attribute.to_s
    define_attribute_reader(attribute)
  end
end

Private Instance Methods

define_attribute_reader(attribute) click to toggle source
# File lib/sir_trevor_rails/has_sir_trevor_content.rb, line 17
def define_attribute_reader(attribute)
  define_method attribute do
    content = read_attribute(attribute)
    return SirTrevorRails::BlockArray.new if content.blank?
    instance_variable_get("@#{attribute}") ||
      instance_variable_set("@#{attribute}", SirTrevorRails::BlockArray.from_json(content, self))
  end
end