Sha256: 4daeb77b31ebe412750940f9b680c0c0114e81ae237ebdd677cd8b3526c74e2d

Contents?: true

Size: 1.61 KB

Versions: 9

Compression:

Stored size: 1.61 KB

Contents

# frozen_string_literal: true

require "refinements/pathnames"

module SublimeTextKit
  module CLI
    module Actions
      # Handles metadata action.
      class Metadata
        include SublimeTextKit::Import[:configuration, :logger]

        using Refinements::Pathnames

        def initialize handler: SublimeTextKit::Metadata::Handler, **dependencies
          super(**dependencies)

          @handler = handler
        end

        def call kind
          case kind
            when :create then create
            when :delete then delete
            when :recreate then recreate
            else logger.error { "Unknown metadata action: #{kind}." }
          end
        end

        private

        attr_reader :handler

        def create
          logger.info "Creating metadata in #{metadata_dir}..."
          process_projects __method__
          logger.info "Metadata created."
        end

        def delete
          logger.info "Deleting metadata in #{metadata_dir}..."
          process_projects __method__
          logger.info "Metadata deleted."
        end

        def recreate
          logger.info "Recreating metadata in #{metadata_dir}..."
          process_projects __method__
          logger.info "Metadata recreated."
        end

        def process_projects method
          configuration.project_dirs.each do |directory|
            handler.with_project(directory, metadata_dir).public_send method
            handler.with_workspace(directory, metadata_dir).public_send method
          end
        end

        def metadata_dir = Pathname(configuration.metadata_dir).expand_path
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
sublime_text_kit-14.1.0 lib/sublime_text_kit/cli/actions/metadata.rb
sublime_text_kit-14.0.0 lib/sublime_text_kit/cli/actions/metadata.rb
sublime_text_kit-13.5.0 lib/sublime_text_kit/cli/actions/metadata.rb
sublime_text_kit-13.4.0 lib/sublime_text_kit/cli/actions/metadata.rb
sublime_text_kit-13.3.0 lib/sublime_text_kit/cli/actions/metadata.rb
sublime_text_kit-13.2.0 lib/sublime_text_kit/cli/actions/metadata.rb
sublime_text_kit-13.1.0 lib/sublime_text_kit/cli/actions/metadata.rb
sublime_text_kit-13.0.1 lib/sublime_text_kit/cli/actions/metadata.rb
sublime_text_kit-13.0.0 lib/sublime_text_kit/cli/actions/metadata.rb