Sha256: 2a9124990fa263e83f0c0fedab3f0e593d6c38d6bd88d42c5f4d508236ad99bb

Contents?: true

Size: 1.66 KB

Versions: 14

Compression:

Stored size: 1.66 KB

Contents

module Inch
  module Language
    module Nodejs
      module CodeObject
        # Proxy class for method parameters
        class FunctionParameterObject
          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
          alias_method :fullname, :name

          # @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
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
inch-0.5.10 lib/inch/language/nodejs/code_object/function_parameter_object.rb
inch-0.5.9 lib/inch/language/nodejs/code_object/function_parameter_object.rb
inch-0.5.8 lib/inch/language/nodejs/code_object/function_parameter_object.rb
inch-0.5.7 lib/inch/language/nodejs/code_object/function_parameter_object.rb
inch-0.5.6 lib/inch/language/nodejs/code_object/function_parameter_object.rb
inch-0.5.5 lib/inch/language/nodejs/code_object/function_parameter_object.rb
inch-0.5.4 lib/inch/language/nodejs/code_object/function_parameter_object.rb
inch-0.5.3 lib/inch/language/nodejs/code_object/function_parameter_object.rb
inch-0.5.2 lib/inch/language/nodejs/code_object/function_parameter_object.rb
inch-0.5.1 lib/inch/language/nodejs/code_object/function_parameter_object.rb
inch-0.5.0 lib/inch/language/nodejs/code_object/function_parameter_object.rb
inch-0.5.0.rc11 lib/inch/language/nodejs/code_object/function_parameter_object.rb
inch-0.5.0.rc10 lib/inch/language/nodejs/code_object/function_parameter_object.rb
inch-0.5.0.rc9 lib/inch/language/nodejs/code_object/function_parameter_object.rb