From 2dfaf64ef718d4ed3f13450079f556b8b431c5f0 Mon Sep 17 00:00:00 2001 From: Andy Meneely Date: Sat, 15 Aug 2015 14:44:27 -0400 Subject: [PATCH] Convert data reading methods to args classes --- lib/squib/api/data.rb | 13 +++++++------ lib/squib/args/input_file.rb | 7 +++++-- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/lib/squib/api/data.rb b/lib/squib/api/data.rb index 2ef0abd..b6574a4 100644 --- a/lib/squib/api/data.rb +++ b/lib/squib/api/data.rb @@ -1,5 +1,6 @@ require 'roo' require 'csv' +require 'squib/args/input_file' module Squib @@ -22,10 +23,9 @@ module Squib # @return [Hash] a hash of arrays based on columns in the spreadsheet # @api public def xlsx(opts = {}) - opts = Squib::SYSTEM_DEFAULTS.merge(opts) - opts = Squib::InputHelpers.fileify(opts) - s = Roo::Excelx.new(opts[:file]) - s.default_sheet = s.sheets[opts[:sheet]] + input = Args::InputFile.new(file: 'deck.xlsx').load!(opts) + s = Roo::Excelx.new(input.file[0]) + s.default_sheet = s.sheets[input.sheet[0]] data = {} s.first_column.upto(s.last_column) do |col| header = s.cell(s.first_row,col).to_s @@ -61,9 +61,10 @@ module Squib # @return [Hash] a hash of arrays based on columns in the table # @api public def csv(opts = {}) + file = Args::InputFile.new(file: 'deck.csv').load!(opts).file[0] opts = Squib::SYSTEM_DEFAULTS.merge(opts) - opts = Squib::InputHelpers.fileify(opts) - table = CSV.read(opts[:file], headers: true, converters: :numeric) + # opts = Squib::InputHelpers.fileify(opts) + table = CSV.read(file, headers: true, converters: :numeric) check_duplicate_csv_headers(table) hash = Hash.new table.headers.each do |header| diff --git a/lib/squib/args/input_file.rb b/lib/squib/args/input_file.rb index 773734d..9b520aa 100644 --- a/lib/squib/args/input_file.rb +++ b/lib/squib/args/input_file.rb @@ -7,11 +7,14 @@ module Squib class InputFile include ArgLoader - def initialize + def initialize(dsl_method_default = {}) + @dsl_method_default = dsl_method_default end def self.parameters - { file: nil } + { file: nil, + sheet: 0, + } end def self.expanding_parameters