Sha256: 0493be5d4d94601610155dae55c7552973a83f6edac8b76eecb45bbf563f9d9a

Contents?: true

Size: 1.6 KB

Versions: 2

Compression:

Stored size: 1.6 KB

Contents

require_relative 'base_logger'

module Locomotive::Wagon

  class PushLogger < BaseLogger

    def initialize
      subscribe 'site_created' do |event|
        log "We created your site with the following handle: #{event.payload[:site].handle}", { mode: :bold }
      end

      subscribe :start do |event|
        log "\n"
        log "Pushing #{event.payload[:name].camelcase}", { color: :black, background: :white }
      end

      subscribe :persist do |event|
        log "persisting #{event.payload[:label]}", :white, 2, true
      end

      subscribe :skip_persisting do |event|
        log ' [' + 'skip'.colorize(:yellow) + ']'
      end

      subscribe :persist_with_success do |event|
        log ' [' + 'done'.colorize(:green) + ']'
      end

      subscribe :persist_with_error do |event|
        log ' [' + 'failed'.colorize(:red) + ']'
        log event.payload[:message], :red, 4
      end
    end

    private

    # def log(message, color = nil, ident = nil, print = false)
    #   ident = ' ' * (ident || 0)

    #   message = "#{ident}#{message.gsub("\n", "\n" + ident)}"
    #   message = message.colorize(color) if color

    #   if print
    #     print message
    #   else
    #     puts message
    #   end
    # end

    def subscribe(action = nil, &block)
      _subscribe('push', action, &block)
    end

    # def subscribe(action = nil, &block)
    #   name = ['wagon', 'push', [*action]].flatten.compact.join('.')

    #   ActiveSupport::Notifications.subscribe(name) do |*args|
    #     event = ActiveSupport::Notifications::Event.new *args
    #     yield(event)
    #   end
    # end

  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
locomotivecms_wagon-2.0.0.pre.beta.2 lib/locomotive/wagon/commands/loggers/push_logger.rb
locomotivecms_wagon-2.0.0.pre.beta.1 lib/locomotive/wagon/commands/loggers/push_logger.rb