--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Generator converts an internal iterator (i.e. an Enumerable object) to an external iterator.
- !ruby/struct:SM::Flow::P 
  body: Note that it is not very fast since it is implemented using continuations, which are currently slow.
- !ruby/struct:SM::Flow::H 
  level: 2
  text: Example
- !ruby/struct:SM::Flow::VERB 
  body: "  require 'generator'\n\n  # Generator from an Enumerable object\n  g = Generator.new(['A', 'B', 'C', 'Z'])\n\n  while g.next?\n    puts g.next\n  end\n\n  # Generator from a block\n  g = Generator.new { |g|\n    for i in 'A'..'C'\n      g.yield i\n    end\n\n    g.yield 'Z'\n  }\n\n  # The same result as above\n  while g.next?\n    puts g.next\n  end\n"
constants: []

full_name: Generator
includes: 
- !ruby/object:RI::IncludedModule 
  name: Enumerable
instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: current
- !ruby/object:RI::MethodSummary 
  name: each
- !ruby/object:RI::MethodSummary 
  name: end?
- !ruby/object:RI::MethodSummary 
  name: index
- !ruby/object:RI::MethodSummary 
  name: next
- !ruby/object:RI::MethodSummary 
  name: next?
- !ruby/object:RI::MethodSummary 
  name: pos
- !ruby/object:RI::MethodSummary 
  name: rewind
- !ruby/object:RI::MethodSummary 
  name: yield
name: Generator
superclass: Object
