module Markup::Rails::ActiveRecord
Example:
# app/models/post.rb class Post < ApplicationRecord include Markup::Rails::ActiveRecord end
Public Instance Methods
acts_as_markup(*args)
click to toggle source
Example:
# app/models/post.rb class Post < ApplicationRecord include Markup::Rails::ActiveRecord acts_as_markup :body, processor: :markdown end
# File lib/markup/rails/active_record.rb, line 26 def acts_as_markup(*args) options = args.extract_options! args.each { |a| (@@markup ||= {})[a] = options } define_markup_accessors end
define_markup_accessors()
click to toggle source
# File lib/markup/rails/active_record.rb, line 32 def define_markup_accessors @@markup.each do |attr, options| define_method(attr) do |format = nil| case format when :markup "Markup::Rails::Processors::#{(@@markup[attr][:processor]).to_s.camelize}".constantize.new(read_attribute(attr).to_s, @@markup[attr].slice(:from)) when nil read_attribute(attr) else "Markup::Rails::Processors::#{(@@markup[attr][:processor]).to_s.camelize}".constantize.new(read_attribute(attr).to_s, @@markup[attr].slice(:from)).send("to_#{format}") end end end end