Class: VagrantPlugins::TimeZone::Action::SetTimeZone

Inherits:
Object
  • Object
show all
Defined in:
lib/vagrant-timezone/action/set_timezone.rb

Overview

Vagrant middleware action that sets the specified time zone

Instance Method Summary collapse

Constructor Details

#initialize(app, _env) ⇒ SetTimeZone

Returns a new instance of SetTimeZone.



8
9
10
# File 'lib/vagrant-timezone/action/set_timezone.rb', line 8

def initialize(app, _env)
  @app = app
end

Instance Method Details

#call(env) ⇒ Object

rubocop:disable Metrics/AbcSize



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/vagrant-timezone/action/set_timezone.rb', line 12

def call(env) # rubocop:disable Metrics/AbcSize
  @app.call(env)

  machine = env[:machine]
  timezone = machine.config.timezone.value

  if timezone.nil?
    logger.info I18n.t('vagrant_timezone.not_enabled')
  elsif machine.guest.capability?(:change_timezone)
    env[:ui].info I18n.t('vagrant_timezone.configuring', zone: timezone)
    machine.guest.capability(:change_timezone, timezone)
  else
    logger.info I18n.t('vagrant_timezone.not_supported')
  end
end

#loggerLog4r::Logger

Returns:

  • (Log4r::Logger)


29
30
31
# File 'lib/vagrant-timezone/action/set_timezone.rb', line 29

def logger
  TimeZone.logger
end