Class: Hbc::CLI::Create

Inherits:
AbstractCommand show all
Defined in:
Library/Homebrew/cask/lib/hbc/cli/create.rb

Instance Attribute Summary

Attributes inherited from AbstractCommand

#args

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from AbstractCommand

abstract?, command_name, needs_init?, run, visible

Methods included from Options

included, #process_arguments

Constructor Details

#initializeCreate

Returns a new instance of Create



4
5
6
7
8
# File 'Library/Homebrew/cask/lib/hbc/cli/create.rb', line 4

def initialize(*)
  super
  raise CaskUnspecifiedError if args.empty?
  raise ArgumentError, "Only one Cask can be created at a time." if args.count > 1
end

Class Method Details

.helpObject



38
39
40
# File 'Library/Homebrew/cask/lib/hbc/cli/create.rb', line 38

def self.help
  "creates the given Cask and opens it in an editor"
end

.template(cask_token) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'Library/Homebrew/cask/lib/hbc/cli/create.rb', line 23

def self.template(cask_token)
  <<~EOS
    cask '#{cask_token}' do
      version ''
      sha256 ''

      url 'https://'
      name ''
      homepage ''

      app ''
    end
  EOS
end

Instance Method Details

#runObject



10
11
12
13
14
15
16
17
18
19
20
21
# File 'Library/Homebrew/cask/lib/hbc/cli/create.rb', line 10

def run
  cask_token = args.first
  cask_path = CaskLoader.path(cask_token)
  raise CaskAlreadyCreatedError, cask_token if cask_path.exist?

  odebug "Creating Cask #{cask_token}"
  File.open(cask_path, "w") do |f|
    f.write self.class.template(cask_token)
  end

  exec_editor cask_path
end