Create a gist now

Instantly share code, notes, and snippets.

class PouchCore
constructor: (@remoteUrl,@onChange)->
if @remoteUrl.slice(0,4)=="http" #did we get a real url?
parts = @remoteUrl.split("/") #split the url bu by the slashes
@_dbName = parts.pop() #assign the last part as the db name
while @_dbName == "" #unless it is an empty string
@_dbName = parts.pop()#repeat until you find one
Pouch @_dbName, (e, db) => #making the local db
unless e #error would imply we are on an old browser
@db = db
continuous : true
include_docs : true
onChange : @onChange
#we replicate @remoteUrl,{continuous: true}
_from=@db.replicate.from @remoteUrl, {continuous: true}
@stop = ()=>
console.log "stopped"
@start = ()=>
unless @up
@up=true @remoteUrl,{continuous: true}
_from=@db.replicate.from @remoteUrl, {continuous: true}
else #there was an error lets try again but just with the remote one
Pouch @remoteUrl, (e, db) =>
unless e
continuous : true
include_docs : true
onChange : @onChange
return "yeah something went wrong"
add: (doc, cb = ()-> true) ->
unless "_id" of doc doc, cb
else if "_id" of doc and doc._id.slice(0,8) != "_design/"
@db.put doc, cb
else if doc.length
@db.bulkDocs doc, cb
get: (id, cb = ()-> true) ->
@db.get id, cb
remove: (id, cb = ()-> true) ->
@get id, (err, doc) =>
@db.remove doc, cb unless err
cb("err") if err
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment