method

handle_assignment

rails latest stable - Class: RailInspector::Visitor::FrameworkDefault::VersionedConfig

Method not available on this version

This method is only available on newer versions. The first available version (v8.1.1) is shown here.

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