module Sequel::SetOverrides

Public Instance Methods

insert_sql(*values) click to toggle source

Set overrides/defaults for insert hashes

Calls superclass method
# File lib/sequel/extensions/set_overrides.rb, line 27
def insert_sql(*values)
  if values.size == 1 && (vals = values.first).is_a?(Hash)
    super(merge_defaults_overrides(vals))
  else
    super
  end
end
set_defaults(hash) click to toggle source

Set the default values for insert and update statements. The values hash passed to insert or update are merged into this hash, so any values in the hash passed to insert or update will override values passed to this method.

DB[:items].set_defaults(:a=>'a', :c=>'c').insert(:a=>'d', :b=>'b')
# INSERT INTO items (a, c, b) VALUES ('d', 'c', 'b')
# File lib/sequel/extensions/set_overrides.rb, line 41
def set_defaults(hash)
  clone(:defaults=>(@opts[:defaults]||{}).merge(hash))
end
set_overrides(hash) click to toggle source

Set values that override hash arguments given to insert and update statements. This hash is merged into the hash provided to insert or update, so values will override any values given in the insert/update hashes.

DB[:items].set_overrides(:a=>'a', :c=>'c').insert(:a=>'d', :b=>'b')
# INSERT INTO items (a, c, b) VALUES ('a', 'c', 'b')
# File lib/sequel/extensions/set_overrides.rb, line 51
def set_overrides(hash)
  clone(:overrides=>hash.merge(@opts[:overrides]||{}))
end
update_sql(values = {}) click to toggle source

Set overrides/defaults for update hashes

Calls superclass method
# File lib/sequel/extensions/set_overrides.rb, line 56
def update_sql(values = {})
  if values.is_a?(Hash)
    super(merge_defaults_overrides(values))
  else
    super
  end
end

Private Instance Methods

merge_defaults_overrides(vals) click to toggle source

Return new hashe with merged defaults and overrides.

# File lib/sequel/extensions/set_overrides.rb, line 67
def merge_defaults_overrides(vals)
  vals = @opts[:defaults].merge(vals) if @opts[:defaults]
  vals = vals.merge(@opts[:overrides]) if @opts[:overrides]
  vals
end
non_sql_options() click to toggle source

Dataset options that do not affect the generated SQL.

Calls superclass method
# File lib/sequel/extensions/set_overrides.rb, line 74
def non_sql_options
  super + [:defaults, :overrides]
end