Class: Livecheck Private

Inherits:
Object show all
Extended by:
Forwardable
Defined in:
livecheck.rb,
sorbet/rbi/dsl/livecheck.rbi

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.

The Livecheck class implements the DSL methods used in a formula's, cask's or resource's livecheck block and stores related instance variables. Most of these methods also return the related instance variable when no argument is provided.

This information is used by the brew livecheck command to control its behavior. Example livecheck blocks can be found in the brew livecheck documentation.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(package_or_resource) ⇒ 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:



32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'livecheck.rb', line 32

def initialize(package_or_resource)
  @package_or_resource = package_or_resource
  @referenced_cask_name = T.let(nil, T.nilable(String))
  @referenced_formula_name = T.let(nil, T.nilable(String))
  @regex = T.let(nil, T.nilable(Regexp))
  @skip = T.let(false, T::Boolean)
  @skip_msg = T.let(nil, T.nilable(String))
  @strategy = T.let(nil, T.nilable(Symbol))
  @strategy_block = T.let(nil, T.nilable(Proc))
  @throttle = T.let(nil, T.nilable(Integer))
  @url = T.let(nil, T.any(NilClass, String, Symbol))
  @url_options = T.let(nil, T.nilable(T::Hash[Symbol, T.untyped]))
end

Instance Attribute Details

#skip_msgString? (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.

A very brief description of why the formula/cask/resource is skipped (e.g. No longer developed or maintained).

Returns:



21
22
23
# File 'livecheck.rb', line 21

def skip_msg
  @skip_msg
end

#strategy_blockProc? (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.

A block used by strategies to identify version information.

Returns:

  • (Proc, nil)


25
26
27
# File 'livecheck.rb', line 25

def strategy_block
  @strategy_block
end

#url_optionsHash{Symbol => T.untyped}? (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.

Options used by Strategy methods to modify curl behavior.

Returns:



29
30
31
# File 'livecheck.rb', line 29

def url_options
  @url_options
end

Instance Method Details

#cask(cask_name = T.unsafe(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.

Sets the @referenced_cask_name instance variable to the provided String or returns the @referenced_cask_name instance variable when no argument is provided. Inherited livecheck values from the referenced cask (e.g. regex) can be overridden in the livecheck block.

Parameters:

  • cask_name (String) (defaults to: T.unsafe(nil))

Returns:



56
57
58
59
60
61
62
63
# File 'livecheck.rb', line 56

def cask(cask_name = T.unsafe(nil))
  case cask_name
  when nil
    @referenced_cask_name
  when String
    @referenced_cask_name = cask_name
  end
end

#formula(formula_name = T.unsafe(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.

Sets the @referenced_formula_name instance variable to the provided String/Symbol or returns the @referenced_formula_name instance variable when no argument is provided. Inherited livecheck values from the referenced formula (e.g. regex) can be overridden in the livecheck block.

Parameters:

  • formula_name (String, Symbol) (defaults to: T.unsafe(nil))

Returns:



75
76
77
78
79
80
81
82
# File 'livecheck.rb', line 75

def formula(formula_name = T.unsafe(nil))
  case formula_name
  when nil
    @referenced_formula_name
  when String, :parent
    @referenced_formula_name = formula_name
  end
end

#regex(pattern = T.unsafe(nil)) ⇒ Regexp?

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.

Sets the @regex instance variable to the provided Regexp or returns the @regex instance variable when no argument is provided.

Parameters:

  • pattern (Regexp) (defaults to: T.unsafe(nil))

Returns:

  • (Regexp, nil)


92
93
94
95
96
97
98
99
# File 'livecheck.rb', line 92

def regex(pattern = T.unsafe(nil))
  case pattern
  when nil
    @regex
  when Regexp
    @regex = pattern
  end
end

#skip(skip_msg = T.unsafe(nil)) ⇒ Boolean

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.

Sets the @skip instance variable to true and sets the @skip_msg instance variable if a String is provided. @skip is used to indicate that the formula/cask/resource should be skipped and the skip_msg very briefly describes why it is skipped (e.g. "No longer developed or maintained").

Parameters:

  • skip_msg (String) (defaults to: T.unsafe(nil))

Returns:

  • (Boolean)


112
113
114
115
116
# File 'livecheck.rb', line 112

def skip(skip_msg = T.unsafe(nil))
  @skip_msg = skip_msg if skip_msg.is_a?(String)

  @skip = true
end

#skip?Boolean

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.

Should livecheck skip this formula/cask/resource?

Returns:

  • (Boolean)


120
121
122
# File 'livecheck.rb', line 120

def skip?
  @skip
end

#strategy(symbol = T.unsafe(nil), &block) ⇒ 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.

Sets the @strategy instance variable to the provided Symbol or returns the @strategy instance variable when no argument is provided. The strategy symbols use snake case (e.g. :page_match) and correspond to the strategy file name.

Parameters:

  • symbol (Symbol) (defaults to: T.unsafe(nil))
  • block (Proc, nil)

Returns:



135
136
137
138
139
140
141
142
143
144
# File 'livecheck.rb', line 135

def strategy(symbol = T.unsafe(nil), &block)
  @strategy_block = block if block

  case symbol
  when nil
    @strategy
  when Symbol
    @strategy = symbol
  end
end

#throttle(rate = T.unsafe(nil)) ⇒ Integer?

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.

Sets the @throttle instance variable to the provided Integer or returns the @throttle instance variable when no argument is provided.

Parameters:

  • rate (Integer) (defaults to: T.unsafe(nil))

Returns:

  • (Integer, nil)


154
155
156
157
158
159
160
161
# File 'livecheck.rb', line 154

def throttle(rate = T.unsafe(nil))
  case rate
  when nil
    @throttle
  when Integer
    @throttle = rate
  end
end

#to_hashHash{String => T.untyped}

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 a Hash of all instance variable values.

Returns:



199
200
201
202
203
204
205
206
207
208
209
210
211
# File 'livecheck.rb', line 199

def to_hash
  {
    "cask"        => @referenced_cask_name,
    "formula"     => @referenced_formula_name,
    "regex"       => @regex,
    "skip"        => @skip,
    "skip_msg"    => @skip_msg,
    "strategy"    => @strategy,
    "throttle"    => @throttle,
    "url"         => @url,
    "url_options" => @url_options,
  }
end

#url(url = T.unsafe(nil), post_form: nil, post_json: 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.

Sets the @url instance variable to the provided argument or returns the @url instance variable when no argument is provided. The argument can be a String (a URL) or a supported Symbol corresponding to a URL in the formula/cask/resource (e.g. :stable, :homepage, :head, :url). Any options provided to the method are passed through to Strategy methods (page_headers, page_content).

Parameters:

Returns:

Raises:

  • (ArgumentError)


177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
# File 'livecheck.rb', line 177

def url(url = T.unsafe(nil), post_form: nil, post_json: nil)
  raise ArgumentError, "Only use `post_form` or `post_json`, not both" if post_form && post_json

  options = { post_form:, post_json: }.compact
  @url_options = options if options.present?

  case url
  when nil
    @url
  when String, :head, :homepage, :stable, :url
    @url = url
  when Symbol
    raise ArgumentError, "#{url.inspect} is not a valid URL shorthand"
  end
end