couchdb_migrate_mastfish 0.0.0 → 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +8 -8
- data/lib/couchdb_migrate_mastfish.rb +32 -2
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
!binary "U0hBMQ==":
|
|
3
3
|
metadata.gz: !binary |-
|
|
4
|
-
|
|
4
|
+
OWM3NzAxZTY4OWIwOTY2ZTQzYzU4OTYyNjAzM2EyMzNiYWMzMjhhMw==
|
|
5
5
|
data.tar.gz: !binary |-
|
|
6
|
-
|
|
6
|
+
MDlmOTQ0OGVhYjFlYWYwNWYwY2NkZTI0ZmM3M2YwMjI3NmYxMjA3Mg==
|
|
7
7
|
!binary "U0hBNTEy":
|
|
8
8
|
metadata.gz: !binary |-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
ODA5NTMwNWExZDBlZWRmNTFiNmFkODNlMzY4ZmRmYWI2ODQ3YmNkNzY1NGQ2
|
|
10
|
+
YWEwN2Y1MDlhMjZkMTg2ODg4OTdhZTFjN2M3ODY5NmIzMjMzMmExMjk2NGZm
|
|
11
|
+
MjcwYmU1ODkxOTcwNmRjMjQwNjhmZDdmNzlmOWE4MDNhNzZkZTI=
|
|
12
12
|
data.tar.gz: !binary |-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
N2I4OGY1ZDNlNDY1MTc3MmQzZmE0YWI4NjBmOWU4OWVmNjRiYzJkYTI0MDg2
|
|
14
|
+
Y2U2MTE5MjkwZDFlYThjNGUzMDA0Y2ViYmY5NjVlMmFhMWY0NjMxMmEwNmJl
|
|
15
|
+
MGJhYTFiZGY5ZjIyYWQxMWU3NmM0ZTM2MTg3ZGQzNTAwZWJhYWQ=
|
|
@@ -1,5 +1,35 @@
|
|
|
1
1
|
class Couchdb_migrate_mastfish
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
|
|
3
|
+
def initialize(config)
|
|
4
|
+
@db = config["db"]
|
|
5
|
+
@views = config["views"]
|
|
6
|
+
p @db
|
|
7
|
+
p 'here'
|
|
4
8
|
end
|
|
9
|
+
|
|
10
|
+
def update(http, iter)
|
|
11
|
+
item = JSON.parse http.response
|
|
12
|
+
item = transform(item)
|
|
13
|
+
put = EventMachine::HttpRequest.new(@db + item["_id"]).aput :body => item.to_json
|
|
14
|
+
put.callback do
|
|
15
|
+
iter.next
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
EM.synchrony do
|
|
20
|
+
concurrency = 50
|
|
21
|
+
urls = db.view('plays/all')
|
|
22
|
+
|
|
23
|
+
# iterator will execute async blocks until completion, .each, .inject also work!
|
|
24
|
+
results = EM::Synchrony::Iterator.new(urls["rows"], concurrency).each do |url, iter|
|
|
25
|
+
# fire async requests, on completion advance the iterator
|
|
26
|
+
http = EventMachine::HttpRequest.new(@db + url["id"]).aget
|
|
27
|
+
http.callback { update(http, iter) }
|
|
28
|
+
end
|
|
29
|
+
EventMachine.stop
|
|
30
|
+
end
|
|
31
|
+
|
|
5
32
|
end
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|