Sha256: 065ea56d88bea11e553cba1e540d9a92b00ae439cc6497826c53b8b42d071e85

Contents?: true

Size: 1.88 KB

Versions: 17

Compression:

Stored size: 1.88 KB

Contents

module Inch
  module Language
    module JavaScript
      module Provider
        module JSDoc
          module Object
            # Proxy class for function parameters
            class FunctionParameterObject
              attr_reader :name # @return [String]

              # @param method [YARD::Object::MethodObject] the method the
              #   parameter belongs to
              # @param name [String] the name of the parameter
              def initialize(method, name)
                @method = method
                @name = name
              end

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

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

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

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

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

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

              private

              def described_by_docstring?
                @method.docstring.describes_parameter?(name)
              end

              def mentioned_by_docstring?
                @method.docstring.mentions_parameter?(name)
              end
            end
          end
        end
      end
    end
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
inch-0.9.0.rc1 lib/inch/language/javascript/provider/jsdoc/object/function_parameter_object.rb
inch-0.8.0 lib/inch/language/javascript/provider/jsdoc/object/function_parameter_object.rb
inch-0.8.0.rc2 lib/inch/language/javascript/provider/jsdoc/object/function_parameter_object.rb
inch-0.8.0.rc1 lib/inch/language/javascript/provider/jsdoc/object/function_parameter_object.rb
inch-0.7.1 lib/inch/language/javascript/provider/jsdoc/object/function_parameter_object.rb
inch-0.7.0 lib/inch/language/javascript/provider/jsdoc/object/function_parameter_object.rb
inch-0.6.4 lib/inch/language/javascript/provider/jsdoc/object/function_parameter_object.rb
inch-0.6.3 lib/inch/language/javascript/provider/jsdoc/object/function_parameter_object.rb
inch-0.6.2 lib/inch/language/javascript/provider/jsdoc/object/function_parameter_object.rb
inch-0.6.1 lib/inch/language/javascript/provider/jsdoc/object/function_parameter_object.rb
inch-0.6.0 lib/inch/language/javascript/provider/jsdoc/object/function_parameter_object.rb
inch-0.6.0.rc6 lib/inch/language/javascript/provider/jsdoc/object/function_parameter_object.rb
inch-0.6.0.rc5 lib/inch/language/javascript/provider/jsdoc/object/function_parameter_object.rb
inch-0.6.0.rc4 lib/inch/language/javascript/provider/jsdoc/object/function_parameter_object.rb
inch-0.6.0.rc3 lib/inch/language/javascript/provider/jsdoc/object/function_parameter_object.rb
inch-0.6.0.rc2 lib/inch/language/javascript/provider/jsdoc/object/function_parameter_object.rb
inch-0.6.0.rc1 lib/inch/language/javascript/provider/jsdoc/object/function_parameter_object.rb