class Parser

Attributes

path[RW]
products[RW]

Public Class Methods

new(path = "", no_validate = false, use_mock_file = false) click to toggle source

initialize a new conference settings

# File lib/wunder/parser.rb, line 10
def initialize(path = "", no_validate = false, use_mock_file = false)
  @path = (use_mock_file == true ? mock_file_path : path)
  validate if no_validate == false
end

Public Instance Methods

mock_file_path() click to toggle source

incase file is not provided

# File lib/wunder/parser.rb, line 33
def mock_file_path
  source = __dir__
  File.join(source, "input/input.csv")
end
process_file() click to toggle source
# File lib/wunder/parser.rb, line 20
def process_file
  @products = ProductCollection.new

  CSV.foreach(path, col_sep: ",", row_sep: :auto, headers: true) do |row|
    product = Product.new(row[0], row[1], row[2])
    next unless @products.validate_product_code_is_uniq(product.product_code)
    @products << product
  end

  @products
end
validate() click to toggle source
# File lib/wunder/parser.rb, line 15
def validate
  err_msg = "No such file found"
  raise err_msg.to_s if path == "" || path.nil? || File.exist?(path) == false
end