Class: TeradataCli::DBObject

Inherits:
Object
  • Object
show all
Defined in:
lib/teradata-cli/dbobject.rb

Direct Known Subclasses

HashIndex, JoinIndex, Macro, Procedure, Table, View

Constant Summary collapse

OBJECT_TYPES =
{}

Class Attribute Summary collapse

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(x, y = nil) ⇒ DBObject

Returns a new instance of DBObject.



336
337
338
339
340
341
342
343
344
# File 'lib/teradata-cli/dbobject.rb', line 336

def initialize(x, y = nil)
  if y
    @database = x
    @name = y
  else
    @database = nil
    @name = x
  end
end

Class Attribute Details

.type_charObject (readonly)

Returns the value of attribute type_char.



326
327
328
# File 'lib/teradata-cli/dbobject.rb', line 326

def type_char
  @type_char
end

.type_nameObject (readonly)

Returns the value of attribute type_name.



327
328
329
# File 'lib/teradata-cli/dbobject.rb', line 327

def type_name
  @type_name
end

Instance Attribute Details

#databaseObject (readonly)

Returns the value of attribute database.



346
347
348
# File 'lib/teradata-cli/dbobject.rb', line 346

def database
  @database
end

Class Method Details

.create(type_char, *args) ⇒ Object



330
331
332
333
334
# File 'lib/teradata-cli/dbobject.rb', line 330

def DBObject.create(type_char, *args)
  cls = OBJECT_TYPES[type_char] or
      raise ArgumentError, "unknown type char: #{type_char.inspect}"
  cls.new(*args)
end

.declare_type(c, name) ⇒ Object



320
321
322
323
324
# File 'lib/teradata-cli/dbobject.rb', line 320

def declare_type(c, name)
  OBJECT_TYPES[c] = self
  @type_char = c
  @type_name = name
end

.intern(spec) ⇒ Object



309
310
311
# File 'lib/teradata-cli/dbobject.rb', line 309

def DBObject.intern(spec)
  spec.kind_of?(DBObject) ? spec : parse(spec)
end

.parse(spec) ⇒ Object



313
314
315
# File 'lib/teradata-cli/dbobject.rb', line 313

def DBObject.parse(spec)
  new(* spec.split('.', 2))
end

Instance Method Details

#==(other) ⇒ Object



362
363
364
# File 'lib/teradata-cli/dbobject.rb', line 362

def ==(other)
  other.kind_of?(self.class) and self.name == other.name
end

#inspectObject



358
359
360
# File 'lib/teradata-cli/dbobject.rb', line 358

def inspect
  "\#<#{self.class} #{name}>"
end

#nameObject Also known as: to_s



352
353
354
# File 'lib/teradata-cli/dbobject.rb', line 352

def name
  @database ? "#{@database}.#{@name}" : @name
end

#type_charObject



366
367
368
# File 'lib/teradata-cli/dbobject.rb', line 366

def type_char
  self.class.type_char
end

#type_nameObject



370
371
372
# File 'lib/teradata-cli/dbobject.rb', line 370

def type_name
  self.class.type_name
end

#unqualified_nameObject



348
349
350
# File 'lib/teradata-cli/dbobject.rb', line 348

def unqualified_name
  @name
end