Sha256: 50aa818da9e73936686d363efdeee01c5a5f3df17fbfcd8334a8cb07799bdf3d
Contents?: true
Size: 1.07 KB
Versions: 13
Compression:
Stored size: 1.07 KB
Contents
class Gratan::Exporter def self.export(driver, options = {}, &block) self.new(driver, options).export(&block) end def initialize(driver, options = {}) @driver = driver @options = options end def export grants = [] @driver.each_user do |user, host| next if user =~ @options[:ignore_user] @driver.show_grants(user, host) do |stmt| grants << Gratan::GrantParser.parse(stmt) end end pack(grants) end private def pack(grants) packed = {} grants.each do |grant| user = grant.delete(:user) host = grant.delete(:host) user_host = [user, host] object = grant.delete(:object) identified = grant.delete(:identified) required = grant.delete(:require) packed[user_host] ||= {:objects => {}, :options => {}} packed[user_host][:objects][object] = grant packed[user_host][:options][:required] = required if required if @options[:with_identifier] and identified packed[user_host][:options][:identified] = identified end end packed end end
Version data entries
13 entries across 13 versions & 1 rubygems