Class: Sequel::DbOpts::DbOptions
- Inherits:
-
Object
- Object
- Sequel::DbOpts::DbOptions
- Defined in:
- lib/sequel/extensions/db_opts.rb
Instance Attribute Summary collapse
-
#db ⇒ Object
readonly
Returns the value of attribute db.
Instance Method Summary collapse
- #apply(c) ⇒ Object
- #extract_db_opts ⇒ Object
-
#initialize(db) ⇒ DbOptions
constructor
A new instance of DbOptions.
- #prep_value(k, v) ⇒ Object
- #sql_statements ⇒ Object
- #to_hash ⇒ Object
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
#db ⇒ Object (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_opts ⇒ Object
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_statements ⇒ Object
30 31 32 |
# File 'lib/sequel/extensions/db_opts.rb', line 30 def sql_statements db.send(:set_sql, to_hash) end |
#to_hash ⇒ Object
10 11 12 |
# File 'lib/sequel/extensions/db_opts.rb', line 10 def to_hash @_to_hash ||= extract_db_opts end |