Sha256: 526b943596b821ecaa3fd4aff6759785253871cec895b0fe5fb21053efc0616f

Contents?: true

Size: 1.51 KB

Versions: 12

Compression:

Stored size: 1.51 KB

Contents

module Torque
  module PostgreSQL
    module Adapter
      module ColumnMethods

        def interval(*args, **options)
          args.each { |name| column(name, :interval, options) }
        end

        def enum(*args, **options)
          args.each do |name|
            type = options.fetch(:subtype, name)
            column(name, type, options)
          end
        end

      end

      module TableDefinition
        include ColumnMethods

        attr_reader :inherits

        def initialize(name, *args, **options)
          old_args = []
          old_args << options.delete(:temporary) || false
          old_args << options.delete(:options)
          old_args << options.delete(:as)
          comment = options.delete(:comment)

          super(name, *old_args, comment: comment)

          if options.key?(:inherits)
            @inherits = Array[options.delete(:inherits)].flatten.compact
            @inherited_id = !(options.key?(:primary_key) || options.key?(:id))
          end
        end

        def inherited_id?
          @inherited_id
        end
      end

      ActiveRecord::ConnectionAdapters::PostgreSQL::Table.include ColumnMethods
      ActiveRecord::ConnectionAdapters::PostgreSQL::TableDefinition.include TableDefinition

      if ActiveRecord::ConnectionAdapters::PostgreSQL.const_defined?('ColumnDefinition')
        module ColumnDefinition
          attr_accessor :subtype
        end

        ActiveRecord::ConnectionAdapters::PostgreSQL::ColumnDefinition.include ColumnDefinition
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
torque-postgresql-0.2.12 lib/torque/postgresql/adapter/schema_definitions.rb
torque-postgresql-0.2.11 lib/torque/postgresql/adapter/schema_definitions.rb
torque-postgresql-0.2.10 lib/torque/postgresql/adapter/schema_definitions.rb
torque-postgresql-0.2.9 lib/torque/postgresql/adapter/schema_definitions.rb
torque-postgresql-0.2.8 lib/torque/postgresql/adapter/schema_definitions.rb
torque-postgresql-0.2.7 lib/torque/postgresql/adapter/schema_definitions.rb
torque-postgresql-0.2.6 lib/torque/postgresql/adapter/schema_definitions.rb
torque-postgresql-0.2.5 lib/torque/postgresql/adapter/schema_definitions.rb
torque-postgresql-0.2.4 lib/torque/postgresql/adapter/schema_definitions.rb
torque-postgresql-0.2.3 lib/torque/postgresql/adapter/schema_definitions.rb
torque-postgresql-0.2.2 lib/torque/postgresql/adapter/schema_definitions.rb
torque-postgresql-0.2.1 lib/torque/postgresql/adapter/schema_definitions.rb