class TimeTrello::TrelloDriver

Public: Driver responsible to convert data gathered from Trello to an internal representation.

Attributes

board_id[RW]
prefix[RW]

Public Class Methods

new(board_id, prefix) click to toggle source
# File lib/time_trello/trello_driver.rb, line 22
def initialize(board_id, prefix)
  @board_id = board_id
  @prefix = prefix
  @activities = nil
  @board = nil
  @members = nil
  @parser = nil
end

Public Instance Methods

activities() click to toggle source

Public: Getter. Gets all activities for a given board.

# File lib/time_trello/trello_driver.rb, line 75
def activities
  return @activities if !@activities.nil? && @activities.length > 0
  
  @activities = []
  self.board.cards.each do |card|
    card.actions.each do |action|
      member = self.members.select { |member| member.id == action.member_creator_id }.first
      action_record = {action: action, member: member}
      activity = self.parser.parse(action_record)
      @activities.push(activity) unless activity.nil?
    end
  end
  
  @activities
end
board() click to toggle source

Public: Getter. Gets a board, based on a board id.

# File lib/time_trello/trello_driver.rb, line 39
def board
  retried = false

  begin
    @board = Trello::Board.find(@board_id) if @board.nil? 
  rescue
    if !retried
      retried = true
      retry
    else
      raise "Failed to connect to Trello API"
    end 
  end

  @board
end
members() click to toggle source

Public: Getter. Gets all members subscribed to the board under analysis

# File lib/time_trello/trello_driver.rb, line 57
def members
  retried = false

  begin
    @members = self.board.members if @members.nil?
  rescue
    if !retried
      retried = true
      retry
    else
      raise "Failed to connect to Trello API"
    end
  end
  
  @members
end
parser() click to toggle source

Public: Getter. Returns a record parser instance

# File lib/time_trello/trello_driver.rb, line 32
def parser
  @parser = Parser.new(@prefix) if @parser.nil?

  @parser
end
reset_cache() click to toggle source

Public: Resets the driver caches

# File lib/time_trello/trello_driver.rb, line 92
def reset_cache
  @activities = nil
  @board = nil
  @members = nil
end