Sha256: fa0f64e1771026c4c299b94067cf8e326c7e3df3f098e852fc47d59bde6dbb9f
Contents?: true
Size: 1.57 KB
Versions: 1
Compression:
Stored size: 1.57 KB
Contents
class Fancy { class BreakIteration : StdError { """ Raised to break the current iteration. It is rescued by Block#loop. Example: 10 times: |i| { i println if: (i == 3) then: { Fancy BreakIteration new raise! } } \"Done!\" println Produces: 0 1 2 3 Done! """ read_slots: ['result] def initialize: @result {} } class NextIteration : StdError { """ Raised to continue with next iteration (and stopping the current one). It is rescued by Block#loop. """ read_slots: ['result] def initialize: @result {} } class StopIteration : StdError { """ Raised to stop the iteration, in particular by Enumerator#next. It is rescued by Block#loop. Example: { 'Hello println Fancy StopIteration new raise! 'World println } loop 'Done! println Produces: Hello Done! """ def initialize { @result = nil } def initialize: @result { } def result { """ Returns the return value of the iterator. o = Object new def o each: block { block call: [1] block call: [2] block call: [3] 100 } e = o to_enum e next p #=> 1 e next p #=> 2 e next p #=> 3 try { e next } catch Fancy StopIteration => ex { ex result p #=> 100 } """ @result } } }
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
fancy-0.4.0 | lib/iteration.fy |