Class: Sequel::DbOpts::DbOptions

Inherits:
Object
  • Object
show all
Defined in:
lib/sequel/extensions/db_opts.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(db) ⇒ DbOptions

Returns a new instance of DbOptions.



5
6
7
8
# File 'lib/sequel/extensions/db_opts.rb', line 5

def initialize(db)
  db.extension :settable
  @db = db
end

Instance Attribute Details

#dbObject (readonly)

Returns the value of attribute db.



4
5
6
# File 'lib/sequel/extensions/db_opts.rb', line 4

def db
  @db
end

Instance Method Details

#apply(c) ⇒ Object



20
21
22
23
24
# File 'lib/sequel/extensions/db_opts.rb', line 20

def apply(c)
  sql_statements.each do |stmt|
    db.send(:log_connection_execute, c, stmt)
  end
end

#extract_db_optsObject



14
15
16
17
18
# File 'lib/sequel/extensions/db_opts.rb', line 14

def extract_db_opts
  opt_regexp = /^#{db.database_type}_db_opt_/i

  Hash[db.opts.select { |k, _| k.to_s.match(opt_regexp) }.map { |k, v| [k.to_s.gsub(opt_regexp, '').to_sym, prep_value(k, v)] }]
end

#prep_value(k, v) ⇒ Object



26
27
28
# File 'lib/sequel/extensions/db_opts.rb', line 26

def prep_value(k, v)
  v =~ /\W/ ? db.literal("#{v}") : v
end

#sql_statementsObject



30
31
32
# File 'lib/sequel/extensions/db_opts.rb', line 30

def sql_statements
  db.send(:set_sql, to_hash)
end

#to_hashObject



10
11
12
# File 'lib/sequel/extensions/db_opts.rb', line 10

def to_hash
  @_to_hash ||= extract_db_opts
end