Skip to content

Instantly share code, notes, and snippets.

@ippeiukai
Created December 19, 2013 04:32
Show Gist options
  • Save ippeiukai/8034454 to your computer and use it in GitHub Desktop.
Save ippeiukai/8034454 to your computer and use it in GitHub Desktop.
Monkey patch to Sequel (http://github.com/jeremyevans/sequel) that allows it to optionally open a SQLite database in readonly mode
# coding: utf-8
require 'sequel/adapters/sqlite'
# monkey patch to optionally open database in read-only mode
class ::Sequel::SQLite::Database
# [Copied] from sequel-4.5.0/lib/sequel/adapters/sqlite.rb
def connect(server)
opts = server_opts(server)
opts[:database] = ':memory:' if blank_object?(opts[:database])
db = ::SQLite3::Database.new(opts[:database], readonly: opts[:readonly]) # [Changed]
db.busy_timeout(opts.fetch(:timeout, 5000))
connection_pragmas.each{|s| log_yield(s){db.execute_batch(s)}}
class << db
attr_reader :prepared_statements
end
db.instance_variable_set(:@prepared_statements, {})
db
end
end
@ippeiukai
Copy link
Author

Obsolete for Sequel 4.12.0 and onwards.
jeremyevans/sequel#832

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment