Sha256: f5e4257668e751bfa5f4455afb2a402ff98323503900bf42a1c26e51ef6e0528

Contents?: true

Size: 717 Bytes

Versions: 1

Compression:

Stored size: 717 Bytes

Contents

module Troo
  class CreateList
    class << self
      def for(board, name)
        new(board, name).perform
      end
    end

    def initialize(board, name)
      @board = board
      @name  = name
    end

    def perform
      create_local
    end

    private

    attr_reader :board, :name

    def create_local
      return Persistence::List.for(create_remote) if create_remote
      false
    end

    def create_remote
      @list ||= Trello::List.create(attributes)
    rescue Trello::InvalidAccessToken
      raise Troo::InvalidAccessToken
    rescue Trello::Error
      false
    end

    def attributes
      {
        name:     name,
        board_id: board.external_board_id
      }
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
troo-0.0.8 lib/troo/actions/create_list.rb