123456789_123456789_123456789_123456789_123456789_

Module: RuboCop::AST::MethodIdentifierPredicates

Relationships & Source Files
Extension / Inclusion / Inheritance Descendants
Included In:
Defined in: lib/rubocop/ast/node/mixin/method_identifier_predicates.rb

Overview

Note:

this mixin expects #method_name and #receiver to be implemented

Common predicates for nodes that reference method identifiers: send, csend, def, defs, super, zsuper

Constant Summary

Instance Attribute Summary

Instance Method Summary

Instance Attribute Details

#assignment_method?Boolean (readonly)

Checks whether the method is an assignment method.

Returns:

  • (Boolean)

    whether the method is an assignment

[ GitHub ]

  
# File 'lib/rubocop/ast/node/mixin/method_identifier_predicates.rb', line 142

def assignment_method?
  !comparison_method? && method_name.to_s.end_with?('=')
end

#bang_method?Boolean (readonly)

Checks whether the method is a bang method.

Returns:

  • (Boolean)

    whether the method is a bang method

[ GitHub ]

  
# File 'lib/rubocop/ast/node/mixin/method_identifier_predicates.rb', line 171

def bang_method?
  method_name.to_s.end_with?('!')
end

#camel_case_method?Boolean (readonly)

Checks whether the method is a camel case method, e.g. Integer().

Returns:

  • (Boolean)

    whether the method is a camel case method

[ GitHub ]

  
# File 'lib/rubocop/ast/node/mixin/method_identifier_predicates.rb', line 179

def camel_case_method?
  method_name.to_s =~ /\A[A-Z]/
end

#comparison_method?Boolean (readonly)

Checks whether the method is a comparison method.

Returns:

  • (Boolean)

    whether the method is a comparison

[ GitHub ]

  
# File 'lib/rubocop/ast/node/mixin/method_identifier_predicates.rb', line 135

def comparison_method?
  Node::COMPARISON_OPERATORS.include?(method_name)
end

#const_receiver?Boolean (readonly)

Checks whether the explicit receiver of node is a const node.

Returns:

  • (Boolean)

    whether the receiver of this node is a const node

[ GitHub ]

  
# File 'lib/rubocop/ast/node/mixin/method_identifier_predicates.rb', line 193

def const_receiver?
  receiver&.const_type?
end

#enumerable_method?Boolean (readonly)

Checks whether the method is an Enumerable method.

Returns:

  • (Boolean)

    whether the method is an Enumerable method

[ GitHub ]

  
# File 'lib/rubocop/ast/node/mixin/method_identifier_predicates.rb', line 157

def enumerable_method?
  ENUMERABLE_METHODS.include?(method_name)
end

#enumerator_method?Boolean (readonly)

Checks whether the method is an enumerator method.

Returns:

  • (Boolean)

    whether the method is an enumerator

[ GitHub ]

  
# File 'lib/rubocop/ast/node/mixin/method_identifier_predicates.rb', line 149

def enumerator_method?
  ENUMERATOR_METHODS.include?(method_name) ||
    method_name.to_s.start_with?('each_')
end

#negation_method?Boolean (readonly)

Checks whether this is a negation method, i.e. ! or keyword not.

Returns:

  • (Boolean)

    whether this method is a negation method

[ GitHub ]

  
# File 'lib/rubocop/ast/node/mixin/method_identifier_predicates.rb', line 200

def negation_method?
  receiver && method_name == :!
end

#nonmutating_array_method?Boolean (readonly)

Checks whether the method is a nonmutating Array method.

Returns:

  • (Boolean)

    whether the method is a nonmutating Array method

[ GitHub ]

  
# File 'lib/rubocop/ast/node/mixin/method_identifier_predicates.rb', line 114

def nonmutating_array_method?
  NONMUTATING_ARRAY_METHODS.include?(method_name)
end

#nonmutating_binary_operator_method?Boolean (readonly)

Checks whether the method is a nonmutating binary operator method.

Returns:

  • (Boolean)

    whether the method is a nonmutating binary operator method

[ GitHub ]

  
# File 'lib/rubocop/ast/node/mixin/method_identifier_predicates.rb', line 93

def nonmutating_binary_operator_method?
  NONMUTATING_BINARY_OPERATOR_METHODS.include?(method_name)
end

#nonmutating_hash_method?Boolean (readonly)

Checks whether the method is a nonmutating Hash method.

Returns:

  • (Boolean)

    whether the method is a nonmutating Hash method

[ GitHub ]

  
# File 'lib/rubocop/ast/node/mixin/method_identifier_predicates.rb', line 121

def nonmutating_hash_method?
  NONMUTATING_HASH_METHODS.include?(method_name)
end

#nonmutating_operator_method?Boolean (readonly)

Checks whether the method is a nonmutating operator method.

Returns:

  • (Boolean)

    whether the method is a nonmutating operator method

[ GitHub ]

  
# File 'lib/rubocop/ast/node/mixin/method_identifier_predicates.rb', line 107

def nonmutating_operator_method?
  NONMUTATING_OPERATOR_METHODS.include?(method_name)
end

#nonmutating_string_method?Boolean (readonly)

Checks whether the method is a nonmutating String method.

Returns:

  • (Boolean)

    whether the method is a nonmutating String method

[ GitHub ]

  
# File 'lib/rubocop/ast/node/mixin/method_identifier_predicates.rb', line 128

def nonmutating_string_method?
  NONMUTATING_STRING_METHODS.include?(method_name)
end

#nonmutating_unary_operator_method?Boolean (readonly)

Checks whether the method is a nonmutating unary operator method.

Returns:

  • (Boolean)

    whether the method is a nonmutating unary operator method

[ GitHub ]

  
# File 'lib/rubocop/ast/node/mixin/method_identifier_predicates.rb', line 100

def nonmutating_unary_operator_method?
  NONMUTATING_UNARY_OPERATOR_METHODS.include?(method_name)
end

#operator_method?Boolean (readonly)

Checks whether the method is an operator method.

Returns:

  • (Boolean)

    whether the method is an operator

[ GitHub ]

  
# File 'lib/rubocop/ast/node/mixin/method_identifier_predicates.rb', line 86

def operator_method?
  OPERATOR_METHODS.include?(method_name)
end

#predicate_method?Boolean (readonly)

Checks whether the method is a predicate method.

Returns:

  • (Boolean)

    whether the method is a predicate method

[ GitHub ]

  
# File 'lib/rubocop/ast/node/mixin/method_identifier_predicates.rb', line 164

def predicate_method?
  method_name.to_s.end_with?('?')
end

#prefix_bang?Boolean (readonly)

Checks whether this is a prefix bang method, e.g. !foo.

Returns:

  • (Boolean)

    whether this method is a prefix bang

[ GitHub ]

  
# File 'lib/rubocop/ast/node/mixin/method_identifier_predicates.rb', line 214

def prefix_bang?
  negation_method? && loc.selector.is?('!')
end

#prefix_not?Boolean (readonly)

Checks whether this is a prefix not method, e.g. not foo.

Returns:

  • (Boolean)

    whether this method is a prefix not

[ GitHub ]

  
# File 'lib/rubocop/ast/node/mixin/method_identifier_predicates.rb', line 207

def prefix_not?
  negation_method? && loc.selector.is?('not')
end

#self_receiver?Boolean (readonly)

Checks whether the explicit receiver of this node is self.

Returns:

  • (Boolean)

    whether the receiver of this node is self

[ GitHub ]

  
# File 'lib/rubocop/ast/node/mixin/method_identifier_predicates.rb', line 186

def self_receiver?
  receiver&.self_type?
end

Instance Method Details

#method?(name) ⇒ Boolean

Checks whether the method name matches the argument.

Parameters:

  • name (Symbol, String)

    the method name to check for

Returns:

  • (Boolean)

    whether the method name matches the argument

[ GitHub ]

  
# File 'lib/rubocop/ast/node/mixin/method_identifier_predicates.rb', line 79

def method?(name)
  method_name == name.to_sym
end