class RuboCop::Cop::Highlands::FactoryClassUseString
Cop
to tell developers to use :class => “MyClass” instead of :class => MyClass, because the latter slows down reloading zeus.
Constants
- MSG
Public Instance Methods
on_send(node)
click to toggle source
# File lib/rubocop/cop/highlands/factory_class_use_string.rb, line 10 def on_send(node) return unless node.command?(:factory) class_pair = class_node(node) if class_pair && !string_class_name?(class_pair) add_offense(class_pair) end end
Private Instance Methods
class_node(node)
click to toggle source
Return the descendant node that is a hash pair (:key => value) whose key is :class.
# File lib/rubocop/cop/highlands/factory_class_use_string.rb, line 24 def class_node(node) node.descendants.detect do |e| e.is_a?(Parser::AST::Node) && e.pair_type? && e.children[0].children[0] == :class end end
string_class_name?(class_pair)
click to toggle source
Given a hash pair :class_name => value, is the value a hardcoded string?
# File lib/rubocop/cop/highlands/factory_class_use_string.rb, line 33 def string_class_name?(class_pair) class_pair.children[1].str_type? end