class GroceryList::FileItemParser
Public Class Methods
read(file_path)
click to toggle source
# File lib/grocery_list/item_parsers/file_item_parser.rb, line 4 def read(file_path) raise ArgumentError unless file_path.is_a? String file = IO.read(file_path) items_from_file(file) end
Private Class Methods
is_valid_item(line)
click to toggle source
# File lib/grocery_list/item_parsers/file_item_parser.rb, line 23 def is_valid_item(line) line.start_with? " *" end
item_name(line)
click to toggle source
# File lib/grocery_list/item_parsers/file_item_parser.rb, line 27 def item_name(line) line[2..-1].strip end
items_from_file(file)
click to toggle source
# File lib/grocery_list/item_parsers/file_item_parser.rb, line 11 def items_from_file(file) file.split("\n").map do |line| line_to_item(line) end.select do |item| item.is_a? Item end end
line_to_item(line)
click to toggle source
# File lib/grocery_list/item_parsers/file_item_parser.rb, line 19 def line_to_item(line) Item.new(item_name(line)) if is_valid_item(line) end