Created
December 12, 2014 14:43
-
-
Save ktrinca/0694a20379ce84788e69 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class CategoryXls | |
require 'spreadsheet' | |
def self.read file_path | |
Spreadsheet.open(file_path) do |book| | |
book.worksheets.each do |ws| | |
0.upto ws.last_row_index do |index| | |
row = ws.row(index) | |
yield ws, row | |
end | |
end | |
end | |
end | |
def self.import(file) | |
raise ArgumentError, 'missing required argument file' unless file.present? | |
read(file) do |sheet, row| | |
load_category(row[0].to_s) | |
load_subcategory(row[1].to_s, @category.id) | |
end | |
end | |
def self.load_category(row_1) | |
name_category = row_1 | |
unless name_category.empty? | |
@category = ItemCategory.find_or_create_by(:name => name_category) | |
puts "Categories: #{@category.name}" | |
end | |
end | |
def self.load_subcategory(row_2, id_category) | |
name_subcategory = row_2 | |
unless name_subcategory.empty? | |
@item_category_as_category = ItemCategory.categories.where( | |
:name => name_subcategory).first | |
if !@item_category_as_category.nil? | |
subcategories = @item_category_as_category.update_attributes( | |
item_category_id: id_category) | |
else | |
subcategories = ItemCategory. | |
create_subcategory!(name_subcategory, id_category) | |
end | |
end | |
end | |
end | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment