From f52116cd2622eff3ef1611e059bab8b96163a596 Mon Sep 17 00:00:00 2001 From: Markus Reiter Date: Wed, 14 Sep 2016 23:11:21 +0200 Subject: Add `language` stanza to cask DSL. --- Library/Homebrew/cask/lib/hbc/dsl.rb | 26 ++++++++++++++++++++++++++ Library/Homebrew/cask/lib/hbc/dsl/base.rb | 2 +- 2 files changed, 27 insertions(+), 1 deletion(-) (limited to 'Library') 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) -- cgit v1.2.3