aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
authorMarkus Reiter2016-09-14 23:11:21 +0200
committerMarkus Reiter2016-10-03 02:34:52 +0200
commitf52116cd2622eff3ef1611e059bab8b96163a596 (patch)
treec5b7b4e41b352dc6e0c51ff9ef9c478f319c0d3e /Library
parent929c594f41437f3a0a6d13fed2d596a0ba60435b (diff)
downloadbrew-f52116cd2622eff3ef1611e059bab8b96163a596.tar.bz2
Add `language` stanza to cask DSL.
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/cask/lib/hbc/dsl.rb26
-rw-r--r--Library/Homebrew/cask/lib/hbc/dsl/base.rb2
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)