lib/leanback.rb in leanback-0.2.6 vs lib/leanback.rb in leanback-0.2.7

- old
+ new

@@ -194,9 +194,35 @@ hash = Yajl::Parser.parse(e.response.to_s) raise CouchdbException.new(hash), "CouchDB: Error - " + hash.values[0] + ". Reason - " + hash.values[1] end end +#Query view, create view on fly if it dosen't already exist +def self.find_on_fly(doc, key = nil) + db_name = doc[:database] + design_doc = doc[:design_doc] + view = doc[:view] + json_doc = doc[:json_doc] + + begin + if( key == nil) + docs = find(:database => db_name, :design_doc => design_doc, :view => view) + else + docs = find({:database => db_name, :design_doc => design_doc, :view => view},key) + end + rescue CouchdbException => e + document = { :database => db_name, :design_doc => design_doc, :json_doc => json_doc} + create_design document + if( key == nil) + docs = find(:database => db_name, :design_doc => design_doc, :view => view) + else + docs = find({:database => db_name, :design_doc => design_doc, :view => view},key) + end + end + return docs + end + + #add a finder method to the database #this creates a find by key method def self.add_finder(options) set_address db_name = options[:database]