Class: DbMeta::Abstract

Inherits:
Object
  • Object
show all
Defined in:
lib/db_meta/abstract.rb

Direct Known Subclasses

Oracle::Oracle

Constant Summary collapse

TYPES =
{}

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(args = {}) ⇒ Abstract

Returns a new instance of Abstract.



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/db_meta/abstract.rb', line 16

def initialize(args={})
  @username = args[:username]
  @password = args[:password]
  @instance = args[:instance]
  @worker = args[:worker] || 10

  @include = args[:include]

  @objects = []
  @invalid_objects = Hash.new([])

  @base_folder = args[:base_folder] || File.expand_path(File.join(Dir.pwd,"/#{@username}@#{@instance}"))

  raise 'username is mandatory, pass a username argument during initialization' if @username.nil?
  raise 'password is mandatory, pass a password argument during initialization' if @password.nil?
  raise 'instance is mandatory, pass a instance argument during initialization' if @instance.nil?
end

Class Method Details

.from_type(type, args = {}) ⇒ Object



11
12
13
14
# File 'lib/db_meta/abstract.rb', line 11

def self.from_type(type, args={})
  raise "Abstract type [#{type}] is unknown" unless TYPES.keys.include?(type)
  TYPES[type].new(args)
end

.register_type(type) ⇒ Object



7
8
9
# File 'lib/db_meta/abstract.rb', line 7

def self.register_type(type)
  TYPES[type] = self
end

Instance Method Details

#extract(args = {}) ⇒ Object



38
39
40
# File 'lib/db_meta/abstract.rb', line 38

def extract(args={})
  raise 'Needs to be implemented in derived class'
end

#fetch(args = {}) ⇒ Object



34
35
36
# File 'lib/db_meta/abstract.rb', line 34

def fetch(args={})
  raise 'Needs to be implemented in derived class'
end