module Sequel::IdentifierMangling::DatabaseMethods
Attributes
The identifier input method to use by default for this database (default: adapter default)
The identifier output method to use by default for this database (default: adapter default)
Public Class Methods
Source
# File lib/sequel/extensions/identifier_mangling.rb 44 def self.extended(db) 45 db.instance_exec do 46 @identifier_input_method = nil 47 @identifier_output_method = nil 48 @quote_identifiers = nil 49 reset_identifier_mangling 50 extend_datasets(DatasetMethods) 51 end 52 end
Public Instance Methods
Source
# File lib/sequel/extensions/identifier_mangling.rb 65 def identifier_input_method=(v) 66 reset_default_dataset 67 @identifier_input_method = v 68 end
Set the method to call on identifiers going into the database:
DB[:items] # SELECT * FROM items DB.identifier_input_method = :upcase DB[:items] # SELECT * FROM ITEMS
Source
# File lib/sequel/extensions/identifier_mangling.rb 75 def identifier_output_method=(v) 76 reset_default_dataset 77 @identifier_output_method = v 78 end
Set the method to call on identifiers coming from the database:
DB[:items].first # {:id=>1, :name=>'foo'} DB.identifier_output_method = :upcase DB[:items].first # {:ID=>1, :NAME=>'foo'}
Source
# File lib/sequel/extensions/identifier_mangling.rb 85 def quote_identifiers=(v) 86 reset_default_dataset 87 @quote_identifiers = v 88 end
Set whether to quote identifiers (columns and tables) for this database:
DB[:items] # SELECT * FROM items DB.quote_identifiers = true DB[:items] # SELECT * FROM "items"
Source
# File lib/sequel/extensions/identifier_mangling.rb 91 def quote_identifiers? 92 @quote_identifiers 93 end
Returns true if the database quotes identifiers.
Private Instance Methods
Source
# File lib/sequel/extensions/identifier_mangling.rb 100 def _metadata_dataset 101 super. 102 with_identifier_input_method(identifier_input_method_default). 103 with_identifier_output_method(identifier_output_method_default) 104 end
Return a dataset that uses the default identifier input and output methods for this database. Used when parsing metadata so that column symbols are returned as expected.
Source
# File lib/sequel/extensions/identifier_mangling.rb 108 def identifier_input_method_default 109 return super if defined?(super) 110 :upcase if folds_unquoted_identifiers_to_uppercase? 111 end
Upcase identifiers on input if database folds unquoted identifiers to uppercase.
Source
# File lib/sequel/extensions/identifier_mangling.rb 115 def identifier_output_method_default 116 return super if defined?(super) 117 :downcase if folds_unquoted_identifiers_to_uppercase? 118 end
Downcase identifiers on output if database folds unquoted identifiers to uppercase.
Source
# File lib/sequel/extensions/identifier_mangling.rb 122 def reset_identifier_mangling 123 @quote_identifiers = @opts.fetch(:quote_identifiers, quote_identifiers_default) 124 @identifier_input_method = @opts.fetch(:identifier_input_method, identifier_input_method_default) 125 @identifier_output_method = @opts.fetch(:identifier_output_method, identifier_output_method_default) 126 reset_default_dataset 127 end
Reset the identifier mangling options. Overrides any already set on the instance. Only for internal use by shared adapters.