Class: Rbind::GeneratorRuby::RTypeHelper::OperationHelper

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

Instance Method Summary collapse

Instance Method Details

#add_aliasObject



510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
# File 'lib/rbind/generator_ruby.rb', line 510

def add_alias
    name = if auto_alias
               __getobj__.name
           else
               __getobj__.alias || __getobj__.name
           end
    name = GeneratorRuby::normalize_alias_method_name(name)
    if name == self.name || !cplusplus_alias?
        nil
    elsif static?
        "    class << self; alias :#{name} :#{self.name}; end\n"
    else
        "    alias :#{name} :#{self.name}\n"
    end
end

#add_docObject



548
549
550
551
552
553
554
555
# File 'lib/rbind/generator_ruby.rb', line 548

def add_doc
    str = GeneratorRuby::normalize_doc(doc)
    str = if !parameters.empty? || return_type
              str += "#\n" if str
              "#{str}#{generate_param_doc}"
          end
    str.gsub(/^/,"    ") if str
end

#add_specialize_rubyObject



526
527
528
529
# File 'lib/rbind/generator_ruby.rb', line 526

def add_specialize_ruby
    str = specialize_ruby
    "    #{str}\n" if str
end

#bindingObject



557
558
559
# File 'lib/rbind/generator_ruby.rb', line 557

def binding
    Kernel.binding
end

#cnameObject



506
507
508
# File 'lib/rbind/generator_ruby.rb', line 506

def cname
    GeneratorRuby.normalize_method_name(__getobj__.cname)
end

#generate_param_docObject



531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
# File 'lib/rbind/generator_ruby.rb', line 531

def generate_param_doc
    paras = parameters.map do |p|
        n = GeneratorRuby.normalize_arg_name p.name
        t = if p.type.basic_type? && (p.type.ptr? || p.type.ref?)
                "FFI::MemoryPointer"
            else
                GeneratorRuby.normalize_type_name(p.type.full_name)
            end
        "# @param [#{t}] #{n} #{p.doc}"
    end
    if return_type
        t = GeneratorRuby.normalize_type_name(return_type.full_name)
        paras << "# @return [#{t}]"
    end
    paras.join("\n")+"\n"
end

#min_number_of_parametersObject



448
449
450
451
452
453
454
455
# File 'lib/rbind/generator_ruby.rb', line 448

def min_number_of_parameters
    count = 0
    parameters.each do |p|
        break if p.default_value
        count +=1
    end
    count
end

#nameObject



488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
# File 'lib/rbind/generator_ruby.rb', line 488

def name
    if attribute?
        name = GeneratorRuby.normalize_method_name(attribute.name)
        if __getobj__.is_a? RGetter
            name
        else
            "#{name}="
        end
    else
        name = if auto_alias
                   __getobj__.name
               else
                   __getobj__.alias || __getobj__.name
               end
        GeneratorRuby.normalize_method_name(name)
    end
end

#signature_default_valuesObject



457
458
459
460
461
462
463
464
465
466
# File 'lib/rbind/generator_ruby.rb', line 457

def signature_default_values
    str = parameters.map do |p|
        if p.default_value
            GeneratorRuby.normalize_default_value p
        else
            "nil"
        end
    end.join(", ")
    "[#{str}]"
end

#wrap_parameters_callObject



479
480
481
482
483
484
485
486
# File 'lib/rbind/generator_ruby.rb', line 479

def wrap_parameters_call
    paras = []
    paras << "self" if instance_method?
    paras += parameters.map do |p|
        GeneratorRuby.normalize_arg_name p.name
    end
    paras.join(", ")
end

#wrap_parameters_signatureObject



468
469
470
471
472
473
474
475
476
477
# File 'lib/rbind/generator_ruby.rb', line 468

def wrap_parameters_signature
    parameters.map do |p|
        n = GeneratorRuby.normalize_arg_name p.full_name
        if p.default_value 
            "#{n} = #{GeneratorRuby.normalize_default_value p}"
        else
            n
        end
    end.join(", ")
end