Class: ThemeCheck::StrictPosition
- Inherits:
-
Object
- Object
- ThemeCheck::StrictPosition
- Includes:
- PositionHelper
- Defined in:
- lib/theme_check/position.rb
Overview
This method is stricter than Position in the sense that it doesn’t accept invalid inputs. Makes for code that is easier to understand.
Instance Attribute Summary collapse
-
#contents ⇒ Object
readonly
Returns the value of attribute contents.
-
#needle ⇒ Object
readonly
Returns the value of attribute needle.
Instance Method Summary collapse
- #end_column ⇒ Object
-
#end_index ⇒ Object
0-indexed, exclusive.
- #end_row ⇒ Object
-
#initialize(needle, contents, start_index) ⇒ StrictPosition
constructor
A new instance of StrictPosition.
- #start_column ⇒ Object
-
#start_index ⇒ Object
0-indexed, inclusive.
- #start_row ⇒ Object
Methods included from PositionHelper
#bounded, #from_index_to_row_column, #from_row_column_to_index
Constructor Details
#initialize(needle, contents, start_index) ⇒ StrictPosition
Returns a new instance of StrictPosition.
111 112 113 114 115 116 117 118 119 120 121 |
# File 'lib/theme_check/position.rb', line 111 def initialize(needle, contents, start_index) raise ArgumentError, 'Bad start_index' unless start_index.is_a?(Integer) raise ArgumentError, 'Bad contents' unless contents.is_a?(String) raise ArgumentError, 'Bad needle' unless needle.is_a?(String) || !contents.index(needle, start_index) @needle = needle @contents = contents @start_index = start_index @start_row_column = nil @end_row_column = nil end |
Instance Attribute Details
#contents ⇒ Object (readonly)
Returns the value of attribute contents.
109 110 111 |
# File 'lib/theme_check/position.rb', line 109 def contents @contents end |
#needle ⇒ Object (readonly)
Returns the value of attribute needle.
109 110 111 |
# File 'lib/theme_check/position.rb', line 109 def needle @needle end |
Instance Method Details
#end_column ⇒ Object
145 146 147 |
# File 'lib/theme_check/position.rb', line 145 def end_column end_row_column[1] end |
#end_index ⇒ Object
0-indexed, exclusive
129 130 131 |
# File 'lib/theme_check/position.rb', line 129 def end_index start_index + needle.size end |
#end_row ⇒ Object
141 142 143 |
# File 'lib/theme_check/position.rb', line 141 def end_row end_row_column[0] end |
#start_column ⇒ Object
137 138 139 |
# File 'lib/theme_check/position.rb', line 137 def start_column start_row_column[1] end |
#start_index ⇒ Object
0-indexed, inclusive
124 125 126 |
# File 'lib/theme_check/position.rb', line 124 def start_index @contents.index(needle, @start_index) end |
#start_row ⇒ Object
133 134 135 |
# File 'lib/theme_check/position.rb', line 133 def start_row start_row_column[0] end |