Skip to content

Instantly share code, notes, and snippets.

@ippeiukai
ippeiukai / singleton_with_class_delegator.rb
Created June 17, 2016 07:53
Singleton but as convenient as class methods; it's both.
module SingletonWithClassDelegator
extend ActiveSupport::Concern
included do
include Singleton
original_delegate_method = method(:delegate).unbind if self.respond_to?(:delegate)
extend SingleForwardable
if original_delegate_method.present?
# restore the delegate of ActiveSupport that has been overshadowed by SingleForwardable
define_singleton_method :delegate, original_delegate_method
@ippeiukai
ippeiukai / sequel_each_in_batches.rb
Last active March 26, 2024 16:01
ActiveRecord's find_each and find_in_batches ported to Sequel. Sequel's paged_each is not practical when converting large data due to its use of transaction and offset. (Special thanks to @nomuson for working out the primary_keys_expr logic together.)
# ActiveRecord's find_each and find_in_batches ported to Sequel.
# Sequel's paged_each is not practical when converting large data due to its use of transaction and offset.
#
# Usage:
#
# SequelEachInBatches.find_each(dataset, keys) { |record| ... }
#
# It can also monkey patch Sequel::Dataset:
#
# Sequel::Dataset.send(:include, SequelEachInBatches)
@ippeiukai
ippeiukai / sequelize-find-each.js
Last active May 2, 2024 01:27
Sequelize port of find_each in ActiveRecord. (https://github.com/sequelize/sequelize/issues/686 )
"use strict";
const Sequelize = require('sequelize');
const Promise = Sequelize.Promise;
const DEFAULT_BATCH_SIZE = 3000;
/**
* Port of ActiveRecord::Base.find_each of Rails.