Sha256: 25d8e82648ff49210da1a04c38c5681853018d992f87a4c102b84770ea6cb856

Contents?: true

Size: 1.01 KB

Versions: 10

Compression:

Stored size: 1.01 KB

Contents

# frozen_string_literal: true

require 'active_support'
require 'active_support/all'
require_relative 'declare_schema/version'

ActiveSupport::Dependencies.autoload_paths |= [__dir__]

module DeclareSchema
  class Boolean; end

  PLAIN_TYPES = {
    boolean:  Boolean,
    date:     Date,
    datetime: ActiveSupport::TimeWithZone,
    time:     Time,
    integer:  Integer,
    decimal:  BigDecimal,
    float:    Float,
    string:   String,
    text:     String
  }.freeze

  class << self
    def to_class(type)
      case type
      when Class
        type
      when Symbol, String
        PLAIN_TYPES[type.to_sym]
      else
        raise ArgumentError, "expected Class or Symbol or String: got #{type.inspect}"
      end
    end
  end
end

require 'declare_schema/extensions/active_record/fields_declaration'
require 'declare_schema/field_declaration_dsl'
require 'declare_schema/model'
require 'declare_schema/model/field_spec'
require 'declare_schema/model/index_spec'

require 'declare_schema/railtie' if defined?(Rails)

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
declare_schema-0.3.1 lib/declare_schema.rb
declare_schema-0.3.0 lib/declare_schema.rb
declare_schema-0.3.0.pre.2 lib/declare_schema.rb
declare_schema-0.3.0.pre.1 lib/declare_schema.rb
declare_schema-0.2.0 lib/declare_schema.rb
declare_schema-0.2.0.pre.1 lib/declare_schema.rb
declare_schema-0.1.3 lib/declare_schema.rb
declare_schema-0.1.2 lib/declare_schema.rb
declare_schema-0.1.1 lib/declare_schema.rb
declare_schema-0.1.0 lib/declare_schema.rb