Sha256: 6c74b7fcf4948e70c3ae6f865c1612edaaf2031c58c47000287529ff96aaf057

Contents?: true

Size: 1.06 KB

Versions: 1

Compression:

Stored size: 1.06 KB

Contents

module Troo
  module CLI
    class Default < ThorFixes
      package_name "default"

      desc "board <id>", "Set the board <id> to default."
      def board(id)
        set_default(id, :board)
      end

      desc "card <id>", "Set the card <id> to default."
      def card(id)
        set_default(id, :card)
      end

      desc "list <id>", "Set the list <id> to default."
      def list(id)
        set_default(id, :list)
      end

      private

      def set_default(id, type)
        @id, @type = id, type
        return success(resource.name) if SetDefault.for(resource)
        not_found
      end

      def resource
        @resource ||= case @type
        when :board then Troo::BoardRetrieval.retrieve(@id)
        when :list  then Troo::ListRetrieval.retrieve(@id)
        when :card  then Troo::CardRetrieval.retrieve(@id)
        end
      end

      def success(resource_name = "")
        say "'#{resource_name}' set as default #{@type.to_s.downcase}."
      end

      def not_found
        say "#{@type.to_s.capitalize} cannot be found."
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
troo-0.0.4 lib/troo/cli/default_cli.rb