lib/hotseat/hotseat.rb in hotseat-0.1.2 vs lib/hotseat/hotseat.rb in hotseat-0.2.0

- old
+ new

@@ -1,89 +1,29 @@ module Hotseat class << self - def queue(db) - Hotseat::Queue.new(db) + def queue(db, options={}) + Hotseat::Queue.new(db, options) end alias :make_queue :queue - def queue?(db) + def queue?(db, design_doc_name = Hotseat::Queue::DEFAULT_CONFIG[:design_doc_name]) # ignore system dbs like _replicator and _users return false if db.name =~ /^_/ begin - db.get design_doc_id + db.get "_design/#{design_doc_name}" rescue RestClient::ResourceNotFound - # either the database or the design doc does not exist + # either the database or the design doc does not exist false end end def queues(couch_server) couch_server.databases.select do |db| queue?(couch_server.database(db)) end end - def design_doc_id - "_design/#{config[:design_doc_name]}" - end - - def pending_view_name - "#{config[:design_doc_name]}/#{config[:pending_view_name]}" - end - - def locked_view_name - "#{config[:design_doc_name]}/#{config[:locked_view_name]}" - end - - def done_view_name - "#{config[:design_doc_name]}/#{config[:done_view_name]}" - end - - def all_view_name - "#{config[:design_doc_name]}/#{config[:all_view_name]}" - end - - def design_doc - q = "doc.#{config[:object_name]}" - lock = "#{q}.lock" - done = "#{q}.done" - pending_func = <<-JAVASCRIPT -function(doc) { if (#{q} && !(#{lock} || #{done})) emit(#{q}.at, null); } - JAVASCRIPT - locked_func = <<-JAVASCRIPT -function(doc) { if (#{q} && #{lock}) emit(#{lock}.at, null); } - JAVASCRIPT - done_func = <<-JAVASCRIPT -function(doc) { if (#{q} && #{done}) emit(#{done}.at, null); } - JAVASCRIPT - all_func = <<-JAVASCRIPT -function(doc) { if (#{q}) emit(#{q}.at, null); } - JAVASCRIPT - { - '_id' => "_design/#{config[:design_doc_name]}", - :views => { - config[:pending_view_name] => { :map => pending_func.chomp }, - config[:locked_view_name] => { :map => locked_func.chomp }, - config[:done_view_name] => { :map => done_func.chomp }, - config[:all_view_name] => { :map => all_func.chomp }, - } - } - end - - def config - CONFIG - end - end - CONFIG = { - :design_doc_name => 'hotseat_queue', - :pending_view_name => 'pending', - :locked_view_name => 'locked', - :done_view_name => 'done', - :all_view_name => 'all', - :object_name => 'hotseat', - } - -end \ No newline at end of file +end