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



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

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



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

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



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

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

#bindingObject



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

def binding
    Kernel.binding
end

#cnameObject



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

def cname
    GeneratorRuby.normalize_method_name(__getobj__.cname)
end

#generate_param_docObject



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

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



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

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

#nameObject



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

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



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

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



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

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



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

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