Method: Sequel::Dataset#with_extend
- Defined in:
-
lib/sequel/dataset/query.rb,
lib/sequel/dataset/query.rb more...
:nocov:
1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 |
# File 'lib/sequel/dataset/query.rb', line 1240 def with_extend(*mods, &block) c = Sequel.set_temp_name(Class.new(self.class)){"Sequel::Dataset::_Subclass"} c.include(*mods) unless mods.empty? c.include(Sequel.set_temp_name(DatasetModule.new(&block)){"Sequel::Dataset::_DatasetModule(#{block.source_location.join(':')})"}) if block o = c.freeze.allocate o.instance_variable_set(:@db, @db) o.instance_variable_set(:@opts, @opts) o.instance_variable_set(:@cache, {}) if cols = cache_get(:_columns) o.send(:columns=, cols) end o.freeze end |