Sha256: 084b8fdd52c3df20d1503d88dedf26d1fad5037deb4280b5d0832757d06a5537
Contents?: true
Size: 1.16 KB
Versions: 4
Compression:
Stored size: 1.16 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] if @options[:target_user] next unless user =~ @options[:target_user] end @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
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
gratan-0.2.6 | lib/gratan/exporter.rb |
gratan-0.2.5 | lib/gratan/exporter.rb |
gratan-0.2.4 | lib/gratan/exporter.rb |
gratan-0.2.3 | lib/gratan/exporter.rb |