method
handle_assignment
rails latest stable - Class:
RailInspector::Visitor::FrameworkDefault::VersionedConfig
handle_assignment(node, name, value)public
No documentation available.
# File tools/rail_inspector/lib/rail_inspector/visitor/framework_default.rb, line 75
def handle_assignment(node, name, value)
prefix = case node.receiver
in Prism::ConstantReadNode[name: constant_name]
constant_name
in Prism::SelfNode
"self"
in Prism::CallNode[receiver: nil, name: framework]
framework_string = framework.to_s
unless current_framework == framework_string
raise "expected: #{current_framework}, actual: #{framework_string}"
end
framework_string
else
node.receiver.location.slice
end
target = "#{prefix}.#{name}"
string_value = case value
in Prism::ConstantPathNode
value.full_name
in Prism::HashNode
HashToString.new.tap { |v| v.visit(value) }.to_s
in Prism::InterpolatedStringNode
"\"#{value.parts.map(&:content).join("")}\""
in Prism::FalseNode
"false"
in Prism::TrueNode
"true"
else
value.location.slice
end
@configs[target] = string_value
end