class Nutrella::TaskBoard

Knows how to use the Trello API to create and lookup task boards.

Public Class Methods

new(configuration) click to toggle source
# File lib/nutrella/task_board.rb, line 10
def initialize(configuration)
  Trello.configure do |trello_client|
    trello_client.consumer_key = configuration.fetch(:key)
    trello_client.consumer_secret = configuration.fetch(:secret)
    trello_client.oauth_token = configuration.fetch(:token)
    trello_client.oauth_token_secret = configuration.fetch(:secret)
  end

  @organization = configuration.fetch(:organization)
end

Public Instance Methods

lookup_or_create(board_name) click to toggle source
# File lib/nutrella/task_board.rb, line 21
def lookup_or_create(board_name)
  lookup(board_name) || create(board_name)
end

Private Instance Methods

create(board_name) click to toggle source
# File lib/nutrella/task_board.rb, line 35
def create(board_name)
  create_board(board_name).tap { |board| make_team_visible(board) }
end
create_board(board_name) click to toggle source
# File lib/nutrella/task_board.rb, line 39
def create_board(board_name)
  Trello::Board.create(name: board_name, organization_id: @organization)
end
lookup(board_name) click to toggle source
# File lib/nutrella/task_board.rb, line 27
def lookup(board_name)
  matching_boards(board_name).find { |board| board.name == board_name }
end
make_team_visible(board) click to toggle source
# File lib/nutrella/task_board.rb, line 43
def make_team_visible(board)
  Trello.client.put("/boards/#{board.id}", "prefs/permissionLevel=org")
end
matching_boards(board_name) click to toggle source
# File lib/nutrella/task_board.rb, line 31
def matching_boards(board_name)
  Trello::Action.search(board_name, modelTypes: "boards", board_fields: "all").fetch("boards", [])
end