class Gratan::DSL::Context::User

Attributes

result[R]

Public Class Methods

new(context, user, host, options, &block) click to toggle source
# File lib/gratan/dsl/context/user.rb, line 8
def initialize(context, user, host, options, &block)
  @object_identifier = "User `#{user}@#{host}`"
  @user = user
  @host = host
  @options = options
  @context = context.merge(:user => user, :host => host, :user_options => options)
  @result = {}
  instance_eval(&block)
end

Public Instance Methods

on(name, options = {}, &block) click to toggle source
# File lib/gratan/dsl/context/user.rb, line 18
def on(name, options = {}, &block)
  name = name.kind_of?(Regexp) ? name : name.to_s

  __validate("Object `#{name}` is already defined") do
    not @result.has_key?(name)
  end

  if @options[:enable_expired] and (expired = options.delete(:expired))
    expired = Time.parse(expired)

    if Time.new >= expired
      log(:warn, "Object `#{name}` has expired", :color => :yellow)
      return
    end
  end

  grant = {:privs => Gratan::DSL::Context::On.new(@context, @user, @host, name, @options, &block).result}
  grant[:with] = options[:with] if options[:with]
  @result[name] = grant
end