Sha256: 0308499dcb0c63cc055a87beb7d2962d3f0e8ffb69fb7e9ea5c151e7ecf26b3c

Contents?: true

Size: 654 Bytes

Versions: 6

Compression:

Stored size: 654 Bytes

Contents

module Troo
  class BoardRetrieval
    class << self
      def all
        Troo::Board.all
      end

      def default
        new.retrieve
      end

      def retrieve(id = nil)
        new(id).retrieve
      end
    end

    def initialize(id = nil)
      @id = id
    end

    def retrieve
      return default unless id
      by_id || by_external_id || remote
    end

    private
    attr_reader :id

    def default
      Troo::Board.default
    end

    def by_id
      Troo::Board[id]
    end

    def by_external_id
      Troo::Board.first(external_board_id: id)
    end

    def remote
      External::Board.fetch(id).first
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
troo-0.0.7 lib/troo/models/board_retrieval.rb
troo-0.0.6 lib/troo/models/board_retrieval.rb
troo-0.0.5 lib/troo/models/board_retrieval.rb
troo-0.0.4 lib/troo/models/board_retrieval.rb
troo-0.0.3 lib/troo/models/board_retrieval.rb
troo-0.0.2 lib/troo/models/board_retrieval.rb