Class: Rbind::GeneratorRuby::RTypeHelper::OverloadedOperationHelper
- Inherits:
-
HelperBase
- Object
- HelperBase
- Rbind::GeneratorRuby::RTypeHelper::OverloadedOperationHelper
- Defined in:
- lib/rbind/generator_ruby.rb
Instance Attribute Summary
Attributes inherited from HelperBase
Instance Method Summary collapse
- #add_methods ⇒ Object
- #binding ⇒ Object
-
#initialize(root) ⇒ OverloadedOperationHelper
constructor
A new instance of OverloadedOperationHelper.
Methods inherited from HelperBase
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_methods ⇒ Object
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 |
#binding ⇒ Object
362 363 364 |
# File 'lib/rbind/generator_ruby.rb', line 362 def binding Kernel.binding end |