Class: Rbind::GeneratorRuby::RTypeHelper::OverloadedOperationHelper

Inherits:
HelperBase
  • Object
show all
Defined in:
lib/rbind/generator_ruby.rb

Instance Attribute Summary

Attributes inherited from HelperBase

#name

Instance Method Summary collapse

Methods inherited from HelperBase

#full_name

Constructor Details

#initialize(root) ⇒ OverloadedOperationHelper

Returns a new instance of OverloadedOperationHelper.



343
344
345
346
347
# File 'lib/rbind/generator_ruby.rb', line 343

def initialize(root)
    raise "expect an array of methods but got #{root}" if root.size < 1
    super(GeneratorRuby.normalize_method_name(root.first.alias || root.first.name),root)
    @overload_wrapper = ERB.new(File.open(File.join(File.dirname(__FILE__),"templates","ruby","roverloaded_method_call.rb")).read,nil,"-")
end

Instance Method Details

#add_methodsObject



349
350
351
352
353
354
355
356
357
358
359
360
# File 'lib/rbind/generator_ruby.rb', line 349

def add_methods
    str = @root.map do |method|
        next if method.ignore?
        raise "Cannot overload attributes" if method.attribute?
        op = if method.is_a? OperationHelper
                 method
             else
                 OperationHelper.new(method)
             end
        @overload_wrapper.result(op.binding)
    end.join("\n")
end

#bindingObject



362
363
364
# File 'lib/rbind/generator_ruby.rb', line 362

def binding
    Kernel.binding
end