Sha256: 828407fdbfe991ffa76a08cd9e4613aeff0c6b6ae4544bc326b3949fc812ee8f

Contents?: true

Size: 984 Bytes

Versions: 6

Compression:

Stored size: 984 Bytes

Contents

require 'sysexits'
require 'usaidwat/client'
require 'usaidwat/pager'

require 'timecop' if ENV['USAIDWAT_ENV'] == 'cucumber'

module USaidWat
  module Application
    class Command
      include Pager
      include Sysexits

      attr_reader :client

      class << self
        def subclasses
          @subclasses ||= []
        end

        def inherited(base)
          subclasses << base
          super
        end
      end

      def initialize(prog)
        @client = cucumber? ? USaidWat::Client::TestRedditor : USaidWat::Client::Redditor
        Timecop.freeze(Time.parse(ENV['USAIDWAT_CURRENT_TIME'])) if cucumber_time?
      end

      def quit(message, code=:ok)
        stream = code == :ok ? $stdout : $stderr
        stream.puts message
        exit code
      end

      protected

      def cucumber?
        ENV['USAIDWAT_ENV'] == 'cucumber'
      end

      def cucumber_time?
        cucumber? && !ENV['USAIDWAT_CURRENT_TIME'].nil?
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
usaidwat-1.6.0 lib/usaidwat/command.rb
usaidwat-1.5.1 lib/usaidwat/command.rb
usaidwat-1.5.0 lib/usaidwat/command.rb
usaidwat-1.4.5 lib/usaidwat/command.rb
usaidwat-1.4.4 lib/usaidwat/command.rb
usaidwat-1.4.3 lib/usaidwat/command.rb