Class: Livecheck

Inherits:
Object show all
Extended by:
Forwardable
Defined in:
livecheck.rb

Overview

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

Parameters:



23
24
25
26
27
28
29
30
31
32
33
# File 'livecheck.rb', line 23

def initialize(package_or_resource)
  @package_or_resource = package_or_resource
  @referenced_cask_name = nil
  @referenced_formula_name = nil
  @regex = nil
  @skip = false
  @skip_msg = nil
  @strategy = nil
  @strategy_block = nil
  @url = nil
end

Instance Attribute Details

#skip_msgString? (readonly)

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

Returns:



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

def skip_msg
  @skip_msg
end

#strategy_blockProc? (readonly)

Returns:

  • (Proc, nil)


136
137
138
# File 'livecheck.rb', line 136

def strategy_block
  @strategy_block
end

Instance Method Details

#cask(cask_name = T.unsafe(nil)) ⇒ String?

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:



45
46
47
48
49
50
51
52
# File 'livecheck.rb', line 45

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?

Sets the @referenced_formula_name instance variable to the provided String 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) (defaults to: T.unsafe(nil))

Returns:



64
65
66
67
68
69
70
71
# File 'livecheck.rb', line 64

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

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

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)


81
82
83
84
85
86
87
88
# File 'livecheck.rb', line 81

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

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

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)


101
102
103
104
105
# File 'livecheck.rb', line 101

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

  @skip = true
end

#skip?Boolean

Should livecheck skip this formula/cask/resource?

Returns:

  • (Boolean)


109
110
111
# File 'livecheck.rb', line 109

def skip?
  @skip
end

#strategy(symbol = T.unsafe(nil), &block) ⇒ Symbol?

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:



124
125
126
127
128
129
130
131
132
133
# File 'livecheck.rb', line 124

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

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

#to_hashHash{String => T.untyped}

Returns a Hash of all instance variable values.

Returns:



166
167
168
169
170
171
172
173
174
175
176
# File 'livecheck.rb', line 166

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

#url(url = T.unsafe(nil)) ⇒ String, ...

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).

Parameters:

Returns:



148
149
150
151
152
153
154
155
156
157
# File 'livecheck.rb', line 148

def url(url = T.unsafe(nil))
  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