Browse Source

Convert data reading methods to args classes

dev
Andy Meneely 10 years ago
parent
commit
2dfaf64ef7
  1. 13
      lib/squib/api/data.rb
  2. 7
      lib/squib/args/input_file.rb

13
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|

7
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

Loading…
Cancel
Save