module Libis::Workflow::ActiveRecord::Helpers::PropertyHelper::ClassMethods
Public Instance Methods
property_field(name, options = {})
click to toggle source
# File lib/libis/workflow/activerecord/helpers/property_helper.rb, line 15 def property_field(name, options = {}) default = options[:default] default = default.call if default.is_a? Proc if options[:type] # noinspection RubyResolve options.reverse_merge! reader: lambda {|value| value.blank? ? nil : YAML.load(value)}, writer: lambda {|value| value ? YAML.dump(value) : nil} end self.send(:define_method, name, lambda { value = properties[name] (options[:reader] ? options[:reader].call(value) : value) || default }) self.send(:define_method, "#{name}=", lambda {|value| value ||= default properties[name] = options[:writer] ? options[:writer].call(value) : value }) end