class CouchReplicate

Public Class Methods

new(database) click to toggle source

database = ‘127.0.0.1:5984/dbname

# File lib/couch-replicate-helper.rb, line 5
def initialize(database)
  @db = CouchRest.database(database)
end

Public Instance Methods

replicate(source, dest) click to toggle source

name with suffix, suffix

# File lib/couch-replicate-helper.rb, line 10
def replicate(source, dest)
  puts "going to replicate #{source} to dest #{dest}"
  unless is_active? source, dest
    puts "triggering replication..."
    RestClient.post @db.host + '/_replicate', {:source => source, :target => dest, :continuous => true }.to_json, :content_type => "Content-Type: application/json"
  end
end

Private Instance Methods

is_active?(source, dest) click to toggle source
# File lib/couch-replicate-helper.rb, line 20
def is_active?(source, dest)
  tasks = CouchRest.get(@db.server.uri + '/_active_tasks')
  tasks.each do |t|
    puts "#{t['type']} #{t['task']} #{t['status']} #{t['pid']}"
  end
  tasks.find { |t| t['type'] == 'Replication' and t['task'].scan source and t['task'].scan dest }
end