Sha256: 001975be1aadc2c14eb80cccaeab01426fa92ef282efda7972fff42bf8761c0f

Contents?: true

Size: 1.48 KB

Versions: 4

Compression:

Stored size: 1.48 KB

Contents

module Inch
  module CodeObject
    module Proxy
      # Proxy class for method parameters
      class MethodParameterObject
        def initialize(attributes)
          @attributes = attributes
        end

        def [](key)
          @attributes[key]
        end

        BAD_NAME_EXCEPTIONS = %w(id)
        BAD_NAME_THRESHOLD = 3

        # @return [Boolean] +true+ if the name of the parameter is uncommunicative
        def bad_name?
          return false if BAD_NAME_EXCEPTIONS.include?(name)
          name.size < BAD_NAME_THRESHOLD || name =~ /[0-9]$/
        end

        # @return [Boolean] +true+ if the parameter is a block
        def block?
          self[:block?]
        end

        # @return [Boolean] +true+ if an additional description given?
        def described?
          self[:described?]
        end

        # @return [Boolean] +true+ if the parameter is mentioned in the docs
        def mentioned?
          self[:mentioned?]
        end

        def name
          self[:name]
        end

        # @return [Boolean] +true+ if the parameter is a splat argument
        def splat?
          self[:splat?]
        end

        # @return [Boolean] +true+ if the type of the parameter is defined
        def typed?
          self[:typed?]
        end

        # @return [Boolean] +true+ if the parameter is mentioned in the docs, but not present in the method's signature
        def wrongly_mentioned?
          self[:wrongly_mentioned?]
        end

      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
inch-0.3.0 lib/inch/code_object/proxy/method_parameter_object.rb
inch-0.3.0.rc3 lib/inch/code_object/proxy/method_parameter_object.rb
inch-0.3.0.rc2 lib/inch/code_object/proxy/method_parameter_object.rb
inch-0.3.0.rc1 lib/inch/code_object/proxy/method_parameter_object.rb