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



409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
# File 'lib/rbind/generator_ruby.rb', line 409

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



443
444
445
446
447
448
449
450
# File 'lib/rbind/generator_ruby.rb', line 443

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



425
426
427
428
# File 'lib/rbind/generator_ruby.rb', line 425

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

#bindingObject



452
453
454
# File 'lib/rbind/generator_ruby.rb', line 452

def binding
    Kernel.binding
end

#cnameObject



405
406
407
# File 'lib/rbind/generator_ruby.rb', line 405

def cname
    GeneratorRuby.normalize_method_name(__getobj__.cname)
end

#generate_param_docObject



430
431
432
433
434
435
436
437
438
439
440
441
# File 'lib/rbind/generator_ruby.rb', line 430

def generate_param_doc
    paras = parameters.map do |p|
        n = GeneratorRuby.normalize_arg_name p.name
        t = GeneratorRuby.normalize_type_name(p.type.full_name)
        "# @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



347
348
349
350
351
352
353
354
# File 'lib/rbind/generator_ruby.rb', line 347

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

#nameObject



387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
# File 'lib/rbind/generator_ruby.rb', line 387

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



356
357
358
359
360
361
362
363
364
365
# File 'lib/rbind/generator_ruby.rb', line 356

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



378
379
380
381
382
383
384
385
# File 'lib/rbind/generator_ruby.rb', line 378

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



367
368
369
370
371
372
373
374
375
376
# File 'lib/rbind/generator_ruby.rb', line 367

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