class Paperize::Worksheet
Attributes
attributes[R]
labels[R]
rows[R]
title[R]
Public Class Methods
find(options={})
click to toggle source
# File lib/paperize/worksheet.rb, line 5 def self.find(options={}) spreadsheet = Paperize::Spreadsheet.find(options[:spreadsheet_key]) spreadsheet.worksheet_by_title(options[:worksheet_title]) end
new(title, labels, rows)
click to toggle source
# File lib/paperize/worksheet.rb, line 11 def initialize(title, labels, rows) raise_on_duplicates(labels) @title = title @labels = labels @attributes = @labels.map do |label| unless label.nil? label.downcase.gsub(' ', '_').gsub('/', '_').to_sym end end @rows = rows.map do |row| card = OpenStruct.new @attributes.zip(row).each do |attribute_value_pair| attribute = attribute_value_pair[0] unless attribute.nil? or attribute.empty? card.send("#{attribute}=".to_sym, attribute_value_pair[1]) end end card end end
Private Class Methods
from_google_worksheet(google_worksheet)
click to toggle source
# File lib/paperize/worksheet.rb, line 60 def self.from_google_worksheet(google_worksheet) Worksheet.new(google_worksheet.title, google_worksheet.rows[0], google_worksheet.rows[1..google_worksheet.num_rows]) end
Public Instance Methods
as_json(option=nil)
click to toggle source
# File lib/paperize/worksheet.rb, line 40 def as_json(option=nil) { title: @title, columns: @labels } end
cards()
click to toggle source
# File lib/paperize/worksheet.rb, line 36 def cards rows end
Private Instance Methods
raise_on_duplicates(labels)
click to toggle source
# File lib/paperize/worksheet.rb, line 48 def raise_on_duplicates(labels) duplicates = labels.map do |label| label if labels.index(label) != labels.rindex(label) end.compact.uniq unless duplicates.empty? duplicate_sentence = "\"#{duplicates.join('", "')}\"" message = "Found duplicate columns: #{duplicate_sentence}" raise Paperize::DuplicateColumnLabelException.new(message) end end