Sha256: ffec616a943480839f8cb7d3cdfe94d7b6b33ad4df0ffc5250952cf37049b4dd

Contents?: true

Size: 952 Bytes

Versions: 54

Compression:

Stored size: 952 Bytes

Contents

module Avo
  module Fields
    class BooleanGroupField < BaseField
      def initialize(id, **args, &block)
        super(id, **args, &block)

        @options = args[:options] || {}
      end

      def options
        Avo::ExecutionContext.new(
          target: @options,
          record: record,
          resource: resource,
          view: view,
          field: self
        ).handle
      end

      def to_permitted_param
        ["#{id}": []]
      end

      def fill_field(record, _, values, _)
        new_value = {}

        # Reject empty values passed by hidden inputs
        values.reject! { |value| value == "" }

        # Cast values to booleans
        options.each do |key, _|
          new_value[key] = values.include? key.to_s
        end

        # Don't override existing values unless specified in options
        record.send(:"#{id}=", (record.send(id) || {}).merge(new_value))

        record
      end
    end
  end
end

Version data entries

54 entries across 54 versions & 1 rubygems

Version Path
avo-3.17.3 lib/avo/fields/boolean_group_field.rb
avo-3.17.5.tw4 lib/avo/fields/boolean_group_field.rb
avo-3.17.4.tw4 lib/avo/fields/boolean_group_field.rb
avo-3.17.3.tw4 lib/avo/fields/boolean_group_field.rb
avo-3.17.2.tw4 lib/avo/fields/boolean_group_field.rb
avo-3.17.2 lib/avo/fields/boolean_group_field.rb
avo-3.17.1.tw4 lib/avo/fields/boolean_group_field.rb
avo-3.17.1 lib/avo/fields/boolean_group_field.rb
avo-3.17.0 lib/avo/fields/boolean_group_field.rb
avo-3.16.6 lib/avo/fields/boolean_group_field.rb
avo-3.16.5 lib/avo/fields/boolean_group_field.rb
avo-3.16.4 lib/avo/fields/boolean_group_field.rb
avo-3.16.3 lib/avo/fields/boolean_group_field.rb
avo-3.16.2 lib/avo/fields/boolean_group_field.rb
avo-3.16.1 lib/avo/fields/boolean_group_field.rb
avo-3.16.0 lib/avo/fields/boolean_group_field.rb
avo-3.15.7 lib/avo/fields/boolean_group_field.rb
avo-3.15.6 lib/avo/fields/boolean_group_field.rb
avo-3.15.5 lib/avo/fields/boolean_group_field.rb
avo-3.15.4 lib/avo/fields/boolean_group_field.rb