class CodePicnic::Console

Attributes

api_url[RW]
container_name[RW]
container_type[RW]
created_at[RW]
custom_image[RW]
embed_url[RW]
id[RW]
is_headless[RW]
name[RW]
terminal_url[RW]
url[RW]

Public Class Methods

new(opts={}) click to toggle source
# File lib/codepicnic/console.rb, line 11
def initialize(opts={})
  @id               = opts.delete("id")             || opts.delete(:id)
  @name             = opts.delete("name")           || opts.delete(:name)
  @container_name   = opts.delete("container_name") || opts.delete(:container_name)
  @container_type   = opts.delete("container_type") || opts.delete(:container_type)
  @custom_image     = opts.delete("custom_image")   || opts.delete(:custom_image)
  @created_at       = opts.delete("created_at")     || opts.delete(:created_at)
  @container_size   = opts.delete("container_size") || opts.delete(:container_size)
  @title            = @name || opts.delete("title") || opts.delete(:title)
  @hostname         = opts.delete("hostname")       || opts.delete(:hostname)
  @is_headless      = opts.delete("is_headless")    || opts.delete(:is_headless)
  @url              = opts.delete("url")            || opts.delete(:url)
  @embed_url        = opts.delete("embed_url")      || opts.delete(:embed_url)
  @permalink        = opts.delete("permalink")      || opts.delete(:permalink)
  @terminal_url     = opts.delete("terminal_url")   || opts.delete(:terminal_url)
end

Private Class Methods

all() click to toggle source
# File lib/codepicnic/console.rb, line 90
def all
  get(url_to)["consoles"].map{|data| Console.new(data) }
end
batch_exec(commands = [], container_names = []) click to toggle source
# File lib/codepicnic/console.rb, line 98
def batch_exec(commands = [], container_names = [])
  post url_to(nil, "exec"), {commands: commands, container_names: container_names }
end
find(container_name) click to toggle source
# File lib/codepicnic/console.rb, line 94
def find(container_name)
  Console.new(get(url_to(container_name)))
end

Public Instance Methods

exec(commands = []) click to toggle source
# File lib/codepicnic/console.rb, line 65
def exec(commands = [])
  post url_to(@container_name, "exec"), {commands: commands}
end
file_content(path = "") click to toggle source
# File lib/codepicnic/console.rb, line 61
def file_content(path = "")
  get url_to(@container_name, path)
end
files() click to toggle source
# File lib/codepicnic/console.rb, line 57
def files
  get url_to(@container_name, "files")
end
find() click to toggle source
# File lib/codepicnic/console.rb, line 28
def find
  get url_to(@container_name, "show")
end
forks() click to toggle source
# File lib/codepicnic/console.rb, line 53
def forks
  get url_to(@container_name, "forks")
end
restart() click to toggle source
# File lib/codepicnic/console.rb, line 49
def restart
  post url_to(@container_name, "restart")
end
save() click to toggle source
# File lib/codepicnic/console.rb, line 32
def save
  response = post(url_to, {console: cleaned_params})
  self.container_name = response["container_name"]
  self.url = response["url"]
  response
end
start() click to toggle source
# File lib/codepicnic/console.rb, line 39
def start
  result  = post(url_to(@container_name, "start"))
  @url    = result["url"]
  result
end
stop() click to toggle source
# File lib/codepicnic/console.rb, line 45
def stop
  post url_to(@container_name, "stop")
end
upload_file(file = nil, path = nil) click to toggle source
# File lib/codepicnic/console.rb, line 69
def upload_file(file = nil, path = nil)
  path = "/app/#{file.path}" unless path
  post_form url_to(@container_name, "upload_file"), {path: path, file: file}
end

Private Instance Methods

cleaned_params() click to toggle source
# File lib/codepicnic/console.rb, line 80
def cleaned_params
  params = {container_type: @container_type, custom_image: @custom_image, container_size: @container_size, title: @title, hostname: @hostname}
  params.delete_if { |key, value| value.nil? || value == "" }
  params
end