class Lionel::Export::CardMap
Attributes
cards[R]
worksheet[R]
Public Class Methods
new(cards, worksheet)
click to toggle source
# File lib/lionel/export.rb, line 173 def initialize(cards, worksheet) @cards, @worksheet = cards, worksheet end
Public Instance Methods
each(&block)
click to toggle source
# File lib/lionel/export.rb, line 177 def each(&block) rows.each(&block) end
rows()
click to toggle source
# File lib/lionel/export.rb, line 181 def rows @rows ||= populate_rows end
Private Instance Methods
populate_rows()
click to toggle source
# File lib/lionel/export.rb, line 187 def populate_rows {}.tap do |card_rows| start_row = 2 # Currently assumes a header column rows = worksheet.size # Find existing rows for current cards (start_row..rows).each do |row| cell_id = worksheet["B",row] next unless cell_id.present? card = cards.find { |c| c.id == cell_id } next unless card.present? card_rows[row] = card end # Set available rows for new cards new_cards = cards - card_rows.values new_cards.each_with_index do |card, i| row = rows + i + 1 card_rows[row] = card end end end