class RuboCop::Cop::Style::BisectedAttrAccessor::Macro
Representation of an `attr_reader`, `attr_writer` or `attr` macro for use by `Style/BisectedAttrAccessor`. @api private
Attributes
attrs[R]
bisection[R]
node[R]
Public Class Methods
macro?(node)
click to toggle source
# File lib/rubocop/cop/style/bisected_attr_accessor/macro.rb, line 15 def self.macro?(node) node.method?(:attr_reader) || node.method?(:attr_writer) || node.method?(:attr) end
new(node)
click to toggle source
# File lib/rubocop/cop/style/bisected_attr_accessor/macro.rb, line 19 def initialize(node) @node = node @attrs = node.arguments.to_h { |attr| [attr.source, attr] } @bisection = [] end
Public Instance Methods
all_bisected?()
click to toggle source
# File lib/rubocop/cop/style/bisected_attr_accessor/macro.rb, line 49 def all_bisected? rest.none? end
attr_names()
click to toggle source
# File lib/rubocop/cop/style/bisected_attr_accessor/macro.rb, line 29 def attr_names @attr_names ||= attrs.keys end
bisect(*names)
click to toggle source
# File lib/rubocop/cop/style/bisected_attr_accessor/macro.rb, line 25 def bisect(*names) @bisection = attrs.slice(*names).values end
bisected_names()
click to toggle source
# File lib/rubocop/cop/style/bisected_attr_accessor/macro.rb, line 33 def bisected_names bisection.map(&:source) end
reader?()
click to toggle source
# File lib/rubocop/cop/style/bisected_attr_accessor/macro.rb, line 41 def reader? node.method?(:attr_reader) || node.method?(:attr) end
rest()
click to toggle source
# File lib/rubocop/cop/style/bisected_attr_accessor/macro.rb, line 53 def rest @rest ||= attr_names - bisected_names end
visibility()
click to toggle source
# File lib/rubocop/cop/style/bisected_attr_accessor/macro.rb, line 37 def visibility @visibility ||= node_visibility(node) end
writer?()
click to toggle source
# File lib/rubocop/cop/style/bisected_attr_accessor/macro.rb, line 45 def writer? node.method?(:attr_writer) end