summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAzul <azul@riseup.net>2013-09-11 08:00:09 +0200
committerAzul <azul@riseup.net>2013-09-11 08:00:09 +0200
commit3c879a45a0f923e9dc9d7fc25cc04c3be7ffefae (patch)
treee0e43b8a2adbfcef0c2dd7249b9a3c0674cb92e6
parent7958827a0ba1126646e01314e7c6bb4f86292dc8 (diff)
create couch dbs as users are created
-rw-r--r--lib/tapicero.rb1
-rw-r--r--lib/tapicero/couch_database_creator.rb14
-rw-r--r--lib/tapicero_daemon.rb6
3 files changed, 19 insertions, 2 deletions
diff --git a/lib/tapicero.rb b/lib/tapicero.rb
index 0d49b38..7287934 100644
--- a/lib/tapicero.rb
+++ b/lib/tapicero.rb
@@ -18,3 +18,4 @@ Tapicero::Config.load(BASE_DIR, 'config/default.yaml', LEAP_CA_CONFIG, ARGV.grep
require 'tapicero/json_stream'
require 'tapicero/couch_stream'
require 'tapicero/couch_changes'
+require 'tapicero/couch_database_creator'
diff --git a/lib/tapicero/couch_database_creator.rb b/lib/tapicero/couch_database_creator.rb
new file mode 100644
index 0000000..a4aaa0f
--- /dev/null
+++ b/lib/tapicero/couch_database_creator.rb
@@ -0,0 +1,14 @@
+require 'couchrest'
+
+module Tapicero
+ class CouchDatabaseCreator
+
+ def initialize(host)
+ @couch = CouchRest.new(host)
+ end
+
+ def create(name)
+ @couch.database(name).create!
+ end
+ end
+end
diff --git a/lib/tapicero_daemon.rb b/lib/tapicero_daemon.rb
index 5f754c7..bd65d7f 100644
--- a/lib/tapicero_daemon.rb
+++ b/lib/tapicero_daemon.rb
@@ -10,10 +10,12 @@ require 'tapicero'
module Tapicero
puts " * Observing #{Config.couch_host}"
puts " * Tracking #{Config.users_db_name}"
- couch = CouchStream.new(Config.couch_host + Config.users_db_name)
- users = CouchChanges.new(couch)
+ stream = CouchStream.new(Config.couch_host + Config.users_db_name)
+ users = CouchChanges.new(stream)
+ creator = CouchDatabaseCreator.new(Config.couch_host)
users.created do |hash|
puts "Created user " + hash[:id]
+ creator.create(Config.db_prefix + hash[:id])
end
users.listen