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



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

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



571
572
573
574
575
576
577
578
# File 'lib/rbind/generator_ruby.rb', line 571

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



549
550
551
552
# File 'lib/rbind/generator_ruby.rb', line 549

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

#bindingObject



580
581
582
# File 'lib/rbind/generator_ruby.rb', line 580

def binding
    Kernel.binding
end

#cnameObject



529
530
531
# File 'lib/rbind/generator_ruby.rb', line 529

def cname
    GeneratorRuby.normalize_method_name(__getobj__.cname)
end

#generate_param_docObject



554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
# File 'lib/rbind/generator_ruby.rb', line 554

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



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

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

#nameObject



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

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



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

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



502
503
504
505
506
507
508
509
# File 'lib/rbind/generator_ruby.rb', line 502

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



491
492
493
494
495
496
497
498
499
500
# File 'lib/rbind/generator_ruby.rb', line 491

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