class Lolcommits::Plugin::Uploldz

Attributes

endpoint[RW]

Public Class Methods

new(runner: nil, config: nil, name: nil) click to toggle source

Initialize plugin with runner, config and set all configurable options.

Calls superclass method
# File lib/lolcommits/plugin/uploldz.rb, line 17
def initialize(runner: nil, config: nil, name: nil)
  super
  options.concat(plugin_options)
end

Public Instance Methods

run_capture_ready() click to toggle source

Post-capture hook, runs after lolcommits captures a snapshot. Uploads # the lolcommit to the remote server with an optional Authorization header and the following request params.

`file` - captured lolcommit file `message` - the commit message `repo` - repository name e.g. lolcommits/lolcommits `sha` - commit SHA `key` - key (string) from plugin configuration (optional) `author_name` - the commit author name `author_email` - the commit author email address

@return [RestClient::Response] response object from POST request @return [Nil] if any error occurs

# File lib/lolcommits/plugin/uploldz.rb, line 50
def run_capture_ready
  debug "Posting capture to #{configuration[:endpoint]}"
  RestClient.post(
    configuration[:endpoint],
    {
      file: File.new(runner.lolcommit_path),
      message: runner.message,
      repo: runner.vcs_info.repo,
      author_name: runner.vcs_info.author_name,
      author_email: runner.vcs_info.author_email,
      sha: runner.sha,
      key: configuration[:optional_key]
    },
    Authorization: authorization_header
  )
rescue => e
  log_error(e, "ERROR: RestClient POST FAILED #{e.class} - #{e.message}")
end
valid_configuration?() click to toggle source

Returns true/false indicating if the plugin has been correctly configured. The `endpoint` option must be set with a URL beginning with http(s)://

@return [Boolean] true/false indicating if plugin is correctly configured

# File lib/lolcommits/plugin/uploldz.rb, line 30
def valid_configuration?
  !!(configuration[:endpoint] =~ /^http(s)?:\/\//)
end

Private Instance Methods

authorization_header() click to toggle source

Builds an HTTP basic auth header from plugin options. If both the username and password options are empty nil is returned.

@return [String] the HTTP basic auth header string (Base64 encoded) @return [Nil] if no username or password option set

# File lib/lolcommits/plugin/uploldz.rb, line 93
def authorization_header
  user     = configuration[:optional_http_auth_username]
  password = configuration[:optional_http_auth_password]
  return unless user || password

  'Basic ' + Base64.encode64("#{user}:#{password}").chomp
end
plugin_options() click to toggle source

Returns all configuration options available for this plugin.

@return [Array] the option names

# File lib/lolcommits/plugin/uploldz.rb, line 77
def plugin_options
  [
    :endpoint,
    :optional_key,
    :optional_http_auth_username,
    :optional_http_auth_password
  ]
end