Sha256: a2ec2795256233b7f9e3ba4aacd6ccf025de45620571ecd83159502d803c15e3

Contents?: true

Size: 688 Bytes

Versions: 459

Compression:

Stored size: 688 Bytes

Contents

module Avo
  module Fields
    class BooleanField < BaseField
      attr_reader :true_value
      attr_reader :false_value

      def initialize(id, **args, &block)
        super(id, **args, &block)

        @true_value = args[:true_value].present? ? args[:true_value] : true
        @false_value = args[:false_value].present? ? args[:false_value] : false
      end

      def value
        resolve_attribute super
      end

      def resolve_attribute(value)
        value.present? ? value.in?(truthy_values) : value
      end

      def truthy_values
        ["true", "1", @true_value]
      end

      def falsy_values
        ["false", "0", @false_value]
      end
    end
  end
end

Version data entries

459 entries across 459 versions & 1 rubygems

Version Path
avo-3.18.1.tw4 lib/avo/fields/boolean_field.rb
avo-3.18.1 lib/avo/fields/boolean_field.rb
avo-3.18.0.tw4 lib/avo/fields/boolean_field.rb
avo-3.18.0 lib/avo/fields/boolean_field.rb
avo-3.17.9.beta2 lib/avo/fields/boolean_field.rb
avo-3.17.9.beta1 lib/avo/fields/boolean_field.rb
avo-3.17.9.tw4 lib/avo/fields/boolean_field.rb
avo-3.17.9 lib/avo/fields/boolean_field.rb
avo-3.17.8.tw4 lib/avo/fields/boolean_field.rb
avo-3.17.8 lib/avo/fields/boolean_field.rb
avo-3.17.7 lib/avo/fields/boolean_field.rb
avo-3.17.6.tw4 lib/avo/fields/boolean_field.rb
avo-3.17.6 lib/avo/fields/boolean_field.rb
avo-3.17.5 lib/avo/fields/boolean_field.rb
avo-3.17.4 lib/avo/fields/boolean_field.rb
avo-3.17.3 lib/avo/fields/boolean_field.rb
avo-3.17.5.tw4 lib/avo/fields/boolean_field.rb
avo-3.17.4.tw4 lib/avo/fields/boolean_field.rb
avo-3.17.3.tw4 lib/avo/fields/boolean_field.rb
avo-3.17.2.tw4 lib/avo/fields/boolean_field.rb