lib/swift.rb in swift-1.0.2 vs lib/swift.rb in swift-1.0.3
- old
+ new
@@ -1,14 +1,5 @@
-# try to require home_run in older rubies
-unless %r{^1\.9\.[3-9]|^2\.}.match(RUBY_VERSION)
- begin
- require 'home_run'
- rescue LoadError => e
- warn "WARNING: DateTime parsing will be slow without home_run gem on Rubies older than 1.9.3"
- end
-end
-
# Extension.
require_relative 'swift/adapter'
require_relative 'swift/adapter/sql'
require_relative 'swift/attribute'
require_relative 'swift/header'
@@ -73,11 +64,10 @@
# @option options [String] :password ('')
# @option options [String] :host ('localhost')
# @option options [Integer] :port (DB default)
# @return [Swift::Adapter]
#
- # @see Swift::DB
# @see Swift::Adapter
def setup name, type, options = {}
unless type.kind_of?(Class) && type < Swift::Adapter
raise TypeError, "Expected +type+ Swift::Adapter subclass but got #{type.inspect}"
end
@@ -101,13 +91,12 @@
# @param [Proc] block Scope this block to the named adapter instead of <tt>:default</tt>.
# @return [Swift::Adapter]
#--
# I pilfered the logic from DM but I don't really understand what is/isn't thread safe.
def db name = nil, &block
- scopes = (Thread.current[:swift_db] ||= [])
repository = if name || scopes.empty?
- @repositories[name || :default] or raise "Unknown db '#{name || :default}', did you forget to #setup?"
+ @repositories[name || :default] or raise "Unknown db '#{name || :default}', did you forget to #setup ?"
else
scopes.last
end
if block_given?
@@ -131,7 +120,14 @@
end
def trace io = $stdout, &block
Swift.db.trace(io, &block)
end
+
+ def scopes
+ Thread.current[:swift_db] ||= []
+ end
end
+
+ class Error < StandardError; end
+ class RuntimeError < Error; end
end # Swift