Class: Csvtool::Domain::RowSession::RowRange
- Inherits:
-
Object
- Object
- Csvtool::Domain::RowSession::RowRange
- Defined in:
- lib/csvtool/domain/row_session/row_range.rb
Instance Attribute Summary collapse
-
#end_row ⇒ Object
readonly
Returns the value of attribute end_row.
-
#start_row ⇒ Object
readonly
Returns the value of attribute start_row.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(start_row:, end_row:) ⇒ RowRange
constructor
A new instance of RowRange.
Constructor Details
#initialize(start_row:, end_row:) ⇒ RowRange
Returns a new instance of RowRange.
28 29 30 31 32 33 34 35 |
# File 'lib/csvtool/domain/row_session/row_range.rb', line 28 def initialize(start_row:, end_row:) raise InvalidStartRowError, "invalid start row" unless start_row.to_i >= 1 raise InvalidEndRowError, "invalid end row" unless end_row.to_i >= 1 raise InvalidRowRangeOrderError, "end row before start row" if end_row < start_row @start_row = start_row @end_row = end_row end |
Instance Attribute Details
#end_row ⇒ Object (readonly)
Returns the value of attribute end_row.
11 12 13 |
# File 'lib/csvtool/domain/row_session/row_range.rb', line 11 def end_row @end_row end |
#start_row ⇒ Object (readonly)
Returns the value of attribute start_row.
11 12 13 |
# File 'lib/csvtool/domain/row_session/row_range.rb', line 11 def start_row @start_row end |
Class Method Details
.from_inputs(start_row_input:, end_row_input:) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/csvtool/domain/row_session/row_range.rb', line 13 def self.from_inputs(start_row_input:, end_row_input:) unless /\A[1-9]\d*\z/.match?(start_row_input.to_s) raise InvalidStartRowError, "invalid start row" end unless /\A[1-9]\d*\z/.match?(end_row_input.to_s) raise InvalidEndRowError, "invalid end row" end start_row = start_row_input.to_i end_row = end_row_input.to_i raise InvalidRowRangeOrderError, "end row before start row" if end_row < start_row new(start_row: start_row, end_row: end_row) end |