class Bricolage::TableSpec

Attributes

name[R]
schema[R]

Public Class Methods

new(schema, name) click to toggle source
# File lib/bricolage/sqlstatement.rb, line 323
def initialize(schema, name)
  @schema = schema
  @name = name
end
parse(spec) click to toggle source

“[SCHEMA.]TABLE” -> TableSpec(SCHEMA, TABLE)

# File lib/bricolage/sqlstatement.rb, line 304
def TableSpec.parse(spec)
  new(*split_name(spec))
end
split_name(name_pair) click to toggle source

“TABLE” -> [nil, “TABLE”] “SCHEMA.TABLE” -> [“SCHEMA”, “TABLE”]

# File lib/bricolage/sqlstatement.rb, line 310
def TableSpec.split_name(name_pair)
  raise ParameterError, "table spec is empty" if name_pair.strip.empty?
  components = name_pair.split('.', 2)
  if components.size == 1
    return nil, components.first
  else
    s, t = components
    raise ParameterError, "schema name is blank" if not s or s.empty?
    raise ParameterError, "table name is blank" if not t or t.empty?
    return s, t
  end
end

Public Instance Methods

==(other) click to toggle source
# File lib/bricolage/sqlstatement.rb, line 339
def ==(other)
  return false unless other.kind_of?(TableSpec)
  @schema == other.schema and @name == other.name
end
Also aliased as: eql?
eql?(other)
Alias for: ==
hash() click to toggle source
# File lib/bricolage/sqlstatement.rb, line 346
def hash
  @schema.hash ^ @name.hash
end
inspect() click to toggle source
# File lib/bricolage/sqlstatement.rb, line 335
def inspect
  "\#<#{self.class} #{to_s}>"
end
to_s() click to toggle source
# File lib/bricolage/sqlstatement.rb, line 331
def to_s
  @schema ? "#{@schema}.#{@name}" : @name
end