Module: ActiveRecord::ConnectionAdapters::MySQL::Quoting
- Included in:
- AbstractMysqlAdapter
- Defined in:
- lib/active_record/connection_adapters/mysql/quoting.rb
Overview
:nodoc:
Instance Method Summary collapse
- #column_name_matcher ⇒ Object
- #column_name_with_order_matcher ⇒ Object
- #quote_bound_value(value) ⇒ Object
- #quote_column_name(name) ⇒ Object
- #quote_table_name(name) ⇒ Object
- #quoted_binary(value) ⇒ Object
- #quoted_date(value) ⇒ Object
-
#type_cast(value) ⇒ Object
Override
type_cast
we pass to mysql2 Date and Time objects instead of Strings since mysql2 is able to handle those classes more efficiently. - #unquoted_false ⇒ Object
- #unquoted_true ⇒ Object
Instance Method Details
#column_name_matcher ⇒ Object
[View source]
72 73 74 |
# File 'lib/active_record/connection_adapters/mysql/quoting.rb', line 72 def column_name_matcher COLUMN_NAME end |
#column_name_with_order_matcher ⇒ Object
[View source]
76 77 78 |
# File 'lib/active_record/connection_adapters/mysql/quoting.rb', line 76 def column_name_with_order_matcher COLUMN_NAME_WITH_ORDER end |
#quote_bound_value(value) ⇒ Object
[View source]
9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/active_record/connection_adapters/mysql/quoting.rb', line 9 def quote_bound_value(value) case value when Numeric quote(value.to_s) when BigDecimal quote(value.to_s("F")) when true "'1'" when false "'0'" else quote(value) end end |
#quote_column_name(name) ⇒ Object
[View source]
24 25 26 |
# File 'lib/active_record/connection_adapters/mysql/quoting.rb', line 24 def quote_column_name(name) self.class.quoted_column_names[name] ||= "`#{super.gsub('`', '``')}`" end |
#quote_table_name(name) ⇒ Object
[View source]
28 29 30 |
# File 'lib/active_record/connection_adapters/mysql/quoting.rb', line 28 def quote_table_name(name) self.class.quoted_table_names[name] ||= super.gsub(".", "`.`").freeze end |
#quoted_binary(value) ⇒ Object
[View source]
48 49 50 |
# File 'lib/active_record/connection_adapters/mysql/quoting.rb', line 48 def quoted_binary(value) "x'#{value.hex}'" end |
#quoted_date(value) ⇒ Object
[View source]
40 41 42 43 44 45 46 |
# File 'lib/active_record/connection_adapters/mysql/quoting.rb', line 40 def quoted_date(value) if supports_datetime_with_precision? super else super.sub(/\.\d{6}\z/, "") end end |
#type_cast(value) ⇒ Object
Override type_cast
we pass to mysql2 Date and Time objects instead of Strings since mysql2 is able to handle those classes more efficiently.
54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/active_record/connection_adapters/mysql/quoting.rb', line 54 def type_cast(value) # :nodoc: case value when ActiveSupport::TimeWithZone # We need to check explicitly for ActiveSupport::TimeWithZone because # we need to transform it to Time objects but we don't want to # transform Time objects to themselves. if ActiveRecord.default_timezone == :utc value.getutc else value.getlocal end when Date, Time value else super end end |
#unquoted_false ⇒ Object
[View source]
36 37 38 |
# File 'lib/active_record/connection_adapters/mysql/quoting.rb', line 36 def unquoted_false 0 end |
#unquoted_true ⇒ Object
[View source]
32 33 34 |
# File 'lib/active_record/connection_adapters/mysql/quoting.rb', line 32 def unquoted_true 1 end |