Sha256: 306bb403dc4b8dcd619bb5e1b739594e076dfd60f277df5a13477de4101d1f45

Contents?: true

Size: 858 Bytes

Versions: 19

Compression:

Stored size: 858 Bytes

Contents

module Tins
  module MethodDescription
    def description
      result = ''
      if owner <= Module
        result << receiver.to_s << '.'
      else
        result << owner.name.to_s << '#'
      end
      result << name.to_s << '('
      if respond_to?(:parameters)
        generated_name = 'x0'
        result << parameters.map { |p_type, p_name|
          p_name ||= generated_name.succ!
          case p_type
          when :block
            "&#{p_name}"
          when :rest
            "*#{p_name}"
          when :keyrest
            "**#{p_name}"
          when :req
            p_name
          when :opt
            "#{p_name}="
          when :key
            "#{p_name}:"
          else
            [ p_name, p_type ] * ':'
          end
        } * ','
      else
        result << arity.to_s
      end
      result << ')'
    end
  end
end

Version data entries

19 entries across 18 versions & 3 rubygems

Version Path
tdiary-5.1.2 vendor/bundle/ruby/2.6.0/gems/tins-0.13.2/lib/tins/method_description.rb
tdiary-5.1.1 vendor/bundle/ruby/2.6.0/gems/tins-0.13.2/lib/tins/method_description.rb
tdiary-5.0.8 vendor/bundle/ruby/2.5.0/gems/tins-0.13.2/lib/tins/method_description.rb
tdiary-5.0.8 vendor/bundle/gems/tins-0.13.2/lib/tins/method_description.rb
tins-1.3.0 lib/tins/method_description.rb
tins-1.2.0 lib/tins/method_description.rb
tins-1.1.0 lib/tins/method_description.rb
tins-1.0.1 lib/tins/method_description.rb
tins-1.0.0 lib/tins/method_description.rb
tins-0.13.2 lib/tins/method_description.rb
social_url_stats-0.0.1 vendor/ruby/1.9.1/gems/tins-0.13.1/lib/tins/method_description.rb
tins-0.13.1 lib/tins/method_description.rb
tins-0.13.0 lib/tins/method_description.rb
tins-0.12.0 lib/tins/method_description.rb
tins-0.11.0 lib/tins/method_description.rb
tins-0.10.0 lib/tins/method_description.rb
tins-0.9.0 lib/tins/method_description.rb
tins-0.8.4 lib/tins/method_description.rb
tins-0.8.3 lib/tins/method_description.rb