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
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
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
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
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
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
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
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
36 37 38 |
# File 'lib/active_record/connection_adapters/mysql/quoting.rb', line 36 def unquoted_false 0 end |
#unquoted_true ⇒ Object
32 33 34 |
# File 'lib/active_record/connection_adapters/mysql/quoting.rb', line 32 def unquoted_true 1 end |