Sha256: 3b7e8c8895e0b641eb8586ba15af5208fa426959c5b0fc8f6a787c842fdf101a
Contents?: true
Size: 723 Bytes
Versions: 11
Compression:
Stored size: 723 Bytes
Contents
module RailsConnector module BlobOracle def self.included(base) base.instance_eval do define_method :store_data do store_data_atomically { |f| fetch_into_file(f) } end end end def fetch_into_file(file) blob = blob_handle while data = blob.read(buff_size ||= 1.megabyte) file << data data = nil GC.start end ensure blob&.close end private def sql %( SELECT blob_data FROM #{self.class.table_name} WHERE #{self.class.primary_key} = :1 ) end def blob_handle con = self.class.connection.raw_connection con.exec(sql, id).fetch.first end end end
Version data entries
11 entries across 11 versions & 1 rubygems