diff options
| author | Mike McQuaid | 2016-07-09 13:51:43 +0100 |
|---|---|---|
| committer | GitHub | 2016-07-09 13:51:43 +0100 |
| commit | a5ec0aa2598d702b68300e7400fad48e8a392527 (patch) | |
| tree | 8037df47a4d2eeb4dd8b51b7ad58bf0e4713316e /Library | |
| parent | 4da990587f723a563e602a665403393f67fc8e70 (diff) | |
| download | brew-a5ec0aa2598d702b68300e7400fad48e8a392527.tar.bz2 | |
emoji: extract logic into generic OS classes. (#450)
Diffstat (limited to 'Library')
| -rw-r--r-- | Library/Homebrew/emoji.rb | 24 | ||||
| -rw-r--r-- | Library/Homebrew/extend/os/emoji.rb | 6 | ||||
| -rw-r--r-- | Library/Homebrew/extend/os/mac/emoji.rb | 7 | ||||
| -rw-r--r-- | Library/Homebrew/formula_installer.rb | 7 | ||||
| -rw-r--r-- | Library/Homebrew/utils.rb | 23 |
5 files changed, 46 insertions, 21 deletions
diff --git a/Library/Homebrew/emoji.rb b/Library/Homebrew/emoji.rb new file mode 100644 index 000000000..8c58ca895 --- /dev/null +++ b/Library/Homebrew/emoji.rb @@ -0,0 +1,24 @@ +module Emoji + class << self + def tick + # necessary for 1.8.7 unicode handling since many installs are on 1.8.7 + @tick ||= ["2714".hex].pack("U*") + end + + def cross + # necessary for 1.8.7 unicode handling since many installs are on 1.8.7 + @cross ||= ["2718".hex].pack("U*") + end + + def install_badge + ENV["HOMEBREW_INSTALL_BADGE"] || "\xf0\x9f\x8d\xba" + end + + def enabled? + !ENV["HOMEBREW_NO_EMOJI"] + end + alias generic_enabled? enabled? + end +end + +require "extend/os/emoji" diff --git a/Library/Homebrew/extend/os/emoji.rb b/Library/Homebrew/extend/os/emoji.rb new file mode 100644 index 000000000..fe3e7f44e --- /dev/null +++ b/Library/Homebrew/extend/os/emoji.rb @@ -0,0 +1,6 @@ +require "os" +require "emoji" + +if OS.mac? + require "extend/os/mac/emoji" +end diff --git a/Library/Homebrew/extend/os/mac/emoji.rb b/Library/Homebrew/extend/os/mac/emoji.rb new file mode 100644 index 000000000..79c0c78e3 --- /dev/null +++ b/Library/Homebrew/extend/os/mac/emoji.rb @@ -0,0 +1,7 @@ +module Emoji + class << self + def enabled? + generic_enabled? && MacOS.version >= :lion + end + end +end diff --git a/Library/Homebrew/formula_installer.rb b/Library/Homebrew/formula_installer.rb index ae594d9f7..e44c78087 100644 --- a/Library/Homebrew/formula_installer.rb +++ b/Library/Homebrew/formula_installer.rb @@ -13,6 +13,7 @@ require "hooks/bottles" require "debrew" require "sandbox" require "requirements/cctools_requirement" +require "emoji" class FormulaInstaller include FormulaCellarChecks @@ -492,13 +493,9 @@ class FormulaInstaller unlock end - def emoji - ENV["HOMEBREW_INSTALL_BADGE"] || "\xf0\x9f\x8d\xba" - end - def summary s = "" - s << "#{emoji} " if MacOS.version >= :lion && !ENV["HOMEBREW_NO_EMOJI"] + s << "#{Emoji.install_badge} " if Emoji.enabled? s << "#{formula.prefix}: #{formula.prefix.abv}" s << ", built in #{pretty_duration build_time}" if build_time s diff --git a/Library/Homebrew/utils.rb b/Library/Homebrew/utils.rb index 61d286da5..86c83f9f9 100644 --- a/Library/Homebrew/utils.rb +++ b/Library/Homebrew/utils.rb @@ -1,4 +1,5 @@ require "pathname" +require "emoji" require "exceptions" require "utils/hash" require "utils/json" @@ -12,16 +13,6 @@ require "utils/curl" class Tty class << self - def tick - # necessary for 1.8.7 unicode handling since many installs are on 1.8.7 - @tick ||= ["2714".hex].pack("U*") - end - - def cross - # necessary for 1.8.7 unicode handling since many installs are on 1.8.7 - @cross ||= ["2718".hex].pack("U*") - end - def strip_ansi(string) string.gsub(/\033\[\d+(;\d+)*m/, "") end @@ -124,20 +115,20 @@ end def pretty_installed(f) if !$stdout.tty? "#{f}" - elsif ENV["HOMEBREW_NO_EMOJI"] - "#{Tty.highlight}#{Tty.green}#{f} (installed)#{Tty.reset}" + elsif Emoji.enabled? + "#{Tty.highlight}#{f} #{Tty.green}#{Emoji.tick}#{Tty.reset}" else - "#{Tty.highlight}#{f} #{Tty.green}#{Tty.tick}#{Tty.reset}" + "#{Tty.highlight}#{Tty.green}#{f} (installed)#{Tty.reset}" end end def pretty_uninstalled(f) if !$stdout.tty? "#{f}" - elsif ENV["HOMEBREW_NO_EMOJI"] - "#{Tty.red}#{f} (uninstalled)#{Tty.reset}" + elsif Emoji.enabled? + "#{f} #{Tty.red}#{Emoji.cross}#{Tty.reset}" else - "#{f} #{Tty.red}#{Tty.cross}#{Tty.reset}" + "#{Tty.red}#{f} (uninstalled)#{Tty.reset}" end end |
