class Table

Attributes

columns[RW]
id[RW]
name[RW]
opts[RW]
perms_for_user[RW]

Public Class Methods

new() click to toggle source
# File lib/tasks/db.rb, line 346
def initialize()
  @columns = []
end

Public Instance Methods

grant(*args, to: nil) click to toggle source
# File lib/tasks/db.rb, line 350
def grant *args, to: nil
  to = $db_username if to.nil?
  $check_perms_for.add(to)
  args.each do |arg|
    @perms_for_user[to] |= check_perm(arg)
  end
end
method_missing(method_sym, *arguments, &block) click to toggle source
# File lib/tasks/db.rb, line 366
def method_missing(method_sym, *arguments, &block)
  c = Column.new
  c.type = method_sym.to_s
  c.name = arguments[0]
  c.opts = arguments[1]
  if c.opts
    c.opts[:default] = normalize_default(c.opts[:default]) if c.opts[:default].present?
    c.default = c.opts[:default]
    c.null = c.opts[:null]
    aka = c.opts[:aka]
    if !aka.nil?
      if aka.respond_to?('each')
        c.akas = aka
      else
        c.akas = [aka]
      end
    end
    fk = c.opts.delete(:fk)
    if fk.present?
      if fk.respond_to?('each')
        add_foreign_key self.name, fk[0], column: c.name, primary_key: fk[1]
      else
        add_foreign_key self.name, fk, column: c.name
      end
    end
  else
    c.opts = {}
  end
  @columns.append c
end
revoke(*args, from: nil) click to toggle source
# File lib/tasks/db.rb, line 358
def revoke *args, from: nil
  from = $db_username if from.nil?
  $check_perms_for.add(from)
  args.each do |arg|
    @perms_for_user[from] -= check_perm(arg)
  end
end