module Reek::AST::SexpExtensions::Op_AsgnNode
Utility methods for :send nodes.
Constants
- ATTR_DEFN_METHODS
Public Instance Methods
Source
# File lib/reek/ast/sexp_extensions/send.rb, line 44 def attr_with_writable_flag? name == :attr && args.any? && args.last.type == :true end
Handles the case where we create an attribute writer via: attr :foo, true
Source
# File lib/reek/ast/sexp_extensions/send.rb, line 37 def attribute_writer? ATTR_DEFN_METHODS.include?(name) || attr_with_writable_flag? end
Source
# File lib/reek/ast/sexp_extensions/send.rb, line 26 def module_creation_call? return true if object_creation_call? && module_creation_receiver? return true if data_definition_call? && data_definition_receiver? false end
Source
# File lib/reek/ast/sexp_extensions/send.rb, line 33 def object_creation_call? name == :new end
Source
# File lib/reek/ast/sexp_extensions/send.rb, line 22 def participants ([receiver] + args).compact end
Source
# File lib/reek/ast/sexp_extensions/send.rb, line 10 def receiver children.first end
Private Instance Methods
Source
# File lib/reek/ast/sexp_extensions/send.rb, line 62 def const_receiver? receiver && receiver.type == :const end
Source
# File lib/reek/ast/sexp_extensions/send.rb, line 54 def data_definition_call? name == :define end
Source
# File lib/reek/ast/sexp_extensions/send.rb, line 58 def data_definition_receiver? const_receiver? && receiver.simple_name == :Data end
Source
# File lib/reek/ast/sexp_extensions/send.rb, line 50 def module_creation_receiver? const_receiver? && [:Class, :Struct].include?(receiver.simple_name) end