From bbef7b012f8ef3ce9c92c553379a63814201e12f Mon Sep 17 00:00:00 2001 From: Seamus Abshere Date: Wed, 1 Feb 2012 18:58:00 -0600 Subject: Possibly clearer way of getting rid of ` and " Incidentally it's also faster... >> a = 'hello "id` world'; Benchmark.realtime { 500_000.times { a.tr('`"', "") } } => 0.7388770580291748 >> a = 'hello "id` world'; Benchmark.realtime { 500_000.times { a.gsub(/[`"]/, "") } } => 1.7843739986419678 --- .../lib/active_record/connection_adapters/abstract_mysql_adapter.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'activerecord') diff --git a/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb b/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb index 9d9dbcc355..9fc5973635 100644 --- a/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb +++ b/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb @@ -505,7 +505,7 @@ module ActiveRecord execute_and_free("SHOW CREATE TABLE #{quote_table_name(table)}", 'SCHEMA') do |result| create_table = each_hash(result).first[:"Create Table"] if create_table.to_s =~ /PRIMARY KEY\s+\((.+)\)/ - keys = $1.split(",").map { |key| key.gsub(/[`"]/, "") } + keys = $1.split(",").map { |key| key.tr('`"', "") } keys.length == 1 ? [keys.first, nil] : nil else nil -- cgit v1.2.3 From 602e038ac5f0f801fe110243557c8751c793bc0a Mon Sep 17 00:00:00 2001 From: Seamus Abshere Date: Tue, 14 Feb 2012 09:34:11 -0600 Subject: thanks to @jurriaan --- .../lib/active_record/connection_adapters/abstract_mysql_adapter.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'activerecord') diff --git a/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb b/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb index 9fc5973635..761e929fde 100644 --- a/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb +++ b/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb @@ -505,7 +505,7 @@ module ActiveRecord execute_and_free("SHOW CREATE TABLE #{quote_table_name(table)}", 'SCHEMA') do |result| create_table = each_hash(result).first[:"Create Table"] if create_table.to_s =~ /PRIMARY KEY\s+\((.+)\)/ - keys = $1.split(",").map { |key| key.tr('`"', "") } + keys = $1.split(",").map { |key| key.delete('`"') } keys.length == 1 ? [keys.first, nil] : nil else nil -- cgit v1.2.3