aboutsummaryrefslogtreecommitdiffstats
path: root/toys/brhute-rb/pphidden.rb
diff options
context:
space:
mode:
Diffstat (limited to 'toys/brhute-rb/pphidden.rb')
-rw-r--r--toys/brhute-rb/pphidden.rb59
1 files changed, 59 insertions, 0 deletions
diff --git a/toys/brhute-rb/pphidden.rb b/toys/brhute-rb/pphidden.rb
new file mode 100644
index 0000000..b6058db
--- /dev/null
+++ b/toys/brhute-rb/pphidden.rb
@@ -0,0 +1,59 @@
+#require 'brhute'
+#require 'derb'
+
+# XXX how to make this a nice iterator ? change context of a Fiber is hard
+class Pp_iter
+ include Enumerable
+ def initialize(image, sx=0, sy=0, mx=100, my=100)
+ @domain = "www.pointerpointer.com"
+ @baseurl = "images/"
+ @image, @sx, @sy, @mx, @my = image, sx, sy, mx, my
+ @x, @y = sx, sy
+ end
+ def next
+ url = "%s/%s/N%0.4d_%d_%d.jpg" % \
+ [@domain, @baseurl, @image, @x, @y]
+ @y += 1
+ if @y > @my
+ @y = 0
+ @x += 1
+ if @x > @mx
+ raise(StopIteration.new("iteration reached an end"))
+ end
+ end
+ return url
+ end
+ def subset
+ # XXX we are redoing 1 time the same url
+ x, y = @x, @y
+ @x = mx = x + [@mx - x, 10].min
+ @y = my = y + [@my - y, 10].min
+ puts "XXX subset %d %d %d %d" % [x, y, mx, my]
+ Pp_iter.new(@image, x, y, mx, my)
+ end
+end
+
+def test_iter
+ Pp_iter.new(73, 0, 0).next do |url|
+ puts url
+ end
+end
+def test_iter_subset
+ i = Pp_iter.new(73, 0, 0)
+ puts i.next
+ puts i.next
+ puts "SUB"
+ s = i.subset
+ puts s.next
+ puts s.next
+ puts "MAIN"
+ puts i.next
+ puts i.next
+end
+
+#urls = Pp_iter(73, 0, 0)
+#brhute::Brhute_ip(urls)
+
+# Distributed Execution for Ruby:
+# de = derb.run_on_hosts(['_g', '_sd'])
+# de.execute(Pphidden, urls.subset)