class Writefully::Workers::Handyman

Attributes

site[R]

Public Instance Methods

build() click to toggle source
# File lib/writefully/workers/handyman.rb, line 8
def build
  @site      = Site.where(id: message[:site_id]).first
  @hammer    = Tools::Hammer.new_link(message.merge({ domain: site.domain }))
  # create the repository
  repo = @hammer.future.forge

  # add sample content
  @initializer = Tools::Initializer.new_link(message.merge({ ssh_url: repo.value.ssh_url }))
  initialize_sample_content

  # add web hook
  hook = @hammer.future.add_hook_for(repo.value.name)
  complete_site_setup(repo.value, hook.value)
ensure
  @hammer.terminate
  @initializer.terminate
  close_db_connection!
end
synchronize() click to toggle source
# File lib/writefully/workers/handyman.rb, line 27
def synchronize
  @synchronizer = Tools::Synchronizer.new_link(message)
  synced = @synchronizer.future.sync
  Writefully.logger.info "Synchronized #{message[:site_slug]}" if synced.value
ensure
  @synchronizer.terminate
end