Class: CfSim::ControlFieldSetFinder

Inherits:
Object
  • Object
show all
Defined in:
lib/cf_sim/control_field_set_finder.rb

Instance Method Summary collapse

Constructor Details

#initialize(fields, limit_field_count = 1) ⇒ ControlFieldSetFinder

Returns a new instance of ControlFieldSetFinder.



5
6
7
8
9
# File 'lib/cf_sim/control_field_set_finder.rb', line 5

def initialize(fields, limit_field_count = 1)
  @fields = CfSim::ControlFieldSet.new(fields.sort_by(&:area).reverse)
  @coexistable_field_map = CfSim::CoexistableFieldMap.new(@fields)
  @limit_field_count = limit_field_count
end

Instance Method Details

#find_all_fields_listObject



17
18
19
20
21
# File 'lib/cf_sim/control_field_set_finder.rb', line 17

def find_all_fields_list
  @control_fields_list = []
  find_recursively(CfSim::ControlFieldSet.new, @fields, :all)
  @control_fields_list
end

#find_max_area_fieldsObject



11
12
13
14
15
# File 'lib/cf_sim/control_field_set_finder.rb', line 11

def find_max_area_fields
  @max_area_control_fields = nil
  find_recursively(CfSim::ControlFieldSet.new, @fields, :max_area)
  @max_area_control_fields
end

#find_max_count_fields_listObject



23
24
25
26
27
# File 'lib/cf_sim/control_field_set_finder.rb', line 23

def find_max_count_fields_list
  @max_count_control_fields_list = []
  find_recursively(CfSim::ControlFieldSet.new, @fields, :max_count)
  @max_count_control_fields_list.sort_by(&:total_area).reverse
end