Module: ActiveRecord::ConnectionAdapters::MSSQL::Quoting::ClassMethods
- Defined in:
- lib/arjdbc/mssql/quoting.rb
Overview
:nodoc:
Instance Method Summary collapse
- #column_name_matcher ⇒ Object
- #column_name_with_order_matcher ⇒ Object
- #mssql_quote_column_name(name) ⇒ Object
-
#mssql_quote_name_part(part) ⇒ Object
Implements the quoting style for SQL Server.
- #quote_column_name(name) ⇒ Object
- #quote_table_name(name) ⇒ Object
Instance Method Details
#column_name_matcher ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/arjdbc/mssql/quoting.rb', line 13 def column_name_matcher / \A ( (?: # \[table_name\].\[column_name\] | function(one or no argument) ((?:\w+\.|\[\w+\]\.)?(?:\w+|\[\w+\])) | \w+\((?:|\g<2>)\) ) (?:\s+AS\s+(?:\w+|\[\w+\]))? ) (?:\s*,\s*\g<1>)* \z /ix end |
#column_name_with_order_matcher ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/arjdbc/mssql/quoting.rb', line 28 def column_name_with_order_matcher / \A ( (?: # \[table_name\].\[column_name\] | function(one or no argument) ((?:\w+\.|\[\w+\]\.)?(?:\w+|\[\w+\])) | \w+\((?:|\g<2>)\) ) (?:\s+ASC|\s+DESC)? ) (?:\s*,\s*\g<1>)* \z /ix end |
#mssql_quote_column_name(name) ⇒ Object
51 52 53 54 55 |
# File 'lib/arjdbc/mssql/quoting.rb', line 51 def mssql_quote_column_name(name) name = name.to_s.split(".") name.map! { |n| mssql_quote_name_part(n) } # "[#{name}]" name.join(".") end |
#mssql_quote_name_part(part) ⇒ Object
Implements the quoting style for SQL Server
58 59 60 |
# File 'lib/arjdbc/mssql/quoting.rb', line 58 def mssql_quote_name_part(part) part =~ /^\[.*\]$/ ? part : "[#{part.gsub(']', ']]')}]" end |
#quote_column_name(name) ⇒ Object
43 44 45 |
# File 'lib/arjdbc/mssql/quoting.rb', line 43 def quote_column_name(name) QUOTED_COLUMN_NAMES[name] ||= mssql_quote_column_name(name) end |
#quote_table_name(name) ⇒ Object
47 48 49 |
# File 'lib/arjdbc/mssql/quoting.rb', line 47 def quote_table_name(name) QUOTED_TABLE_NAMES[name] ||= mssql_quote_column_name(name) end |