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