class GodOfWar::Payloads

All war internal operations

Constants

Payload

Attributes

info[R]

@!attribute [r] [String] payloads_home

full path of the payloads home

@!attribute [r] [Hash] payloads_db

parsed content of 'payloads_info.json' which full information about available payloads

@!attribute [r] [Array] payloads

array of available payloads

@!attribute [r] [Hash] info

of information of the current payload
payload[RW]

@!attribute [rw] payload [String]

the current payload name
payloads[R]

@!attribute [r] [String] payloads_home

full path of the payloads home

@!attribute [r] [Hash] payloads_db

parsed content of 'payloads_info.json' which full information about available payloads

@!attribute [r] [Array] payloads

array of available payloads

@!attribute [r] [Hash] info

of information of the current payload
payloads_db[R]

@!attribute [r] [String] payloads_home

full path of the payloads home

@!attribute [r] [Hash] payloads_db

parsed content of 'payloads_info.json' which full information about available payloads

@!attribute [r] [Array] payloads

array of available payloads

@!attribute [r] [Hash] info

of information of the current payload
payloads_home[R]

@!attribute [r] [String] payloads_home

full path of the payloads home

@!attribute [r] [Hash] payloads_db

parsed content of 'payloads_info.json' which full information about available payloads

@!attribute [r] [Array] payloads

array of available payloads

@!attribute [r] [Hash] info

of information of the current payload

Public Class Methods

new() click to toggle source
# File lib/godofwar/payloads.rb, line 26
def initialize
  @payloads_home =
      File.absolute_path(
          File.join('..', '..', '..', 'payloads'), __FILE__
      )
  @payloads_db   =
      JSON.parse(
          File.read(
              File.absolute_path(
                  File.join(@payloads_home, 'payloads_info.json')
              )
          )
      )
end

Public Instance Methods

find_payload(payload) click to toggle source

Finds the payload from @payloads_db

@param [String] payload

payload name

@return [Payload] object

# File lib/godofwar/payloads.rb, line 63
def find_payload(payload)
  payloads_parse.find{|pay| pay.name == payload}
end
list_tree() click to toggle source

list_tree List all available payloads using folder name conversion

@return [Array]

# File lib/godofwar/payloads.rb, line 72
def list_tree
  payloads_parse.map do |payload|
    if payload.conf.empty?
      payload.conf = 'No Settings required!'
    else
      payload.conf
    end

    "├── " + "#{payload.name}\n".bold            +
    "│   └── Information:\n"                     +
    "│       ├── Description: #{payload.desc}\n" +
    "│       ├── OS:          #{payload.os}\n"   +
    "│       ├── Settings:    #{payload.conf}\n" +
    "│       ├── Usage:       #{payload.url}\n"  +
    "│       ├── References:  #{payload.ref}\n"  +
    "│       └── Local Path:  #{payload.path}"
  end
end
payloads_parse() click to toggle source

payloads_parse lists all payloads as [Payload] objects

@return [Array<Payload>]

# File lib/godofwar/payloads.rb, line 44
def payloads_parse
  @payloads_db.map do |payload, info|
    name = payload
    desc = info["desc"]
    os   = info["os"]
    conf = info["conf"]
    url  = info["url"]
    ref  = info["ref"]
    path = File.absolute_path(File.join(@payloads_home, payload))
    Payload.new(name, desc, os, conf, url, ref, path)
  end
end