module PageParts::Extension::ClassMethods
Public Instance Methods
page_parts(*args)
click to toggle source
PageParts
Enable page parts in your model:
page_parts :main, :left, :sidebar, suffix: [:en, :uk]
# File lib/page_parts/extension.rb, line 22 def page_parts(*args) options = { suffix: [nil] }.merge(args.extract_options!) args.each do |attr_name| Array(options[:suffix]).each do |suffix| method_name = [attr_name, suffix].compact.map(&:to_s).join('_') page_parts_definitions[:keys] << method_name define_method(method_name) do _page_part(method_name).try(:content) end define_method("#{method_name}=") do |value| record = _page_part(method_name) record.content = value end end end end