class DbMeta::Oracle::Grant

Attributes

grantable[R]
grantee[R]
grantor[R]
owner[R]
privilege[R]
table_name[R]

Public Class Methods

new(args = {}) click to toggle source
Calls superclass method DbMeta::Oracle::Base::new
# File lib/db_meta/oracle/types/grant.rb, line 8
def initialize(args = {})
  super(args)
  @extract_type = :merged
end

Public Instance Methods

ddl_drop() click to toggle source
# File lib/db_meta/oracle/types/grant.rb, line 27
def ddl_drop
  buffer = ""

  buffer << ("%-30s" % "-- granted via #{@grantor}: ") if external_grant?
  buffer << "REVOKE #{"%-18s" % @privilege} ON #{"%-32s" % @table_name} FROM #{@grantee};"
  buffer
end
external_grant?() click to toggle source
# File lib/db_meta/oracle/types/grant.rb, line 35
def external_grant?
  @grantee == Connection.instance.username.upcase
end
extract(args = {}) click to toggle source
# File lib/db_meta/oracle/types/grant.rb, line 18
def extract(args = {})
  buffer = ""
  buffer << ("%-30s" % "-- granted via #{@grantor}: ") if external_grant?
  buffer << "GRANT #{"%-18s" % @privilege} ON #{"%-32s" % @table_name} TO #{@grantee}"
  buffer << " WITH GRANT OPTION" if @grantable == "YES"
  buffer << ";"
  buffer
end
fetch(args = {}) click to toggle source
# File lib/db_meta/oracle/types/grant.rb, line 13
def fetch(args = {})
  # definition is comma seperated in the name to prevent re-fetching table for every grant
  @grantee, @owner, @table_name, @grantor, @privilege, @grantable = @name.split(",")
end
sort_value() click to toggle source
# File lib/db_meta/oracle/types/grant.rb, line 39
def sort_value
  return ["2", @grantor, @privilege, @table_name] if external_grant?
  ["1", @grantee, @privilege, @table_name]
end