Class: CfSim::ControlFieldSet
- Inherits:
-
Object
- Object
- CfSim::ControlFieldSet
- Extended by:
- Forwardable
- Includes:
- Enumerable
- Defined in:
- lib/cf_sim/control_field_set.rb
Instance Attribute Summary collapse
-
#control_fields ⇒ Object
readonly
Returns the value of attribute control_fields.
Instance Method Summary collapse
- #&(fields) ⇒ Object
- #+(fields) ⇒ Object
- #-(fields) ⇒ Object
- #==(other) ⇒ Object
- #dup ⇒ Object
- #eql?(other) ⇒ Boolean
-
#initialize(*fields) ⇒ ControlFieldSet
constructor
A new instance of ControlFieldSet.
- #to_s ⇒ Object
- #total_area ⇒ Object
Constructor Details
#initialize(*fields) ⇒ ControlFieldSet
Returns a new instance of ControlFieldSet.
10 11 12 |
# File 'lib/cf_sim/control_field_set.rb', line 10 def initialize(*fields) @control_fields = fields.flatten.dup end |
Instance Attribute Details
#control_fields ⇒ Object (readonly)
Returns the value of attribute control_fields.
7 8 9 |
# File 'lib/cf_sim/control_field_set.rb', line 7 def control_fields @control_fields end |
Instance Method Details
#&(fields) ⇒ Object
22 23 24 |
# File 'lib/cf_sim/control_field_set.rb', line 22 def &(fields) CfSim::ControlFieldSet.new(@control_fields & extract_field_array(fields)) end |
#+(fields) ⇒ Object
26 27 28 |
# File 'lib/cf_sim/control_field_set.rb', line 26 def +(fields) CfSim::ControlFieldSet.new(@control_fields + extract_field_array(fields)) end |
#-(fields) ⇒ Object
18 19 20 |
# File 'lib/cf_sim/control_field_set.rb', line 18 def -(fields) CfSim::ControlFieldSet.new(@control_fields - extract_field_array(fields)) end |
#==(other) ⇒ Object
30 31 32 |
# File 'lib/cf_sim/control_field_set.rb', line 30 def ==(other) eql?(other) end |
#dup ⇒ Object
40 41 42 43 |
# File 'lib/cf_sim/control_field_set.rb', line 40 def dup # initialize 内で dup しているためここでする必要はない CfSim::ControlFieldSet.new(@control_fields) end |
#eql?(other) ⇒ Boolean
34 35 36 37 38 |
# File 'lib/cf_sim/control_field_set.rb', line 34 def eql?(other) other.class == CfSim::ControlFieldSet && @control_fields.size == other.control_fields.size && (@control_fields - other.control_fields).empty? end |
#to_s ⇒ Object
45 46 47 48 49 50 |
# File 'lib/cf_sim/control_field_set.rb', line 45 def to_s text = "Fields:\n" @control_fields.each { |field| text << " #{field}\n" } text << "Total area: #{total_area}" text end |
#total_area ⇒ Object
14 15 16 |
# File 'lib/cf_sim/control_field_set.rb', line 14 def total_area @total_area ||= @control_fields.inject(0) { |area, field| area += field.area } end |