Module: Sequel
- Defined in:
- lib/sequel.rb,
lib/sequel/model.rb,
lib/sequel/model.rb,
lib/sequel/schema.rb,
lib/sequel/worker.rb,
lib/sequel/dataset.rb,
lib/sequel/core_ext.rb,
lib/sequel/core_sql.rb,
lib/sequel/core_sql.rb,
lib/sequel/database.rb,
lib/sequel/migration.rb,
lib/sequel/array_keys.rb,
lib/sequel/exceptions.rb,
lib/sequel/model/base.rb,
lib/sequel/dataset/sql.rb,
lib/sequel/model/hooks.rb,
lib/sequel/adapters/ado.rb,
lib/sequel/adapters/db2.rb,
lib/sequel/adapters/dbi.rb,
lib/sequel/model/record.rb,
lib/sequel/model/schema.rb,
lib/sequel/pretty_table.rb,
lib/sequel/adapters/jdbc.rb,
lib/sequel/adapters/odbc.rb,
lib/sequel/model/caching.rb,
lib/sequel/model/plugins.rb,
lib/sequel/adapters/oracle.rb,
lib/sequel/adapters/sqlite.rb,
lib/sequel/connection_pool.rb,
lib/sequel/model/relations.rb,
lib/sequel/adapters/informix.rb,
lib/sequel/adapters/openbase.rb,
lib/sequel/adapters/postgres.rb,
lib/sequel/model/validations.rb,
lib/sequel/schema/schema_sql.rb,
lib/sequel/adapters/odbc_mssql.rb,
lib/sequel/dataset/convenience.rb,
lib/sequel/schema/schema_generator.rb,
lib/sequel/adapters/adapter_skeleton.rb,
lib/sequel/adapters/mysql.rb
Overview
require ‘adapter_lib’
Defined Under Namespace
Modules: ADO, Adapter, DB2, DBI, Informix, JDBC, Migrator, MySQL, NumericExtensions, ODBC, OpenBase, Oracle, Plugins, Postgres, PrettyTable, SQL, SQLite, Schema Classes: ConnectionPool, Database, Dataset, Error, LiteralString, Migration, Model, SingleThreadedPool, Worker
Class Method Summary collapse
-
.connect(*args) ⇒ Object
(also: open)
call-seq: Sequel::Database.connect(conn_string) Sequel.connect(conn_string) Sequel.open(conn_string).
- .method_missing(m, *args) ⇒ Object
-
.Model(source) ⇒ Object
Lets you create a Model class with its table name already set or reopen an existing Model.
- .single_threaded=(value) ⇒ Object
-
.use_array_tuples ⇒ Object
Modifies all dataset classes to fetch records as arrays with keys.
-
.use_hash_tuples ⇒ Object
Modifies all dataset classes to fetch records as hashes.
Class Method Details
.connect(*args) ⇒ Object Also known as: open
call-seq:
Sequel::Database.connect(conn_string)
Sequel.connect(conn_string)
Sequel.open(conn_string)
Creates a new database object based on the supplied connection string. The specified scheme determines the database class used, and the rest of the string specifies the connection options. For example:
DB = Sequel.open 'sqlite:///blog.db'
23 24 25 |
# File 'lib/sequel.rb', line 23 def connect(*args) Database.connect(*args) end |
.method_missing(m, *args) ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/sequel.rb', line 32 def method_missing(m, *args) c = Database.adapter_class(m) begin # three ways to invoke this: # 0 arguments: Sequel.dbi # 1 argument: Sequel.dbi(db_name) # more args: Sequel.dbi(db_name, opts) case args.size when 0 opts = {} when 1 opts = args[0].is_a?(Hash) ? args[0] : {:database => args[0]} else opts = args[1].merge(:database => args[0]) end rescue raise Error, "Unknown adapter (#{m})" end c.new(opts) end |
.Model(source) ⇒ Object
Lets you create a Model class with its table name already set or reopen an existing Model.
Makes given dataset inherited.
Example:
class Comment < Sequel::Model(:comments)
table_name # => :comments
# ...
end
88 89 90 91 92 93 94 95 |
# File 'lib/sequel/model/base.rb', line 88 def self.Model(source) @models ||= {} @models[source] ||= Class.new(Sequel::Model) do (:inherited) do |c| c.set_dataset(source.is_a?(Dataset) ? source : c.db[source]) end end end |
.single_threaded=(value) ⇒ Object
28 29 30 |
# File 'lib/sequel.rb', line 28 def single_threaded=(value) Database.single_threaded = value end |
.use_array_tuples ⇒ Object
Modifies all dataset classes to fetch records as arrays with keys. By default records are fetched as hashes.
260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 |
# File 'lib/sequel/array_keys.rb', line 260 def self.use_array_tuples Dataset.dataset_classes.each do |c| c.class_eval do if method_defined?(:array_tuples_fetch_rows) alias_method :hash_tuples_fetch_rows, :fetch_rows alias_method :fetch_rows, :array_tuples_fetch_rows else alias_method :orig_each, :each alias_method :orig_update_each_method, :update_each_method include ArrayKeys::DatasetExtensions alias_method :each, :array_tuples_each alias_method :update_each_method, :array_tuples_update_each_method end end end end |
.use_hash_tuples ⇒ Object
Modifies all dataset classes to fetch records as hashes.
278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 |
# File 'lib/sequel/array_keys.rb', line 278 def self.use_hash_tuples Dataset.dataset_classes.each do |c| c.class_eval do if method_defined?(:hash_tuples_fetch_rows) alias_method :fetch_rows, :hash_tuples_fetch_rows else if method_defined?(:orig_each) alias_method :each, :orig_each undef_method :orig_each end if method_defined?(:orig_update_each_method) alias_method :update_each_method, :orig_update_each_method undef_method :orig_update_each_method end end end end end |