readd type to pase function
This commit is contained in:
parent
bfae38147e
commit
cdaacbf5b9
6 changed files with 14 additions and 12 deletions
|
@ -34,14 +34,16 @@ module FoodsoftArticleImport
|
||||||
# @param file [File, Tempfile]
|
# @param file [File, Tempfile]
|
||||||
# @option opts [String] type file format (required) (see {.file_formats})
|
# @option opts [String] type file format (required) (see {.file_formats})
|
||||||
# @return [File, Roo::Spreadsheet] file with encoding set if needed
|
# @return [File, Roo::Spreadsheet] file with encoding set if needed
|
||||||
def self.parse(file, custom_file=nil, type='bnn', **opts, &blk)
|
def self.parse(file, custom_file_path=nil, type='bnn', **opts, &blk)
|
||||||
# @todo handle wrong or undetected type
|
# @todo handle wrong or undetected type
|
||||||
|
type = opts[:type] || 'bnn'
|
||||||
|
puts type
|
||||||
parser = file_formats[type]
|
parser = file_formats[type]
|
||||||
if block_given?
|
if block_given?
|
||||||
parser.parse(file, custom_file, **opts, &blk)
|
parser.parse(file, custom_file_path, **opts, &blk)
|
||||||
else
|
else
|
||||||
data = []
|
data = []
|
||||||
parser.parse(file, custom_file, **opts) { |a| data << a }
|
parser.parse(file, custom_file_path, **opts) { |a| data << a }
|
||||||
data
|
data
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -27,7 +27,7 @@ module FoodsoftArticleImport
|
||||||
RES_PARSE_UNIT_LIST.map {|r| /#{r}\s*$/} +
|
RES_PARSE_UNIT_LIST.map {|r| /#{r}\s*$/} +
|
||||||
RES_PARSE_UNIT_LIST.map {|r| /-#{r}/}
|
RES_PARSE_UNIT_LIST.map {|r| /-#{r}/}
|
||||||
|
|
||||||
def self.parse(file, custom_file=nil, **opts)
|
def self.parse(file, custom_file_path=nil, **opts)
|
||||||
opts = OPTIONS.merge(opts)
|
opts = OPTIONS.merge(opts)
|
||||||
ss = FoodsoftArticleImport.open_spreadsheet(file, **opts)
|
ss = FoodsoftArticleImport.open_spreadsheet(file, **opts)
|
||||||
|
|
||||||
|
|
|
@ -9,13 +9,13 @@ module FoodsoftArticleImport
|
||||||
@@codes = Hash.new
|
@@codes = Hash.new
|
||||||
@@midgard = Hash.new
|
@@midgard = Hash.new
|
||||||
# Loads the codes_file config/bnn_codes.yml into the class variable @@codes
|
# Loads the codes_file config/bnn_codes.yml into the class variable @@codes
|
||||||
def self.load_codes(custom_file=nil)
|
def self.load_codes(custom_file_path=nil)
|
||||||
@gem_lib = File.expand_path "../../", __FILE__
|
@gem_lib = File.expand_path "../../", __FILE__
|
||||||
dir = File.join @gem_lib, 'foodsoft_article_import'
|
dir = File.join @gem_lib, 'foodsoft_article_import'
|
||||||
begin
|
begin
|
||||||
@@codes = YAML::load(File.open(File.join(dir,"bnn_codes.yml"))).symbolize_keys
|
@@codes = YAML::load(File.open(File.join(dir,"bnn_codes.yml"))).symbolize_keys
|
||||||
if(custom_file)
|
if(custom_file_path)
|
||||||
custom_codes = YAML::load(File.open(custom_file)).symbolize_keys
|
custom_codes = YAML::load(File.open(custom_file_path)).symbolize_keys
|
||||||
custom_codes.keys.each do |key|
|
custom_codes.keys.each do |key|
|
||||||
if @@codes.keys.include?(key)
|
if @@codes.keys.include?(key)
|
||||||
custom_codes[key] =custom_codes[key].merge @@codes[key]
|
custom_codes[key] =custom_codes[key].merge @@codes[key]
|
||||||
|
@ -52,10 +52,10 @@ module FoodsoftArticleImport
|
||||||
}.freeze
|
}.freeze
|
||||||
|
|
||||||
# parses a bnn-file
|
# parses a bnn-file
|
||||||
def self.parse(file, custom_file=nil, **opts)
|
def self.parse(file, custom_file_path=nil, **opts)
|
||||||
encoding = opts[:encoding] || OPTIONS[:encoding]
|
encoding = opts[:encoding] || OPTIONS[:encoding]
|
||||||
col_sep = opts[:col_sep] || OPTIONS[:col_sep]
|
col_sep = opts[:col_sep] || OPTIONS[:col_sep]
|
||||||
self.load_codes(custom_file)
|
self.load_codes(custom_file_path)
|
||||||
CSV.foreach(file, {col_sep: col_sep, encoding: encoding, headers: true}).with_index(1) do |row, i|
|
CSV.foreach(file, {col_sep: col_sep, encoding: encoding, headers: true}).with_index(1) do |row, i|
|
||||||
# check if the line is empty
|
# check if the line is empty
|
||||||
unless row[0] == "" || row[0].nil?
|
unless row[0] == "" || row[0].nil?
|
||||||
|
|
|
@ -19,7 +19,7 @@ module FoodsoftArticleImport
|
||||||
encoding: "UTF-8" # @todo check this
|
encoding: "UTF-8" # @todo check this
|
||||||
}.freeze
|
}.freeze
|
||||||
|
|
||||||
def self.parse(file, custom_file=nil, **opts)
|
def self.parse(file, custom_file_path=nil, **opts)
|
||||||
global_manufacturer = nil
|
global_manufacturer = nil
|
||||||
|
|
||||||
file.set_encoding(opts[:encoding] || OPTIONS[:encoding])
|
file.set_encoding(opts[:encoding] || OPTIONS[:encoding])
|
||||||
|
|
|
@ -14,7 +14,7 @@ module FoodsoftArticleImport
|
||||||
OPTIONS = {}.freeze
|
OPTIONS = {}.freeze
|
||||||
|
|
||||||
# parses a string or file
|
# parses a string or file
|
||||||
def self.parse(file, custom_file=nil, opts={})
|
def self.parse(file, custom_file_path=nil, opts={})
|
||||||
doc = Nokogiri.XML(file, nil, nil,
|
doc = Nokogiri.XML(file, nil, nil,
|
||||||
Nokogiri::XML::ParseOptions::RECOVER +
|
Nokogiri::XML::ParseOptions::RECOVER +
|
||||||
Nokogiri::XML::ParseOptions::NONET +
|
Nokogiri::XML::ParseOptions::NONET +
|
||||||
|
|
|
@ -16,7 +16,7 @@ module FoodsoftArticleImport::Foodsoft
|
||||||
|
|
||||||
# Parses Foodsoft file
|
# Parses Foodsoft file
|
||||||
# the yielded article is a simple hash
|
# the yielded article is a simple hash
|
||||||
def self.parse(file, custom_file=nil, **opts)
|
def self.parse(file, custom_file_path=nil, **opts)
|
||||||
opts = OPTIONS.merge(opts)
|
opts = OPTIONS.merge(opts)
|
||||||
ss = FoodsoftArticleImport.open_spreadsheet(file, **opts)
|
ss = FoodsoftArticleImport.open_spreadsheet(file, **opts)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue