Sha256: 596f98b3d53c52a974ecfc7ae26b3fc5ec3c10e21d6895d98f299568e46a9828

Contents?: true

Size: 1.53 KB

Versions: 5

Compression:

Stored size: 1.53 KB

Contents

# frozen_string_literal: true

# takeltau bit clipboard paste
module BitClipboardPaste
  # Backend method for bit paste.
  def bit_clipboard_paste(cid, dir)
    log.debug "Running bit paste \"#{cid}\" to \"#{dir}\""

    return false unless configured? %w[project_root_dir]

    return false unless _bit_clipboard_lib_prepare_workspace

    return false unless _bit_clipboard_paste_cid_exists? cid

    _bit_clipboard_paste_import_cid cid, dir
    _bit_clipbpard_lib_remove_bit_artifacts
    _bit_clipboard_lib_sync_workspace

    log.info "Pasted bit component \"#{cid}\" to directory \"#{dir}\""
    true
  end

  private

  # paste bit component into directory.
  def _bit_clipboard_paste_import_cid(cid, dir)
    cmd_bit_import_cid = format(
      config.active['cmd_bit_clipboard_paste_bit_import_cid'],
      cid: cid,
      dir: dir
    )

    run cmd_bit_import_cid
  end

  # Check if remote component exists.
  def _bit_clipboard_paste_cid_exists?(cid)
    scope = cid.scan(%r{([^/]*).*}).first.first

    log.debug "Checking if scope \"#{scope}\" " \
              "contains component id \"#{cid}\""

    bit_list_scope = _bit_clipboard_paste_cid_exists_list_scope scope

    return true if bit_list_scope.include? "\"id\": \"#{cid}\","

    log.error "No remote component \"#{cid}\""
    false
  end

  # Get components in remote scope.
  def _bit_clipboard_paste_cid_exists_list_scope(scope)
    cmd_bit_list_scope = format(
      config.active['cmd_bit_clipboard_paste_bit_list_scope'],
      scope: scope
    )

    run cmd_bit_list_scope
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
takeltau-0.34.14 lib/takeltau/bit/clipboard/paste.rb
takeltau-0.34.13 lib/takeltau/bit/clipboard/paste.rb
takeltau-0.34.12 lib/takeltau/bit/clipboard/paste.rb
takeltau-0.34.11 lib/takeltau/bit/clipboard/paste.rb
takeltau-0.34.9 lib/takeltau/bit/clipboard/paste.rb