Class: AutoAttrInit::DetectParams

Inherits:
Object
  • Object
show all
Defined in:
lib/auto_attr_init/detect_params.rb

Overview

classを静的解析して、initializeのparamsを抽出する。

Instance Method Summary collapse

Constructor Details

#initialize(klass) ⇒ DetectParams

Returns a new instance of DetectParams.

Parameters:



9
10
11
# File 'lib/auto_attr_init/detect_params.rb', line 9

def initialize klass
  @klass = klass
end

Instance Method Details

#detectArray

Returns [param type, param name, default value|nil][].

Returns:

  • (Array)
    param type, param name, default value|nil][


14
15
16
17
18
19
20
21
22
23
24
# File 'lib/auto_attr_init/detect_params.rb', line 14

def detect
  initialize_method = @klass.instance_method :initialize
  if initialize_method
    params = initialize_method.parameters
    params = analyze_opt_params initialize_method, params
    params = params.select{|param| param[0] != :block }
  else
    params = []
  end
  params
end