Module: CarrierWave::Storage::Adapters::PGConnection
- Included in:
- PostgresqlLo::File
- Defined in:
- lib/carrierwave/storage/adapters/pg_connection.rb
Instance Method Summary collapse
Instance Method Details
#delete ⇒ Object
29 30 31 |
# File 'lib/carrierwave/storage/adapters/pg_connection.rb', line 29 def delete connection.lo_unlink(identifier) end |
#file_length ⇒ Object
33 34 35 36 37 38 39 40 |
# File 'lib/carrierwave/storage/adapters/pg_connection.rb', line 33 def file_length @uploader.model.transaction do lo = connection.lo_open(identifier) size = connection.lo_lseek(lo, 0, 2) connection.lo_close(lo) size end end |
#identifier ⇒ Object
6 7 8 |
# File 'lib/carrierwave/storage/adapters/pg_connection.rb', line 6 def identifier @oid ||= connection.lo_creat end |
#read ⇒ Object
10 11 12 13 14 15 16 17 |
# File 'lib/carrierwave/storage/adapters/pg_connection.rb', line 10 def read @uploader.model.transaction do lo = connection.lo_open(identifier) content = connection.lo_read(lo, file_length) connection.lo_close(lo) content end end |
#write(file) ⇒ Object
19 20 21 22 23 24 25 26 27 |
# File 'lib/carrierwave/storage/adapters/pg_connection.rb', line 19 def write(file) @uploader.model.transaction do lo = connection.lo_open(identifier, ::PG::INV_WRITE) connection.lo_truncate(lo, 0) size = connection.lo_write(lo, file.read) connection.lo_close(lo) size end end |