fgrehm/vagrant-notify

View on GitHub
lib/vagrant-notify/action/prepare_data.rb

Summary

Maintainability
A
0 mins
Test Coverage
require_relative '../data'

module Vagrant
  module Notify
    module Action
      class PrepareData
        def initialize(app, env)
          @app    = app
          @logger = Log4r::Logger.new("vagrant::notify::action::prepare_data")
        end

        def call(env)
          @env      = env
          @data_dir = @env[:machine].data_dir.join('vagrant-notify')

          ensure_dir_exists
          assign_data_object

          @app.call env
        end

        private

        def ensure_dir_exists
          return if @data_dir.directory?

          @logger.debug 'Creating data directory'
          @data_dir.mkdir
        end

        def assign_data_object
          return if @env[:notify_data]

          @logger.debug 'Assigning data object'
          @env[:notify_data] = Data.new(@data_dir)
        end
      end
    end
  end
end