class Usmu::S3

Usmu::S3 is the main plugin class for this plugin. It contains entry hooks as required to implement the S3 deployment interface.

Constants

VERSION

The current version string for the gem

Attributes

log[R]
ui[RW]

Public Class Methods

new() click to toggle source
# File lib/usmu/s3.rb, line 16
def initialize
  @log = Logging.logger[self]
  @log.debug("Initializing usmu-s3 v#{VERSION}")
end

Public Instance Methods

command_deploy(args, options) click to toggle source
# File lib/usmu/s3.rb, line 33
def command_deploy(args, options)
  raise 'This command does not take arguments' unless args.empty?
  raise 'Invalid options' unless options.inspect.start_with? '<Commander::Command::Options '

  configuration = @ui.configuration
  s3_configuration = S3Configuration.new(configuration['plugin', 's3', default: {}])
  @log.info('Gathering information...')
  diff = Deployment::DirectoryDiff.new(configuration, RemoteFiles.new(s3_configuration))
  @log.info('Uploading files.')
  uploader = Uploader.new(configuration, s3_configuration)
  uploader.push(diff.get_diffs)
  @log.info('Website updated successfully.')
end
commands(ui, c) click to toggle source

@see Usmu::Plugin::CoreHooks#commands

# File lib/usmu/s3.rb, line 22
def commands(ui, c)
  @log.debug('Adding commands from usmu-s3.')
  @ui = ui

  c.command(:'s3 deploy') do |command|
    command.syntax = 'usmu s3 deploy'
    command.description = 'Deploys your website to S3'
    command.action &method(:command_deploy)
  end
end