Sha256: 0d8f14169f428d004a620ddbce461b07af07d49d6b083dbb7e512f9032a8ae5d
Contents?: true
Size: 1.37 KB
Versions: 1
Compression:
Stored size: 1.37 KB
Contents
class TreeFieldType < FieldType attr_accessor :values validates :values, presence: true, if: :validate_presence? validate :minimum, if: :validate_minimum? validate :maximum, if: :validate_maximum? def data @values end def data=(data_hash) values = data_hash.deep_symbolize_keys[:values] if values.is_a?(Hash) @values = { values: values.keys } else @values = { values: [values] } end end def field_item_as_indexed_json_for_field_type(field_item, options = {}) json = {} json[mapping_field_name] = field_item.data['values'] json end def mapping { name: mapping_field_name, type: :string, analyzer: :snowball } end private def mapping_field_name "#{field_name.parameterize(separator: '_')}_tree" end def minimum if !@values.nil? && @values[:values].length >= @validations[:minimum] true else errors.add(:minimum, "You have selected too few values.") false end end def maximum unless @values.nil? if @values[:values].length <= @validations[:maximum] true else errors.add(:maximum, "You have selected too many values.") false end end end def validate_presence? @validations.key? :presence end def validate_minimum? @validations.key? :minimum end def validate_maximum? @validations.key? :maximum end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
cortex-plugins-core-0.12.4 | app/models/tree_field_type.rb |