Sha256: 729a6a92c731f0a510d2fc59f278787c2991678e22c5e79ae817bdeffb00cff4

Contents?: true

Size: 1.51 KB

Versions: 5

Compression:

Stored size: 1.51 KB

Contents

require 'bootic_cli/themes/updated_theme'
require 'bootic_cli/themes/missing_items_theme'

module BooticCli
  module Themes
    class ThemeDiff
      def initialize(source:, target:, force_update: false)
        @source, @target = source, target
        @force_update = force_update
      end

      def summary
        msg = []
        msg.push(" - Updated in source: #{updated_in_source.count}") if updated_in_source.any?
        msg.push(" - Updated in target: #{updated_in_target.count}") if updated_in_target.any?
        msg.push(" - Missing in target: #{missing_in_target.count}") if missing_in_target.any?
        msg.push(" - Missing in source: #{missing_in_source.count}") if missing_in_source.any?
        msg.unshift("Summary:") if msg.any?
        msg.join("\n")
      end

      def any?
        updated_in_source.any? || updated_in_target.any? || missing_in_target.any? || missing_in_source.any?
      end

      def updated_in_source
        @updated_in_source ||= UpdatedTheme.new(source: source, target: target, force_update: force_update)
      end

      def updated_in_target
        @updated_in_target ||= UpdatedTheme.new(source: target, target: source, force_update: force_update)
      end

      def missing_in_target
        @missing_in_target ||= MissingItemsTheme.new(source: source, target: target)
      end

      def missing_in_source
        @missing_in_source ||= MissingItemsTheme.new(source: target, target: source)
      end

      private
      attr_reader :source, :target, :force_update
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
bootic_cli-1.2.0 lib/bootic_cli/themes/theme_diff.rb
bootic_cli-1.1.0 lib/bootic_cli/themes/theme_diff.rb
bootic_cli-1.0.0 lib/bootic_cli/themes/theme_diff.rb
bootic_cli-0.9.6 lib/bootic_cli/themes/theme_diff.rb
bootic_cli-0.9.5 lib/bootic_cli/themes/theme_diff.rb