diff options
| author | Markus Reiter | 2016-09-28 00:48:19 +0200 |
|---|---|---|
| committer | Markus Reiter | 2016-10-03 02:34:53 +0200 |
| commit | 013f33be4488205dd1fdf4f1b798dac58d1b93fe (patch) | |
| tree | adad07bbfb49a17d422a64495c804c4080acde83 /Library/Homebrew/cask/lib | |
| parent | b5531e8ec1dab3e3beabf85e7e270738bc214492 (diff) | |
| download | brew-013f33be4488205dd1fdf4f1b798dac58d1b93fe.tar.bz2 | |
Change language DSL to only allow strings.
Diffstat (limited to 'Library/Homebrew/cask/lib')
| -rw-r--r-- | Library/Homebrew/cask/lib/hbc/dsl.rb | 32 |
1 files changed, 10 insertions, 22 deletions
diff --git a/Library/Homebrew/cask/lib/hbc/dsl.rb b/Library/Homebrew/cask/lib/hbc/dsl.rb index 9970f8395..08afe75fc 100644 --- a/Library/Homebrew/cask/lib/hbc/dsl.rb +++ b/Library/Homebrew/cask/lib/hbc/dsl.rb @@ -1,4 +1,5 @@ require "set" +require "locale" require "hbc/dsl/appcast" require "hbc/dsl/base" @@ -99,9 +100,10 @@ module Hbc @homepage ||= homepage end - def language(*args, &block) + def language(*args, default: false, &block) if !args.empty? && block_given? @language_blocks ||= {} + @language_blocks.default = block if default @language_blocks[args] = block else language_eval @@ -114,29 +116,15 @@ module Hbc return unless instance_variable_defined?(:@language_blocks) - default_key = @language_blocks.keys.detect { |key| key.include?(:default) } + MacOS.languages.map(&Locale.method(:parse)).any? { |locale| + key = @language_blocks.keys.detect { |strings| + strings.any? { |string| locale.include?(string) } + } - MacOS.languages.each do |language| - @language_blocks.each do |regexes_or_strings, block| - if regexes_or_strings.include?(:default) - regexes_or_strings = regexes_or_strings - [:default] + [%r{^en}] - end + return @language = @language_blocks[key].call unless key.nil? + } - regexes_or_strings.each do |regex_or_string| - if regex_or_string.class == language.class - next unless regex_or_string == language - else - next unless regex_or_string =~ language - end - - @language = block.call - return - end - end - end - - # fallback to :default - @language = default_key.nil? ? nil : @language_blocks[default_key].call + @language = @language_blocks.default.call end def url(*args, &block) |
