Class: CardsCSVExporter

Inherits:
Object
  • Object
show all
Defined in:
lib/cards_csv_exporter.rb

Constant Summary collapse

TITLE =
["id","type","title","description","status","size","priority","functional sets","milestone","owner"]

Instance Method Summary collapse

Instance Method Details

#export(cards, file, include_headers = true) ⇒ Object

Raises:

  • (ArgumentError)


6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/cards_csv_exporter.rb', line 6

def export(cards, file, include_headers = true)
  raise ArgumentError.new("Invalid File. File should not be nil.") unless (! file.nil?())
  CSV::Writer.generate(file) do |csv|
    if (include_headers)
      csv<<(TITLE)
    end
    for card in cards
      status = card.status()
      status_name = nil
      status_name = status.name() unless (status.nil?())
      
      size = card.estimated_size()
      size_string = nil
      size_string = size.human_day_approximate() unless (size.nil?())
      
      priority = card.priority()
      priority_string = nil
      priority_string = priority.rank() unless (priority.nil?())
      
      milestone = card.target_milestone()
      milestone_name = nil
      milestone_name = milestone.name() unless (milestone.nil?())
    
      csv<<([card.id(),card.card_type().name(),card.title(),card.description().gsub($/," "),status_name,size_string,priority_string,card.functional_sets().collect {|functional_set| functional_set.name()}.join('|'),milestone_name,card.owner_name()])
    end
  end unless (cards.empty?())
end