class Formwandler::FieldDefinition
Attributes
array[RW]
default[RW]
delocalize[RW]
disabled[RW]
model[RW]
model_class[RW]
name[R]
options[RW]
readonly[RW]
source[RW]
transform_blank[R]
value_transformer[R]
Public Class Methods
new(name)
click to toggle source
# File lib/formwandler/field_definition.rb, line 10 def initialize(name) @name = name @transform_blank = false set_defaults end
Public Instance Methods
configure(opts)
click to toggle source
# File lib/formwandler/field_definition.rb, line 33 def configure(opts) model = opts[:model] model_class = opts[:model_class] || model set_model model, model_class opts.except(:model, :model_class).each do |key, value| send("#{key}=", value) rescue NoMethodError raise ArgumentError, "Invalid option #{key}" end end
hide_option(name, value = true)
click to toggle source
# File lib/formwandler/field_definition.rb, line 44 def hide_option(name, value = true) hidden_options[name.to_s] = value end
in_transformation()
click to toggle source
# File lib/formwandler/field_definition.rb, line 57 def in_transformation value_transformer&.in_transformation end
model=(model)
click to toggle source
# File lib/formwandler/field_definition.rb, line 16 def model=(model) set_model model, model end
model_class=(symbol_or_class)
click to toggle source
# File lib/formwandler/field_definition.rb, line 20 def model_class=(symbol_or_class) @model_class = if symbol_or_class.nil? nil elsif symbol_or_class.is_a?(Symbol) symbol_or_class.to_s.classify.constantize rescue nil elsif symbol_or_class < ActiveRecord::Base || symbol_or_class < ActiveModel::Model symbol_or_class else fail 'The model class must be nil, a symbol or a descendant of ActiveModel::Model or ActiveRecord::Base.' end end
out_transformation()
click to toggle source
# File lib/formwandler/field_definition.rb, line 61 def out_transformation value_transformer&.out_transformation end
transform(allow_blank: false, &block)
click to toggle source
# File lib/formwandler/field_definition.rb, line 52 def transform(allow_blank: false, &block) @transform_blank = allow_blank @value_transformer = FieldValueTransformer.new(&block) end
Private Instance Methods
set_defaults()
click to toggle source
# File lib/formwandler/field_definition.rb, line 69 def set_defaults @hidden = false @disabled = false @readonly = false @default = nil @delocalize = nil @model = nil @model_class = nil @source = name @options = nil @array = false end
set_model(model, model_class)
click to toggle source
# File lib/formwandler/field_definition.rb, line 82 def set_model(model, model_class) @model = model self.model_class = model_class end