Class: Table
- Inherits:
-
Object
- Object
- Table
- Defined in:
- lib/tasks/db.rb
Instance Attribute Summary collapse
-
#columns ⇒ Object
Returns the value of attribute columns.
-
#id ⇒ Object
Returns the value of attribute id.
-
#name ⇒ Object
Returns the value of attribute name.
-
#opts ⇒ Object
Returns the value of attribute opts.
-
#perms_for_user ⇒ Object
Returns the value of attribute perms_for_user.
Instance Method Summary collapse
- #grant(*args, to: nil) ⇒ Object
-
#initialize ⇒ Table
constructor
A new instance of Table.
- #method_missing(method_sym, *arguments, &block) ⇒ Object
- #revoke(*args, from: nil) ⇒ Object
Constructor Details
#initialize ⇒ Table
Returns a new instance of Table.
346 347 348 |
# File 'lib/tasks/db.rb', line 346 def initialize() @columns = [] end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method_sym, *arguments, &block) ⇒ Object
366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 |
# 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 |
Instance Attribute Details
#columns ⇒ Object
Returns the value of attribute columns.
344 345 346 |
# File 'lib/tasks/db.rb', line 344 def columns @columns end |
#id ⇒ Object
Returns the value of attribute id.
344 345 346 |
# File 'lib/tasks/db.rb', line 344 def id @id end |
#name ⇒ Object
Returns the value of attribute name.
344 345 346 |
# File 'lib/tasks/db.rb', line 344 def name @name end |
#opts ⇒ Object
Returns the value of attribute opts.
344 345 346 |
# File 'lib/tasks/db.rb', line 344 def opts @opts end |
#perms_for_user ⇒ Object
Returns the value of attribute perms_for_user.
344 345 346 |
# File 'lib/tasks/db.rb', line 344 def perms_for_user @perms_for_user end |
Instance Method Details
#grant(*args, to: nil) ⇒ Object
350 351 352 353 354 355 356 |
# 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 |
#revoke(*args, from: nil) ⇒ Object
358 359 360 361 362 363 364 |
# 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 |