Class: Csvtool::Infrastructure::CSV::SelectorValidator
- Inherits:
-
Object
- Object
- Csvtool::Infrastructure::CSV::SelectorValidator
- Defined in:
- lib/csvtool/infrastructure/csv/selector_validator.rb
Instance Method Summary collapse
-
#initialize(header_reader: HeaderReader.new) ⇒ SelectorValidator
constructor
A new instance of SelectorValidator.
- #valid?(profile:, selector:) ⇒ Boolean
Constructor Details
#initialize(header_reader: HeaderReader.new) ⇒ SelectorValidator
Returns a new instance of SelectorValidator.
10 11 12 |
# File 'lib/csvtool/infrastructure/csv/selector_validator.rb', line 10 def initialize(header_reader: HeaderReader.new) @header_reader = header_reader end |
Instance Method Details
#valid?(profile:, selector:) ⇒ Boolean
14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/csvtool/infrastructure/csv/selector_validator.rb', line 14 def valid?(profile:, selector:) if selector.headers_present? headers = @header_reader.call(file_path: profile.path, col_sep: profile.separator) return false if headers.empty? headers.include?(selector.value) else first_row = ::CSV.open(profile.path, "r", headers: false, col_sep: profile.separator, &:first) return false if first_row.nil? selector.value <= first_row.length end end |