Class: Resource::Patch Private

Inherits:
Resource
  • Object
show all
Defined in:
resource.rb

Overview

This class is part of a private API. This class may only be used in the Homebrew/brew repository. Third parties should avoid using this class if possible, as it may be removed or changed without warning.

A resource containing a patch.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(&block) ⇒ void

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Parameters:



535
536
537
538
539
540
541
542
# File 'resource.rb', line 535

def initialize(&block)
  @patch_files = T.let([], T::Array[T.any(String, Pathname)])
  @directory = T.let(nil, T.nilable(T.any(String, Pathname)))
  @file = T.let(nil, T.nilable(T.any(String, Pathname)))
  @resolves = T.let([], T::Array[String])
  @type = T.let(nil, T.nilable(Symbol))
  super "patch", &block
end

Instance Attribute Details

#patch_files ⇒ Array<String, Pathname> (readonly)

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns:



532
533
534
# File 'resource.rb', line 532

def patch_files
  @patch_files
end

Instance Method Details

#apply(*paths) ⇒ void

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

This method returns an undefined value.

Parameters:



545
546
547
548
# File 'resource.rb', line 545

def apply(*paths)
  @patch_files.concat(paths.flatten)
  @patch_files.uniq!
end

#directory(val = nil) ⇒ String, ...

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Parameters:

Returns:



569
570
571
572
573
# File 'resource.rb', line 569

def directory(val = nil)
  return @directory if val.nil?

  @directory = val
end

#download_queue_name ⇒ String

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns:



591
592
593
594
595
596
597
# File 'resource.rb', line 591

def download_queue_name
  if (last_url_component = url.to_s.split("/").last)
    return last_url_component
  end

  super
end

#download_queue_type ⇒ String

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns:



588
# File 'resource.rb', line 588

def download_queue_type = "Patch"

#file(val = nil) ⇒ String, ...

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Parameters:

Returns:



576
577
578
579
580
581
582
583
584
585
# File 'resource.rb', line 576

def file(val = nil)
  return @file if val.nil?

  path_string = val.to_s
  unless LocalPatch.valid_path?(path_string)
    raise ArgumentError, "Patch file must be a relative path within the repository."
  end

  @file = val
end

#resolves(*cves) ⇒ Array<String>

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Parameters:

Returns:



551
552
553
554
555
556
# File 'resource.rb', line 551

def resolves(*cves)
  return @resolves if cves.empty?

  @resolves.concat(cves).uniq!
  @resolves
end

#type(val = nil) ⇒ Symbol?

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Parameters:

  • val (Symbol, nil) (defaults to: nil)

Returns:



559
560
561
562
563
564
565
566
# File 'resource.rb', line 559

def type(val = nil)
  return @type if val.nil?
  unless ::Patch::TYPES.key?(val)
    raise ArgumentError, "Patch type must be one of: #{::Patch::TYPES.keys.map(&:inspect).join(", ")}"
  end

  @type = val
end