Sha256: d1cc256398aea975e28e6b17a82a4b574acdfb495e7710c436bc7236e663b3ee
Contents?: true
Size: 1023 Bytes
Versions: 8
Compression:
Stored size: 1023 Bytes
Contents
module EdgeRider module CollectIds class Uncollectable < StandardError; end module Array def collect_ids collect do |obj| case obj when Integer then obj when ActiveRecord::Base then obj.id else raise Uncollectable, "Cannot collect an id from #{obj.inspect}" end end end end ::Array.send(:include, Array) module ActiveRecordValue def collect_ids [id] end end ::ActiveRecord::Base.send(:include, ActiveRecordValue) module ActiveRecordScope def collect_ids collect_column(:id) end end ::ActiveRecord::Base.send(:extend, ActiveRecordScope) ::ActiveRecord::Associations::HasManyAssociation.send(:include, ActiveRecordScope) ::ActiveRecord::Associations::HasManyThroughAssociation.send(:include, ActiveRecordScope) module Integer def collect_ids [self] end end ::Integer.send(:include, Integer) end end
Version data entries
8 entries across 8 versions & 1 rubygems