Sha256: e68fca88b3fe986bc7bb98250814adbf31b23b350abe1d987f491ea81110548c

Contents?: true

Size: 962 Bytes

Versions: 1

Compression:

Stored size: 962 Bytes

Contents

# frozen_string_literal: true

require_relative 'capybara_interactor'
require_relative 'command/fetch_last_punch_command'
require_relative 'command/fill_punch_command'
require_relative 'command/login_command'

module Balboa
  module Interactor
    class InteractorBuilder
      def self.create(*args)
        new(*args).create
      end

      def initialize(interactor, options)
        @interactor = interactor
        @options = options
      end
      
      def create
        last_punch = Balboa::Interactor::Command::FetchLastPunchCommand.new

        @interactor.tap do |itr|
          itr.add_command(:punch, fill_punch)
          itr.add_command(:last, last_punch)
          itr.add_command(:login, login)
        end
      end

      private

      def fill_punch
        Balboa::Interactor::Command::FillPunchCommand.new(@options)
      end

      def login
        Balboa::Interactor::Command::LoginCommand.new(@options)
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
balboa-0.1.2 lib/balboa/interactor/interactor_builder.rb