Class: CfSim::ControlFieldSetFinder
- Inherits:
-
Object
- Object
- CfSim::ControlFieldSetFinder
- Defined in:
- lib/cf_sim/control_field_set_finder.rb
Instance Method Summary collapse
- #find_max_area_fields ⇒ Object
- #find_max_count_fields_list ⇒ Object
-
#initialize(fields, options = {}) ⇒ ControlFieldSetFinder
constructor
A new instance of ControlFieldSetFinder.
Constructor Details
#initialize(fields, options = {}) ⇒ ControlFieldSetFinder
Returns a new instance of ControlFieldSetFinder.
5 6 7 8 9 10 11 |
# File 'lib/cf_sim/control_field_set_finder.rb', line 5 def initialize(fields, = {}) @fields = CfSim::ControlFieldSet.new(fields.sort_by(&:area).reverse) @coexistable_field_map = CfSim::CoexistableFieldMap.new(@fields) @limit_field_count = [:limit_field_count] || nil @max_count_control_fields_list = [] @max_area_control_fields = nil end |
Instance Method Details
#find_max_area_fields ⇒ Object
13 14 15 16 17 |
# File 'lib/cf_sim/control_field_set_finder.rb', line 13 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_list ⇒ Object
19 20 21 22 23 24 |
# File 'lib/cf_sim/control_field_set_finder.rb', line 19 def find_max_count_fields_list @max_count_control_fields_list = [] find_recursively(CfSim::ControlFieldSet.new, @fields, :max_count) all_list = @max_count_control_fields_list.sort_by(&:total_area).reverse @limit_field_count ? all_list[0...@limit_field_count] : all_list end |