Sha256: 7a0e993e11903a0190e970f3487c61258f3c24d2a9eca7777c5fcb283a4b51d3

Contents?: true

Size: 1.69 KB

Versions: 1

Compression:

Stored size: 1.69 KB

Contents

require 'thor'

module MilkMaid
  class CLI < Thor
    desc 'monitor_batch', "Start Monitoring a batch"
    long_desc <<-DESC

    `monitor_batch BATCH_NAME` will create a batch called BATCH_NAME
    and begin monitoring it for 30 minutes

    DESC
    option :batch_name, :type => :string, :required => :true, :aliases => "-b"
    option :temperature, :type => :numeric, :required => :false, :default => 30, :aliases => '-t'
    option :duration, :type => :numeric, :required => false, :default => 30, :aliases => '-d'
    option :logger, :type => :string, :required => false, :default => 'Console', :aliases => '-l'
    option :sensor, :type => :boolean, :required => false, :default => true, :aliases => '-s'
    def monitor_batch
      batch_name = options[:batch_name]
      temperature = options[:temperature].to_i
      duration = options[:duration].to_i
      logger_type = options[:logger]
      sensor_type = options[:sensor]

      sensor = get_sensor(sensor_type)
      notifier = get_logger(logger_type)
      batch = ::MilkMaid::Batch.new(name: batch_name, temperature: temperature, duration: duration, notifier: notifier, sensor: sensor)

      batch.start
    rescue ::MilkMaid::SensorException => e
      puts e.message
    end

    default_task :monitor_batch

    no_commands do
      def get_sensor(sensor_type)
        sensor_type ? ::MilkMaid::TemperatureSensor.new : ::MilkMaid::MockTemperatureSensor.new(options[:temperature].to_i - 20, options[:temperature].to_i + 30)
      end

      def get_logger(logger_type)
        case logger_type.upcase
        when 'CONSOLE'
          ::MilkMaid::ConsoleNotifier.new
        when 'WEB'
          ::MilkMaid::ParseNotifier.new
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
milk_maid-0.2.7 lib/milk_maid/cli.rb