class FigNewton::App

Attributes

dir[RW]
name[RW]
repo[RW]

Public Class Methods

new(name, config) click to toggle source
# File lib/fig-newton/app.rb, line 3
def initialize(name, config)
  @name = name
  @repo = config["repo"]
  @dir = config["dir"] || dir_from_repo
end

Public Instance Methods

clean(parent_directory = ".") click to toggle source
# File lib/fig-newton/app.rb, line 23
def clean(parent_directory = ".")
  source_directory = full_dir(parent_directory)

  down(parent_directory)

  puts "-- Cleaning killed containers in '#{source_directory}'"
  `cd #{source_directory} && fig rm --force`
end
clone(parent_directory = ".") click to toggle source
# File lib/fig-newton/app.rb, line 9
def clone(parent_directory = ".")
  clone_directory = full_dir(parent_directory)

  puts "-- Cloning #{full_repo} to '#{clone_directory}'"
  `git clone #{full_repo} #{clone_directory} &>/dev/null`
end
down(parent_directory) click to toggle source
# File lib/fig-newton/app.rb, line 39
def down(parent_directory)
  source_directory = full_dir(parent_directory)

  puts "-- Bringing down #{@name} in '#{source_directory}'"
  `cd #{source_directory} && fig kill`
end
pull(parent_directory = ".") click to toggle source
# File lib/fig-newton/app.rb, line 16
def pull(parent_directory = ".")
  source_directory = full_dir(parent_directory)

  puts "-- Pulling latest upstream in '#{source_directory}'"
  `cd #{source_directory} && git pull`
end
up(parent_directory) click to toggle source
# File lib/fig-newton/app.rb, line 32
def up(parent_directory)
  source_directory = full_dir(parent_directory)

  puts "-- Bringing up #{@name} in '#{source_directory}'"
  `cd #{source_directory} && fig up -d`
end

Private Instance Methods

dir_from_repo() click to toggle source
# File lib/fig-newton/app.rb, line 63
def dir_from_repo
  repo.split("/").last
end
full_dir(parent) click to toggle source
# File lib/fig-newton/app.rb, line 59
def full_dir(parent)
  File.join(parent, @dir)
end
full_repo() click to toggle source
# File lib/fig-newton/app.rb, line 50
def full_repo
  @full_repo ||= case
  when @repo.match(/\w+:\/\//)
    repo
  else
    "https://github.com/#{@repo}"
  end
end