Module: CodeMiner::AssignmentProcessor

Included in:
Parser
Defined in:
lib/codeminer/processors/assignment_processor.rb

Instance Method Summary collapse

Instance Method Details

#on_assign(exp, body) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/codeminer/processors/assignment_processor.rb', line 5

def on_assign(exp, body)
  klass = case exp.type
            when :local_variable
              LocalAssignExpression
            when :global_variable
              GlobalVariableAssignExpression
            when :instance_variable
              InstanceVariableAssignExpression
            when :class_variable
              ClassVariableAssignExpression
            when :field
              AttributeAssignExpression
            when :constant
              ConstantAssignExpression
            when :aref_field
              ArefAssignExpression
            when :colon2
              Colon2AssignExpression
            when :colon3
              Colon3AssignExpression
            else
              assert(false, "#{exp.type} is not a valid assignment")
          end
  klass.new(exp, body, extract_src_by_tokens(exp, body))
end

#on_massign(container, values) ⇒ Object



31
32
33
34
# File 'lib/codeminer/processors/assignment_processor.rb', line 31

def on_massign(container, values)
  value_container = ExpressionContainer.wrap(values, :values)
  MultipleAssignmentExpression.new(container, value_container, extract_src_by_tokens(container, values))
end

#on_opassign(variable, op, body) ⇒ Object



36
37
38
# File 'lib/codeminer/processors/assignment_processor.rb', line 36

def on_opassign(variable, op, body)
  OpAssignExpression.new(variable, op, body, extract_src_by_tokens(variable, body))
end