Module: ActiveRecord::ConnectionAdapters::OracleEnhancedProcedures::ClassMethods

Defined in:
lib/active_record/connection_adapters/oracle_enhanced_procedures.rb

Instance Method Summary collapse

Instance Method Details

#create_method_name_before_custom_methodsObject

:nodoc:



55
56
57
58
59
60
61
62
63
# File 'lib/active_record/connection_adapters/oracle_enhanced_procedures.rb', line 55

def create_method_name_before_custom_methods #:nodoc:
  if private_method_defined?(:create_without_timestamps) && defined?(ActiveRecord::VERSION) && ActiveRecord::VERSION::STRING.to_f >= 2.3
    :create_without_timestamps
  elsif private_method_defined?(:create_without_callbacks)
    :create_without_callbacks
  else
    :create
  end
end

#destroy_method_name_before_custom_methodsObject

:nodoc:



77
78
79
80
81
82
83
# File 'lib/active_record/connection_adapters/oracle_enhanced_procedures.rb', line 77

def destroy_method_name_before_custom_methods #:nodoc:
  if public_method_defined?(:destroy_without_callbacks)
    :destroy_without_callbacks
  else
    :destroy
  end
end

#set_create_method(&block) ⇒ Object

Specify custom create method which should be used instead of Rails generated INSERT statement. Provided block should return ID of new record. Example:

set_create_method do
  plsql.employees_pkg.create_employee(
    :p_first_name => first_name,
    :p_last_name => last_name,
    :p_employee_id => nil
  )[:p_employee_id]
end


24
25
26
27
# File 'lib/active_record/connection_adapters/oracle_enhanced_procedures.rb', line 24

def set_create_method(&block)
  include_with_custom_methods
  self.custom_create_method = block
end

#set_delete_method(&block) ⇒ Object

Specify custom delete method which should be used instead of Rails generated DELETE statement. Example:

set_delete_method do
  plsql.employees_pkg.delete_employee(
    :p_employee_id => id
  )
end


50
51
52
53
# File 'lib/active_record/connection_adapters/oracle_enhanced_procedures.rb', line 50

def set_delete_method(&block)
  include_with_custom_methods
  self.custom_delete_method = block
end

#set_update_method(&block) ⇒ Object

Specify custom update method which should be used instead of Rails generated UPDATE statement. Example:

set_update_method do
  plsql.employees_pkg.update_employee(
    :p_employee_id => id,
    :p_first_name => first_name,
    :p_last_name => last_name
  )
end


38
39
40
41
# File 'lib/active_record/connection_adapters/oracle_enhanced_procedures.rb', line 38

def set_update_method(&block)
  include_with_custom_methods
  self.custom_update_method = block
end

#update_method_name_before_custom_methodsObject

:nodoc:



65
66
67
68
69
70
71
72
73
74
75
# File 'lib/active_record/connection_adapters/oracle_enhanced_procedures.rb', line 65

def update_method_name_before_custom_methods #:nodoc:
  if private_method_defined?(:update_without_dirty)
    :update_without_dirty
  elsif private_method_defined?(:update_without_timestamps) && defined?(ActiveRecord::VERSION) && ActiveRecord::VERSION::STRING.to_f >= 2.3
    :update_without_timestamps
  elsif private_method_defined?(:update_without_callbacks)
    :update_without_callbacks
  else
    :update
  end
end