3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
# File 'lib/arjdbc/jdbc/quoted_primary_key.rb', line 3
def self.extended(base)
meth = [:arel_attributes_values, :attributes_with_quotes].detect do |m|
base.private_instance_methods.include?(m.to_s)
end
pk_hash_key = "self.class.primary_key"
pk_hash_value = '"?"'
if meth == :arel_attributes_values
pk_hash_key = "self.class.arel_table[#{pk_hash_key}]"
pk_hash_value = "Arel::SqlLiteral.new(#{pk_hash_value})"
end
if meth
base.module_eval " alias :\#{meth}_pre_pk :\#{meth}\n def \#{meth}(include_primary_key = true, *args) #:nodoc:\n aq = \#{meth}_pre_pk(include_primary_key, *args)\n if connection.is_a?(ArJdbc::Oracle) || connection.is_a?(ArJdbc::Mimer)\n aq[\#{pk_hash_key}] = \#{pk_hash_value} if include_primary_key && aq[\#{pk_hash_key}].nil?\n end\n aq\n end\n PK\n end\nend\n", __FILE__, __LINE__
|