Class: RgGen::OutputBase::Item::CodeGenerator
- Inherits:
-
Object
- Object
- RgGen::OutputBase::Item::CodeGenerator
- Defined in:
- lib/rggen/output_base/item.rb
Instance Method Summary collapse
Instance Method Details
#[]=(kind, body) ⇒ Object
9 10 11 12 |
# File 'lib/rggen/output_base/item.rb', line 9 def []=(kind, body) @bodies ||= {} @bodies[kind] = body end |
#copy ⇒ Object
23 24 25 26 27 |
# File 'lib/rggen/output_base/item.rb', line 23 def copy CodeGenerator.new.tap do |g| g.instance_variable_set(:@bodies, Hash[@bodies]) if @bodies end end |
#generate_code(item, kind, buffer) ⇒ Object
14 15 16 17 18 19 20 21 |
# File 'lib/rggen/output_base/item.rb', line 14 def generate_code(item, kind, buffer) return unless @bodies && @bodies.key?(kind) if @bodies[kind].arity.zero? buffer << item.instance_exec(&@bodies[kind]) else item.instance_exec(buffer, &@bodies[kind]) end end |