Sha256: 3f957404a4826bdd915f36fe5ea4435bb9f6d105afab254f786f4ee8bb7a6920
Contents?: true
Size: 1.63 KB
Versions: 3
Compression:
Stored size: 1.63 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
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
fancy-0.10.0 | lib/iteration.fy |
fancy-0.9.0 | lib/iteration.fy |
fancy-0.8.0 | lib/iteration.fy |