Module: ActiveRecord::ConnectionAdapters::MySQL::Quoting
- Included in:
- AbstractMysqlAdapter
- Defined in:
- activerecord/lib/active_record/connection_adapters/mysql/quoting.rb
Overview
:nodoc:
Instance Method Summary collapse
- #cast_bound_value(value) ⇒ Object
- #column_name_matcher ⇒ Object
- #column_name_with_order_matcher ⇒ 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. - #unquote_identifier(identifier) ⇒ Object
- #unquoted_false ⇒ Object
- #unquoted_true ⇒ Object
Instance Method Details
#cast_bound_value(value) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'activerecord/lib/active_record/connection_adapters/mysql/quoting.rb', line 9 def cast_bound_value(value) case value when Rational value.to_f.to_s when Numeric value.to_s when BigDecimal value.to_s("F") when true "1" when false "0" when ActiveSupport::Duration warn_quote_duration_deprecated value.to_s else value end end |
#column_name_matcher ⇒ Object
85 86 87 |
# File 'activerecord/lib/active_record/connection_adapters/mysql/quoting.rb', line 85 def column_name_matcher COLUMN_NAME end |
#column_name_with_order_matcher ⇒ Object
89 90 91 |
# File 'activerecord/lib/active_record/connection_adapters/mysql/quoting.rb', line 89 def column_name_with_order_matcher COLUMN_NAME_WITH_ORDER end |
#quote_column_name(name) ⇒ Object
29 30 31 |
# File 'activerecord/lib/active_record/connection_adapters/mysql/quoting.rb', line 29 def quote_column_name(name) self.class.quoted_column_names[name] ||= "`#{super.gsub('`', '``')}`" end |
#quote_table_name(name) ⇒ Object
33 34 35 |
# File 'activerecord/lib/active_record/connection_adapters/mysql/quoting.rb', line 33 def quote_table_name(name) self.class.quoted_table_names[name] ||= super.gsub(".", "`.`").freeze end |
#quoted_binary(value) ⇒ Object
53 54 55 |
# File 'activerecord/lib/active_record/connection_adapters/mysql/quoting.rb', line 53 def quoted_binary(value) "x'#{value.hex}'" end |
#quoted_date(value) ⇒ Object
45 46 47 48 49 50 51 |
# File 'activerecord/lib/active_record/connection_adapters/mysql/quoting.rb', line 45 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.
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
# File 'activerecord/lib/active_record/connection_adapters/mysql/quoting.rb', line 67 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 default_timezone == :utc value.getutc else value.getlocal end when Date, Time value else super end end |
#unquote_identifier(identifier) ⇒ Object
57 58 59 60 61 62 63 |
# File 'activerecord/lib/active_record/connection_adapters/mysql/quoting.rb', line 57 def unquote_identifier(identifier) if identifier && identifier.start_with?("`") identifier[1..-2] else identifier end end |
#unquoted_false ⇒ Object
41 42 43 |
# File 'activerecord/lib/active_record/connection_adapters/mysql/quoting.rb', line 41 def unquoted_false 0 end |
#unquoted_true ⇒ Object
37 38 39 |
# File 'activerecord/lib/active_record/connection_adapters/mysql/quoting.rb', line 37 def unquoted_true 1 end |