Sha256: 05dd822f18a4a6116a2ba800c28e6383b3101df97c1aeaed4b94e2706c7a8cb3

Contents?: true

Size: 1.16 KB

Versions: 20

Compression:

Stored size: 1.16 KB

Contents

# frozen_string_literal: true

module ShopifyCLI
  module Theme
    class Syncer
      class Operation
        attr_accessor :method, :file

        COLOR_BY_STATUS = {
          error: :red,
          synced: :green,
          warning: :yellow,
          fixed: :cyan,
        }

        def initialize(ctx, method, file)
          @ctx = ctx
          @method = method
          @file = file
        end

        def to_s
          "#{method} #{file_path}"
        end

        def as_error_message
          as_message_with(status: :error)
        end

        def as_synced_message(color: :green)
          as_message_with(status: :synced, color: color)
        end

        def as_fix_message
          as_message_with(status: :fixed)
        end

        def file_path
          file&.relative_path
        end

        private

        def as_message_with(status:, color: nil)
          color ||= COLOR_BY_STATUS[status]
          text = @ctx.message("theme.serve.operation.status.#{status}").ljust(6)

          "#{timestamp} {{#{color}:#{text}}} {{>}} {{blue:#{self}}}"
        end

        def timestamp
          Time.now.strftime("%T")
        end
      end
    end
  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
shopify-cli-2.36.0 lib/shopify_cli/theme/syncer/operation.rb
shopify-cli-2.35.0 lib/shopify_cli/theme/syncer/operation.rb
shopify-cli-2.34.0 lib/shopify_cli/theme/syncer/operation.rb
shopify-cli-2.33.1 lib/shopify_cli/theme/syncer/operation.rb
shopify-cli-2.33.0 lib/shopify_cli/theme/syncer/operation.rb
shopify-cli-2.32.1 lib/shopify_cli/theme/syncer/operation.rb
shopify-cli-2.32.0 lib/shopify_cli/theme/syncer/operation.rb
shopify-cli-2.31.0 lib/shopify_cli/theme/syncer/operation.rb
shopify-cli-2.30.0 lib/shopify_cli/theme/syncer/operation.rb
shopify-cli-2.29.0 lib/shopify_cli/theme/syncer/operation.rb
shopify-cli-2.28.0 lib/shopify_cli/theme/syncer/operation.rb
shopify-cli-2.27.0 lib/shopify_cli/theme/syncer/operation.rb
shopify-cli-2.26.0 lib/shopify_cli/theme/syncer/operation.rb
shopify-cli-2.25.0 lib/shopify_cli/theme/syncer/operation.rb
shopify-cli-2.24.0 lib/shopify_cli/theme/syncer/operation.rb
shopify-cli-2.23.0 lib/shopify_cli/theme/syncer/operation.rb
shopify-cli-2.22.0 lib/shopify_cli/theme/syncer/operation.rb
shopify-cli-2.21.0 lib/shopify_cli/theme/syncer/operation.rb
shopify-cli-2.20.1 lib/shopify_cli/theme/syncer/operation.rb
shopify-cli-2.20.0 lib/shopify_cli/theme/syncer/operation.rb