Sha256: b2b8a8c12dae38616b27ddf2853c5813b026b3c78ff9fef2dfb62f928bebbceb

Contents?: true

Size: 887 Bytes

Versions: 5

Compression:

Stored size: 887 Bytes

Contents

# frozen_string_literal: true
module Arel
  module Attributes
    class Attribute < Struct.new :relation, :name
      include Arel::Expressions
      include Arel::Predications
      include Arel::AliasPredication
      include Arel::OrderPredications
      include Arel::Math

      ###
      # Create a node for lowering this attribute
      def lower
        relation.lower self
      end

      def type_cast_for_database(value)
        relation.type_cast_for_database(name, value)
      end

      def able_to_type_cast?
        relation.able_to_type_cast?
      end
    end

    class String    < Attribute; end
    class Time      < Attribute; end
    class Boolean   < Attribute; end
    class Decimal   < Attribute; end
    class Float     < Attribute; end
    class Integer   < Attribute; end
    class Undefined < Attribute; end
  end

  Attribute = Attributes::Attribute
end

Version data entries

5 entries across 5 versions & 3 rubygems

Version Path
spiral_form-0.1.1 vendor/bundle/gems/arel-9.0.0/lib/arel/attributes/attribute.rb
spiral_form-0.1.0 vendor/bundle/gems/arel-9.0.0/lib/arel/attributes/attribute.rb
nullifyable-0.1.0 vendor/bundle/gems/arel-9.0.0/lib/arel/attributes/attribute.rb
arel-9.0.0 lib/arel/attributes/attribute.rb
arel-8.0.0 lib/arel/attributes/attribute.rb