lib/rbmk/operation.rb in rbmk-0.1.0.d vs lib/rbmk/operation.rb in rbmk-0.1.0.e

- old
+ new

@@ -145,19 +145,20 @@ # -------------------------------------------------------------------------- # Okay, now the actual code # + attr_reader :server, :orig, :transformed def initialize conn, mid super conn, mid @orig = {} @transformed = {} end def simple_bind version, dn, password orig = {version: version, dn: dn, password: password} - opts = transformed __method__ => orig.clone + opts = transformed __method__, orig.clone $log.info sprintf('Bind version: %s, dn: %s', log_chunk(orig, opts, '%i', :version), log_chunk(orig, opts, '%p', :dn) ) @server.bind *opts.values_at(:version, :dn, :password) @@ -166,11 +167,11 @@ raise $! end def search base, scope, deref, filter orig = {filter_array: filter, base: base, scope: scope, deref: deref, attrs: @attributes, vals: (not @typesOnly), limit: (@sizelimit.to_i rescue 0)} - opts = transformed __method__ => orig.clone + opts = transformed __method__, orig.clone orig[:filter_string] = LDAP::Server::Filter.to_rfc orig[:filter_array] opts[:filter_string] = LDAP::Server::Filter.to_rfc opts[:filter_array] $log.info sprintf('Search %s from %s, scope: %s, deref: %s, attrs: %s, vals: %s, limit: %s', log_chunk(orig, opts, '%p', :filter_string), log_chunk(orig, opts, '%p', :base), @@ -179,11 +180,11 @@ log_chunk(orig, opts, '%p', :attrs), log_chunk(orig, opts, '%s', :vals), log_chunk(orig, opts, '%i', :limit), ) entries = @server.ldap.search_ext2(*opts.values_at(:base, :scope, :filter_string, :attrs), (not opts[:vals]), nil, nil, 0, 0, opts[:limit]) - transformed(entries: entries).each { |entry| send_SearchResultEntry entry.delete('dn').first, entry } + transformed(:entries, entries).each { |entry| send_SearchResultEntry entry.delete('dn').first, entry } rescue LDAP::ResultError @server.handle_ldap_error end protected @@ -200,16 +201,12 @@ debug "format: #{format.inspect}" debug "key: #{key.inspect}" raise $! end - def transformed spec - raise ArgumentError.new('Please provide a hash with exactly one key.') unless (spec.is_a? Hash) and (1 == spec.count) - spec.each do |type, object| - @orig[type] = object - transformed = RBMK::Transform.send type, object - return @transformed[type] = transformed - end + def transformed type, object + @orig[type] = object + @transformed[type] = RBMK::Transform.send type, object, self rescue $!.log object end