class RailInspector::Visitor::FrameworkDefault::VersionedConfig
Attributes
Public Class Methods
# File tools/rail_inspector/lib/rail_inspector/visitor/framework_default.rb, line 49 def initialize @configs = {} @framework_stack = [] end
Public Instance Methods
# File tools/rail_inspector/lib/rail_inspector/visitor/framework_default.rb, line 54 def config_for(node) visit(node) @configs end
# File tools/rail_inspector/lib/rail_inspector/visitor/framework_default.rb, line 74 def visit_assign(node) assert_framework(node) target = SyntaxTree::Formatter.format(nil, node.target) value = case node.value when SyntaxTree::HashLiteral HashToString.new.tap { |v| v.visit(node.value) }.to_s when SyntaxTree::StringConcat MultilineToString.new.tap { |v| v.visit(node.value) }.to_s else SyntaxTree::Formatter.format(nil, node.value) end @configs[target] = value end
Calls superclass method
# File tools/rail_inspector/lib/rail_inspector/visitor/framework_default.rb, line 60 def visit_if(node) unless new_framework = respond_to_framework?(node.predicate) return super end if ENV["STRICT"] && current_framework raise "Potentially nested framework? Current: '#{current_framework}', found: '#{new_framework}'" end @framework_stack << new_framework super @framework_stack.pop end
Calls superclass method
# File tools/rail_inspector/lib/rail_inspector/visitor/framework_default.rb, line 90 def visit_opassign(node) if node.operator.name == :"||=" visit_assign(node) else super end end