Class: Cask::DSL::Base Private

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
cask/dsl/base.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.

Superclass for all stanzas which take a block.

Instance Method Summary collapse

Constructor Details

#initialize(cask, command = SystemCommand) ⇒ Base

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 new instance of Base.



14
15
16
17
# File 'cask/dsl/base.rb', line 14

def initialize(cask, command = SystemCommand)
  @cask = cask
  @command = command
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method) ⇒ Object

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.



27
28
29
30
31
32
33
34
35
36
# File 'cask/dsl/base.rb', line 27

def method_missing(method, *)
  if method
    underscored_class = self.class.name.gsub(/([[:lower:]])([[:upper:]][[:lower:]])/, '\1_\2').downcase
    section = underscored_class.split("::").last
    Utils.method_missing_message(method, @cask.to_s, section)
    nil
  else
    super
  end
end

Instance Method Details

#system_command(executable, **options) ⇒ Object

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.



21
22
23
# File 'cask/dsl/base.rb', line 21

def system_command(executable, **options)
  @command.run!(executable, **options)
end