From b5261d0225b5b4da2a7839b1a48a5872313b9f7d Mon Sep 17 00:00:00 2001 From: Yehuda Katz Date: Tue, 3 Jan 2012 00:41:04 -0800 Subject: [PATCH] Clean up module usage. There's no need to use InstanceMethods -- normal Ruby modules and includes will work fine here. --- .../active_record/adapters/mysql2_adapter.rb | 4 +- .../active_record/adapters/mysql_adapter.rb | 4 +- .../adapters/postgresql_adapter.rb | 2 +- .../active_record/adapters/sqlite3_adapter.rb | 2 +- .../adapters/mysql_adapter.rb | 106 +++++++++--------- .../adapters/postgresql_adapter.rb | 12 +- .../adapters/sqlite3_adapter.rb | 6 +- 7 files changed, 61 insertions(+), 75 deletions(-) diff --git a/lib/activerecord-import/active_record/adapters/mysql2_adapter.rb b/lib/activerecord-import/active_record/adapters/mysql2_adapter.rb index 6288128..7f34e2f 100644 --- a/lib/activerecord-import/active_record/adapters/mysql2_adapter.rb +++ b/lib/activerecord-import/active_record/adapters/mysql2_adapter.rb @@ -2,5 +2,5 @@ require "active_record/connection_adapters/mysql2_adapter" require "activerecord-import/adapters/mysql_adapter" class ActiveRecord::ConnectionAdapters::Mysql2Adapter - include ActiveRecord::Import::MysqlAdapter::InstanceMethods -end \ No newline at end of file + include ActiveRecord::Import::MysqlAdapter +end diff --git a/lib/activerecord-import/active_record/adapters/mysql_adapter.rb b/lib/activerecord-import/active_record/adapters/mysql_adapter.rb index 7798ffd..b21ec63 100644 --- a/lib/activerecord-import/active_record/adapters/mysql_adapter.rb +++ b/lib/activerecord-import/active_record/adapters/mysql_adapter.rb @@ -2,5 +2,5 @@ require "active_record/connection_adapters/mysql_adapter" require "activerecord-import/adapters/mysql_adapter" class ActiveRecord::ConnectionAdapters::MysqlAdapter - include ActiveRecord::Import::MysqlAdapter::InstanceMethods -end \ No newline at end of file + include ActiveRecord::Import::MysqlAdapter +end diff --git a/lib/activerecord-import/active_record/adapters/postgresql_adapter.rb b/lib/activerecord-import/active_record/adapters/postgresql_adapter.rb index 8da024b..6a17b08 100644 --- a/lib/activerecord-import/active_record/adapters/postgresql_adapter.rb +++ b/lib/activerecord-import/active_record/adapters/postgresql_adapter.rb @@ -2,6 +2,6 @@ require "active_record/connection_adapters/postgresql_adapter" require "activerecord-import/adapters/postgresql_adapter" class ActiveRecord::ConnectionAdapters::PostgreSQLAdapter - include ActiveRecord::Import::PostgreSQLAdapter::InstanceMethods + include ActiveRecord::Import::PostgreSQLAdapter end diff --git a/lib/activerecord-import/active_record/adapters/sqlite3_adapter.rb b/lib/activerecord-import/active_record/adapters/sqlite3_adapter.rb index 45d6d58..f0940c8 100644 --- a/lib/activerecord-import/active_record/adapters/sqlite3_adapter.rb +++ b/lib/activerecord-import/active_record/adapters/sqlite3_adapter.rb @@ -2,6 +2,6 @@ require "active_record/connection_adapters/sqlite3_adapter" require "activerecord-import/adapters/sqlite3_adapter" class ActiveRecord::ConnectionAdapters::Sqlite3Adapter - include ActiveRecord::Import::Sqlite3Adapter::InstanceMethods + include ActiveRecord::Import::Sqlite3Adapter end diff --git a/lib/activerecord-import/adapters/mysql_adapter.rb b/lib/activerecord-import/adapters/mysql_adapter.rb index 3310d88..44ade0d 100644 --- a/lib/activerecord-import/adapters/mysql_adapter.rb +++ b/lib/activerecord-import/adapters/mysql_adapter.rb @@ -1,59 +1,53 @@ module ActiveRecord::Import::MysqlAdapter - module InstanceMethods - def self.included(klass) - klass.instance_eval do - include ActiveRecord::Import::ImportSupport - include ActiveRecord::Import::OnDuplicateKeyUpdateSupport - end - end - - # Returns the maximum number of bytes that the server will allow - # in a single packet - def max_allowed_packet # :nodoc: - result = execute( "SHOW VARIABLES like 'max_allowed_packet';" ) - # original Mysql gem responds to #fetch_row while Mysql2 responds to #first - val = result.respond_to?(:fetch_row) ? result.fetch_row[1] : result.first[1] - val.to_i - end - - # Returns a generated ON DUPLICATE KEY UPDATE statement given the passed - # in +args+. - def sql_for_on_duplicate_key_update( table_name, *args ) # :nodoc: - sql = ' ON DUPLICATE KEY UPDATE ' - arg = args.first - if arg.is_a?( Array ) - sql << sql_for_on_duplicate_key_update_as_array( table_name, arg ) - elsif arg.is_a?( Hash ) - sql << sql_for_on_duplicate_key_update_as_hash( table_name, arg ) - elsif arg.is_a?( String ) - sql << arg - else - raise ArgumentError.new( "Expected Array or Hash" ) - end - sql - end + include ActiveRecord::Import::ImportSupport + include ActiveRecord::Import::OnDuplicateKeyUpdateSupport - def sql_for_on_duplicate_key_update_as_array( table_name, arr ) # :nodoc: - results = arr.map do |column| - qc = quote_column_name( column ) - "#{table_name}.#{qc}=VALUES(#{qc})" - end - results.join( ',' ) - end - - def sql_for_on_duplicate_key_update_as_hash( table_name, hsh ) # :nodoc: - sql = ' ON DUPLICATE KEY UPDATE ' - results = hsh.map do |column1, column2| - qc1 = quote_column_name( column1 ) - qc2 = quote_column_name( column2 ) - "#{table_name}.#{qc1}=VALUES( #{qc2} )" - end - results.join( ',') - end - - #return true if the statement is a duplicate key record error - def duplicate_key_update_error?(exception)# :nodoc: - exception.is_a?(ActiveRecord::StatementInvalid) && exception.to_s.include?('Duplicate entry') - end + # Returns the maximum number of bytes that the server will allow + # in a single packet + def max_allowed_packet # :nodoc: + result = execute( "SHOW VARIABLES like 'max_allowed_packet';" ) + # original Mysql gem responds to #fetch_row while Mysql2 responds to #first + val = result.respond_to?(:fetch_row) ? result.fetch_row[1] : result.first[1] + val.to_i end -end \ No newline at end of file + + # Returns a generated ON DUPLICATE KEY UPDATE statement given the passed + # in +args+. + def sql_for_on_duplicate_key_update( table_name, *args ) # :nodoc: + sql = ' ON DUPLICATE KEY UPDATE ' + arg = args.first + if arg.is_a?( Array ) + sql << sql_for_on_duplicate_key_update_as_array( table_name, arg ) + elsif arg.is_a?( Hash ) + sql << sql_for_on_duplicate_key_update_as_hash( table_name, arg ) + elsif arg.is_a?( String ) + sql << arg + else + raise ArgumentError.new( "Expected Array or Hash" ) + end + sql + end + + def sql_for_on_duplicate_key_update_as_array( table_name, arr ) # :nodoc: + results = arr.map do |column| + qc = quote_column_name( column ) + "#{table_name}.#{qc}=VALUES(#{qc})" + end + results.join( ',' ) + end + + def sql_for_on_duplicate_key_update_as_hash( table_name, hsh ) # :nodoc: + sql = ' ON DUPLICATE KEY UPDATE ' + results = hsh.map do |column1, column2| + qc1 = quote_column_name( column1 ) + qc2 = quote_column_name( column2 ) + "#{table_name}.#{qc1}=VALUES( #{qc2} )" + end + results.join( ',') + end + + #return true if the statement is a duplicate key record error + def duplicate_key_update_error?(exception)# :nodoc: + exception.is_a?(ActiveRecord::StatementInvalid) && exception.to_s.include?('Duplicate entry') + end +end diff --git a/lib/activerecord-import/adapters/postgresql_adapter.rb b/lib/activerecord-import/adapters/postgresql_adapter.rb index a5f7114..945c1b7 100644 --- a/lib/activerecord-import/adapters/postgresql_adapter.rb +++ b/lib/activerecord-import/adapters/postgresql_adapter.rb @@ -1,13 +1,7 @@ module ActiveRecord::Import::PostgreSQLAdapter - module InstanceMethods - def self.included(klass) - klass.instance_eval do - include ActiveRecord::Import::ImportSupport - end - end + include ActiveRecord::Import::ImportSupport - def next_value_for_sequence(sequence_name) - %{nextval('#{sequence_name}')} - end + def next_value_for_sequence(sequence_name) + %{nextval('#{sequence_name}')} end end diff --git a/lib/activerecord-import/adapters/sqlite3_adapter.rb b/lib/activerecord-import/adapters/sqlite3_adapter.rb index e023b8b..0d298a4 100644 --- a/lib/activerecord-import/adapters/sqlite3_adapter.rb +++ b/lib/activerecord-import/adapters/sqlite3_adapter.rb @@ -1,7 +1,5 @@ module ActiveRecord::Import::Sqlite3Adapter - module InstanceMethods - def next_value_for_sequence(sequence_name) - %{nextval('#{sequence_name}')} - end + def next_value_for_sequence(sequence_name) + %{nextval('#{sequence_name}')} end end