class Selfiegram

Attributes

action[RW]
background_image_path[RW]
image[RW]
magic[RW]
output_path[RW]
selfiegram_path[RW]
user[RW]
verbose[RW]

Public Class Methods

add_user(options={}) click to toggle source
# File lib/selfiegram.rb, line 24
def add_user(options={})
  new(options).add_user
end
new(options={}) click to toggle source
# File lib/selfiegram.rb, line 29
def initialize(options={})
  options.each { |key, value| send("#{key}=", value) }
  puts options if verbose
end
snap(options={}) click to toggle source
# File lib/selfiegram.rb, line 20
def snap(options={})
  new(options).snap
end

Public Instance Methods

add_user() click to toggle source
# File lib/selfiegram.rb, line 41
def add_user
  mkdir(selfiegram_dir)
  cp(image, selfiegram_path)
end
snap() click to toggle source
# File lib/selfiegram.rb, line 34
def snap
  mkdir(background_image_dir)
  download_background_image
  overlay_selfie
  save
end

Private Instance Methods

background_image() click to toggle source
# File lib/selfiegram.rb, line 55
def background_image
  @background_image ||= Magick::Image.read(background_image_path).first
end
background_image_dir() click to toggle source
# File lib/selfiegram.rb, line 81
def background_image_dir
  parent_dir(background_image_path)
end
background_image_downloader() click to toggle source
# File lib/selfiegram.rb, line 63
def background_image_downloader
  @background_image_downloader ||= BackgroundImages::Downloader.new(magic, background_image_path)
end
cp(origin, destination) click to toggle source
# File lib/selfiegram.rb, line 85
def cp(origin, destination)
  FileUtils.cp(origin, destination)
end
download_background_image() click to toggle source
# File lib/selfiegram.rb, line 67
def download_background_image
  background_image_downloader.download.standardize(selfie_image).clean
end
mkdir(dir) click to toggle source
# File lib/selfiegram.rb, line 89
def mkdir(dir)
  FileUtils.mkdir_p(dir)
end
overlay_selfie() click to toggle source
# File lib/selfiegram.rb, line 51
def overlay_selfie
  background_image.composite!(selfie_image, 0, 0, Magick::OverCompositeOp)
end
parent_dir(path) click to toggle source
# File lib/selfiegram.rb, line 71
def parent_dir(path)
  components = path.split("/")
  components.pop
  components.join("/")
end
save() click to toggle source
# File lib/selfiegram.rb, line 47
def save
  background_image.write(output_path)
end
selfie_image() click to toggle source
# File lib/selfiegram.rb, line 59
def selfie_image
  @selfie_image ||= Magick::Image.read(selfiegram_path).first
end
selfiegram_dir() click to toggle source
# File lib/selfiegram.rb, line 77
def selfiegram_dir
  parent_dir(selfiegram_path)
end