Class: Lolcommits::Plugin::Uploldz

Inherits:
Base
  • Object
show all
Defined in:
lib/lolcommits/plugin/uploldz.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(runner: nil, config: nil, name: nil) ⇒ Uploldz

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



17
18
19
20
# File 'lib/lolcommits/plugin/uploldz.rb', line 17

def initialize(runner: nil, config: nil, name: nil)
  super
  options.concat(plugin_options)
end

Instance Attribute Details

#endpointObject

Returns the value of attribute endpoint.



11
12
13
# File 'lib/lolcommits/plugin/uploldz.rb', line 11

def endpoint
  @endpoint
end

Instance Method Details

#run_capture_readyRestClient::Response, Nil

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

Returns:

  • (RestClient::Response)

    response object from POST request

  • (Nil)

    if any error occurs



50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# 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?Boolean

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

configured

Returns:

  • (Boolean)

    true/false indicating if plugin is correctly



30
31
32
# File 'lib/lolcommits/plugin/uploldz.rb', line 30

def valid_configuration?
  !!(configuration[:endpoint] =~ /^http(s)?:\/\//)
end