From cdaacbf5b92d6a6e35335b1578e9cf6a6098d087 Mon Sep 17 00:00:00 2001 From: viehlieb Date: Fri, 20 Jan 2023 15:11:23 +0100 Subject: [PATCH] readd type to pase function --- lib/foodsoft_article_import.rb | 8 +++++--- lib/foodsoft_article_import/bioromeo.rb | 2 +- lib/foodsoft_article_import/bnn.rb | 10 +++++----- lib/foodsoft_article_import/borkenstein.rb | 2 +- lib/foodsoft_article_import/dnb_xml.rb | 2 +- lib/foodsoft_article_import/foodsoft.rb | 2 +- 6 files changed, 14 insertions(+), 12 deletions(-) diff --git a/lib/foodsoft_article_import.rb b/lib/foodsoft_article_import.rb index 34db818..56f487b 100644 --- a/lib/foodsoft_article_import.rb +++ b/lib/foodsoft_article_import.rb @@ -34,14 +34,16 @@ module FoodsoftArticleImport # @param file [File, Tempfile] # @option opts [String] type file format (required) (see {.file_formats}) # @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 + type = opts[:type] || 'bnn' + puts type parser = file_formats[type] if block_given? - parser.parse(file, custom_file, **opts, &blk) + parser.parse(file, custom_file_path, **opts, &blk) else data = [] - parser.parse(file, custom_file, **opts) { |a| data << a } + parser.parse(file, custom_file_path, **opts) { |a| data << a } data end end diff --git a/lib/foodsoft_article_import/bioromeo.rb b/lib/foodsoft_article_import/bioromeo.rb index ddad5d2..177539c 100644 --- a/lib/foodsoft_article_import/bioromeo.rb +++ b/lib/foodsoft_article_import/bioromeo.rb @@ -27,7 +27,7 @@ module FoodsoftArticleImport RES_PARSE_UNIT_LIST.map {|r| /#{r}\s*$/} + 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) ss = FoodsoftArticleImport.open_spreadsheet(file, **opts) diff --git a/lib/foodsoft_article_import/bnn.rb b/lib/foodsoft_article_import/bnn.rb index d848674..8c45c45 100644 --- a/lib/foodsoft_article_import/bnn.rb +++ b/lib/foodsoft_article_import/bnn.rb @@ -9,13 +9,13 @@ module FoodsoftArticleImport @@codes = Hash.new @@midgard = Hash.new # 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__ dir = File.join @gem_lib, 'foodsoft_article_import' begin @@codes = YAML::load(File.open(File.join(dir,"bnn_codes.yml"))).symbolize_keys - if(custom_file) - custom_codes = YAML::load(File.open(custom_file)).symbolize_keys + if(custom_file_path) + custom_codes = YAML::load(File.open(custom_file_path)).symbolize_keys custom_codes.keys.each do |key| if @@codes.keys.include?(key) custom_codes[key] =custom_codes[key].merge @@codes[key] @@ -52,10 +52,10 @@ module FoodsoftArticleImport }.freeze # 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] 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| # check if the line is empty unless row[0] == "" || row[0].nil? diff --git a/lib/foodsoft_article_import/borkenstein.rb b/lib/foodsoft_article_import/borkenstein.rb index 5c30de9..837c700 100644 --- a/lib/foodsoft_article_import/borkenstein.rb +++ b/lib/foodsoft_article_import/borkenstein.rb @@ -19,7 +19,7 @@ module FoodsoftArticleImport encoding: "UTF-8" # @todo check this }.freeze - def self.parse(file, custom_file=nil, **opts) + def self.parse(file, custom_file_path=nil, **opts) global_manufacturer = nil file.set_encoding(opts[:encoding] || OPTIONS[:encoding]) diff --git a/lib/foodsoft_article_import/dnb_xml.rb b/lib/foodsoft_article_import/dnb_xml.rb index 853044a..76ea1c0 100644 --- a/lib/foodsoft_article_import/dnb_xml.rb +++ b/lib/foodsoft_article_import/dnb_xml.rb @@ -14,7 +14,7 @@ module FoodsoftArticleImport OPTIONS = {}.freeze # 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, Nokogiri::XML::ParseOptions::RECOVER + Nokogiri::XML::ParseOptions::NONET + diff --git a/lib/foodsoft_article_import/foodsoft.rb b/lib/foodsoft_article_import/foodsoft.rb index a4c099c..f40f9be 100644 --- a/lib/foodsoft_article_import/foodsoft.rb +++ b/lib/foodsoft_article_import/foodsoft.rb @@ -16,7 +16,7 @@ module FoodsoftArticleImport::Foodsoft # Parses Foodsoft file # 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) ss = FoodsoftArticleImport.open_spreadsheet(file, **opts)