class DbMeta::Oracle::Base

Constants

TYPES

Attributes

extract_type[RW]
name[RW]
status[RW]
system_object[RW]
type[RW]

Public Class Methods

from_type(args = {}) click to toggle source
# File lib/db_meta/oracle/base.rb, line 14
def self.from_type(args = {})
  type = args["OBJECT_TYPE"]

  # return instance of known type
  return TYPES[type].new(args) if TYPES.key?(type)

  # There is no implementation for this type yet. Let's just use Base
  Log.warn("Don't know how to handle oracle type [#{type}] yet")
  Base.new(args)
end
new(args = {}) click to toggle source
# File lib/db_meta/oracle/base.rb, line 25
def initialize(args = {})
  @type = args["OBJECT_TYPE"]
  @name = args["OBJECT_NAME"]

  @status = :unknown
  @status = args["STATUS"].downcase.to_sym if args["STATUS"]

  @extract_type = :default # :default, :embedded, :merged

  @system_object = @name =~ /\$/i # true if there is a '$' in the object name
end
register_type(type) click to toggle source
# File lib/db_meta/oracle/base.rb, line 10
def self.register_type(type)
  TYPES[type] = self
end

Public Instance Methods

ddl_drop() click to toggle source
# File lib/db_meta/oracle/base.rb, line 44
def ddl_drop
  "DROP #{@type} #{@name};"
end
extract(args = {}) click to toggle source
# File lib/db_meta/oracle/base.rb, line 40
def extract(args = {})
  "-- class/method needs to be implemented"
end
fetch() click to toggle source
# File lib/db_meta/oracle/base.rb, line 37
def fetch
end
system_object?() click to toggle source
# File lib/db_meta/oracle/base.rb, line 48
def system_object?
  @system_object
end