module Sequel::IdentifierMangling::DatabaseMethods

Attributes

identifier_input_method[R]

The identifier input method to use by default for this database (default: adapter default)

identifier_output_method[R]

The identifier output method to use by default for this database (default: adapter default)

Public Class Methods

extended(db) click to toggle 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

identifier_input_method=(v) click to toggle source

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
   # File lib/sequel/extensions/identifier_mangling.rb
65 def identifier_input_method=(v)
66   reset_default_dataset
67   @identifier_input_method = v
68 end
identifier_output_method=(v) click to toggle source

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'}
   # File lib/sequel/extensions/identifier_mangling.rb
75 def identifier_output_method=(v)
76   reset_default_dataset
77   @identifier_output_method = v
78 end
quote_identifiers=(v) click to toggle source

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"
   # File lib/sequel/extensions/identifier_mangling.rb
85 def quote_identifiers=(v)
86   reset_default_dataset
87   @quote_identifiers = v
88 end
quote_identifiers?() click to toggle source

Returns true if the database quotes identifiers.

   # File lib/sequel/extensions/identifier_mangling.rb
91 def quote_identifiers?
92   @quote_identifiers
93 end

Private Instance Methods

_metadata_dataset() click to toggle source

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.

Calls superclass method
    # 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
identifier_input_method_default() click to toggle source

Upcase identifiers on input if database folds unquoted identifiers to uppercase.

Calls superclass method
    # 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
identifier_output_method_default() click to toggle source

Downcase identifiers on output if database folds unquoted identifiers to uppercase.

Calls superclass method
    # 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
reset_identifier_mangling() click to toggle source

Reset the identifier mangling options. Overrides any already set on the instance. Only for internal use by shared adapters.

    # 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