module ActiveRecord::PLSQL::ProcedureMethods
Private Instance Methods
call_procedure(procedure, options = {}) { |self, result| ... }
click to toggle source
# File lib/active_record/plsql/procedure_methods.rb, line 130 def call_procedure(procedure, options = {}) result = procedure.exec(*get_procedure_arguments(procedure, options)) if block_given? yield(self, result) else result end end
call_procedure_method(method, arguments = {}, opts = {})
click to toggle source
# File lib/active_record/plsql/procedure_methods.rb, line 114 def call_procedure_method(method, arguments = {}, opts = {}) procedure, options, block = procedure_methods[method].values_at(:procedure, :options, :block) options = options.merge(opts) if options[:arguments] if arguments.is_a?(Hash) arguments = arguments.merge(instance_exec(&options[:arguments])) else arguments += options[:arguments] end end options[:arguments] = arguments call_procedure(procedure, options, &block) end
get_procedure_arguments(procedure, options)
click to toggle source
# File lib/active_record/plsql/procedure_methods.rb, line 139 def get_procedure_arguments(procedure, options) arguments = options[:arguments] arguments = arguments.dup if arguments.duplicable? if Hash === arguments arguments.symbolize_keys! arguments_metadata = procedures_arguments[procedure] # throw away unnecessary arguments [arguments.select {|k,_| arguments_metadata[k]}] else arguments end end