Module: Sequel

Defined in:
lib/sequel/model.rb,
lib/sequel/model.rb,
lib/sequel/schema.rb,
lib/sequel/worker.rb,
lib/sequel/core_ext.rb,
lib/sequel/database.rb,
lib/sequel/array_keys.rb,
lib/sequel/model/base.rb,
lib/sequel/model/hooks.rb,
lib/sequel/model/record.rb,
lib/sequel/model/schema.rb,
lib/sequel/model/caching.rb,
lib/sequel/model/plugins.rb,
lib/sequel/connection_pool.rb,
lib/sequel/model/relations.rb,
lib/sequel/adapters/odbc_mssql.rb,
lib/sequel/schema/schema_generator.rb

Defined Under Namespace

Modules: NumericExtensions, ODBC, Plugins, Schema Classes: ConnectionPool, Database, Model, SingleThreadedPool, Worker

Class Method Summary collapse

Class Method Details

.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
    meta_def(:inherited) do |c|
      c.set_dataset(source.is_a?(Dataset) ? source : c.db[source])
    end
  end
end

.use_array_tuplesObject

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_tuplesObject

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