diff options
| author | Markus Reiter | 2016-09-14 23:11:21 +0200 |
|---|---|---|
| committer | Markus Reiter | 2016-10-03 02:34:52 +0200 |
| commit | f52116cd2622eff3ef1611e059bab8b96163a596 (patch) | |
| tree | c5b7b4e41b352dc6e0c51ff9ef9c478f319c0d3e /Library | |
| parent | 929c594f41437f3a0a6d13fed2d596a0ba60435b (diff) | |
| download | brew-f52116cd2622eff3ef1611e059bab8b96163a596.tar.bz2 | |
Add `language` stanza to cask DSL.
Diffstat (limited to 'Library')
| -rw-r--r-- | Library/Homebrew/cask/lib/hbc/dsl.rb | 26 | ||||
| -rw-r--r-- | Library/Homebrew/cask/lib/hbc/dsl/base.rb | 2 |
2 files changed, 27 insertions, 1 deletions
diff --git a/Library/Homebrew/cask/lib/hbc/dsl.rb b/Library/Homebrew/cask/lib/hbc/dsl.rb index 83c0bf1fb..69ade9a86 100644 --- a/Library/Homebrew/cask/lib/hbc/dsl.rb +++ b/Library/Homebrew/cask/lib/hbc/dsl.rb @@ -64,6 +64,7 @@ module Hbc :depends_on, :gpg, :homepage, + :language, :license, :name, :sha256, @@ -98,6 +99,31 @@ module Hbc @homepage ||= homepage end + def language(*args, &block) + @language ||= {} + + if !args.empty? && block_given? + args.each do |arg| + MacOS.languages.each_with_index do |l, index| + string_or_regex = arg == :default ? %r{^en} : arg + next unless l.match(string_or_regex) + next unless @language[:level].nil? || @language[:level] > index + @language = { + block: block, + level: index, + } + end + end + + if args.include?(:default) + # :default has to be the last language block in order to assign return value of the selected `language` block to `@language` + @language = @language[:block].call + end + else + @language + end + end + def url(*args, &block) url_given = !args.empty? || block_given? return @url unless url_given diff --git a/Library/Homebrew/cask/lib/hbc/dsl/base.rb b/Library/Homebrew/cask/lib/hbc/dsl/base.rb index ccf93dae9..20a3cec61 100644 --- a/Library/Homebrew/cask/lib/hbc/dsl/base.rb +++ b/Library/Homebrew/cask/lib/hbc/dsl/base.rb @@ -8,7 +8,7 @@ module Hbc @command = command end - def_delegators :@cask, :token, :version, :caskroom_path, :staged_path, :appdir + def_delegators :@cask, :token, :version, :caskroom_path, :staged_path, :appdir, :language def system_command(executable, options = {}) @command.run!(executable, options) |
