aboutsummaryrefslogtreecommitdiffstats
path: root/toys/brhute-rb/pphidden.rb
blob: b6058db7d619a0a8ecabc8b9eadadd4513c05c12 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
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)