Class: GoogleDocsExporter

Inherits:
Object
  • Object
show all
Includes:
TrelloConfiguration
Defined in:
lib/trello_effort_tracker/google_docs_exporter.rb

Instance Method Summary collapse

Methods included from TrelloConfiguration

#authorization_params_from_config_file, #tracker_username

Constructor Details

#initialize(spreadsheet_name, worksheet_name) ⇒ GoogleDocsExporter

Returns a new instance of GoogleDocsExporter.



7
8
9
10
# File 'lib/trello_effort_tracker/google_docs_exporter.rb', line 7

def initialize(spreadsheet_name, worksheet_name)
  @spreadsheet_name = spreadsheet_name || "trello effort tracking"
  @worksheet_name   = worksheet_name || "tracking"
end

Instance Method Details

#exportObject



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/trello_effort_tracker/google_docs_exporter.rb', line 12

def export
  Trello.logger.info "Running exporter from db env '#{db_environment}' to google docs '#{@spreadsheet_name.color(:green)}##{@worksheet_name.color(:green)}'..."

  spreadsheet = google_docs_session.spreadsheet_by_title(@spreadsheet_name) || google_docs_session.create_spreadsheet(@spreadsheet_name)
  worksheet = spreadsheet.worksheet_by_title(@worksheet_name) || spreadsheet.add_worksheet(@worksheet_name)

  create_header(worksheet)
  index = 2 # skip the header

  cards = TrackedCard.all.reject(&:no_tracking?).sort_by(&:first_activity_date).reverse
  cards.each do |card|
    print ".".color(:green)
    worksheet[index, columns[:user_story_id]] = card.short_id
    worksheet[index, columns[:user_story_name]] = card.name
    worksheet[index, columns[:start_date]] = card.working_start_date
    worksheet[index, columns[:total_effort]] = card.total_effort
    worksheet[index, columns[:last_estimate_error]] = card.last_estimate_error
    card.estimates.each_with_index do |estimate, i|
      worksheet[index, columns[:estimate]+i] = estimate.amount
    end
    index += 1
  end

  saved = worksheet.save
  spreadsheet.human_url if saved
end