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]
74 75 76 |
# File 'lib/active_record/connection_adapters/mysql/quoting.rb', line 74 def column_name_matcher COLUMN_NAME end |
#column_name_with_order_matcher ⇒ Object
[View source]
78 79 80 |
# File 'lib/active_record/connection_adapters/mysql/quoting.rb', line 78 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 23 24 |
# File 'lib/active_record/connection_adapters/mysql/quoting.rb', line 9 def quote_bound_value(value) case value when Rational quote(value.to_f.to_s) when Numeric, ActiveSupport::Duration 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]
26 27 28 |
# File 'lib/active_record/connection_adapters/mysql/quoting.rb', line 26 def quote_column_name(name) self.class.quoted_column_names[name] ||= "`#{super.gsub('`', '``')}`" end |
#quote_table_name(name) ⇒ Object
[View source]
30 31 32 |
# File 'lib/active_record/connection_adapters/mysql/quoting.rb', line 30 def quote_table_name(name) self.class.quoted_table_names[name] ||= super.gsub(".", "`.`").freeze end |
#quoted_binary(value) ⇒ Object
[View source]
50 51 52 |
# File 'lib/active_record/connection_adapters/mysql/quoting.rb', line 50 def quoted_binary(value) "x'#{value.hex}'" end |
#quoted_date(value) ⇒ Object
[View source]
42 43 44 45 46 47 48 |
# File 'lib/active_record/connection_adapters/mysql/quoting.rb', line 42 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.
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/active_record/connection_adapters/mysql/quoting.rb', line 56 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]
38 39 40 |
# File 'lib/active_record/connection_adapters/mysql/quoting.rb', line 38 def unquoted_false 0 end |
#unquoted_true ⇒ Object
[View source]
34 35 36 |
# File 'lib/active_record/connection_adapters/mysql/quoting.rb', line 34 def unquoted_true 1 end |