Module: CodeMiner::ParamsProcessor

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

Instance Method Summary collapse

Instance Method Details

#on_block_var(params, _) ⇒ Object



26
27
28
# File 'lib/codeminer/processors/params_processor.rb', line 26

def on_block_var(params, _)
  params
end

#on_mlhs_add(params, param) ⇒ Object



38
39
40
# File 'lib/codeminer/processors/params_processor.rb', line 38

def on_mlhs_add(params, param)
  params.add(param)
end

#on_mlhs_newObject



30
31
32
# File 'lib/codeminer/processors/params_processor.rb', line 30

def on_mlhs_new
  ExpressionContainer.new([], :mlhs)
end

#on_mlhs_paren(exp) ⇒ Object



42
43
44
45
46
47
48
49
# File 'lib/codeminer/processors/params_processor.rb', line 42

def on_mlhs_paren(exp)
  if exp.kind_of?(Token)
    DestructuredParamExpression.new(exp, exp.src_extract)
  else
    exp.src = extract_src_by_token(@parens_begin.pop)
    exp
  end
end

#on_mrhs_add(params, exp) ⇒ Object



55
56
57
# File 'lib/codeminer/processors/params_processor.rb', line 55

def on_mrhs_add(params, exp)
  params.add(exp)
end

#on_mrhs_add_star(params, exp) ⇒ Object Also known as: on_mlhs_add_star



59
60
61
# File 'lib/codeminer/processors/params_processor.rb', line 59

def on_mrhs_add_star(params, exp)
  params.add(SplatExpression.new(exp, extract_src(exp.line, exp.column - 1, exp.end_line, exp.end_column)))
end

#on_mrhs_newObject



34
35
36
# File 'lib/codeminer/processors/params_processor.rb', line 34

def on_mrhs_new
  ExpressionContainer.new([], :values)
end

#on_mrhs_new_from_args(args) ⇒ Object



51
52
53
# File 'lib/codeminer/processors/params_processor.rb', line 51

def on_mrhs_new_from_args(args)
  ExpressionContainer.new(args.each, :values, args.src_extract)
end

#on_params(positional, optional, splat, _, keyword, _, block) ⇒ Object



5
6
7
8
9
# File 'lib/codeminer/processors/params_processor.rb', line 5

def on_params(positional, optional, splat, _, keyword, _, block)
  ParamsExpression.new(positional_params(positional), optional_params(optional), keyword_params(keyword), splat_param(splat), block).tap do |params|
    params.src = extract_src_by_tokens(params) if params.line
  end
end

#on_paren(params) ⇒ Object



21
22
23
24
# File 'lib/codeminer/processors/params_processor.rb', line 21

def on_paren(params)
  params.src = extract_src(params.line, params.column - 1, params.end_line, params.end_column + 1) if params && params.src_extract
  params
end

#on_rest_param(token) ⇒ Object



11
12
13
14
15
16
17
18
19
# File 'lib/codeminer/processors/params_processor.rb', line 11

def on_rest_param(token)
  if token
    token.column -= 1
    src = extract_src(token.line, token.column, token.end_line, token.end_column)
  else
    src = extract_src(lineno(), column() - 1, lineno(), column())
  end
  SplatExpression.new(token, src)
end