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.
122 123 124 125 126 127 128 129 130 131 132 |
# File 'lib/theme_check/position.rb', line 122 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.
120 121 122 |
# File 'lib/theme_check/position.rb', line 120 def contents @contents end |
#needle ⇒ Object (readonly)
Returns the value of attribute needle.
120 121 122 |
# File 'lib/theme_check/position.rb', line 120 def needle @needle end |
Instance Method Details
#end_column ⇒ Object
156 157 158 |
# File 'lib/theme_check/position.rb', line 156 def end_column end_row_column[1] end |
#end_index ⇒ Object
0-indexed, exclusive
140 141 142 |
# File 'lib/theme_check/position.rb', line 140 def end_index start_index + needle.size end |
#end_row ⇒ Object
152 153 154 |
# File 'lib/theme_check/position.rb', line 152 def end_row end_row_column[0] end |
#start_column ⇒ Object
148 149 150 |
# File 'lib/theme_check/position.rb', line 148 def start_column start_row_column[1] end |
#start_index ⇒ Object
0-indexed, inclusive
135 136 137 |
# File 'lib/theme_check/position.rb', line 135 def start_index @contents.index(needle, @start_index) end |
#start_row ⇒ Object
144 145 146 |
# File 'lib/theme_check/position.rb', line 144 def start_row start_row_column[0] end |