aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
authorMike McQuaid2016-07-09 13:51:43 +0100
committerGitHub2016-07-09 13:51:43 +0100
commita5ec0aa2598d702b68300e7400fad48e8a392527 (patch)
tree8037df47a4d2eeb4dd8b51b7ad58bf0e4713316e /Library
parent4da990587f723a563e602a665403393f67fc8e70 (diff)
downloadbrew-a5ec0aa2598d702b68300e7400fad48e8a392527.tar.bz2
emoji: extract logic into generic OS classes. (#450)
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/emoji.rb24
-rw-r--r--Library/Homebrew/extend/os/emoji.rb6
-rw-r--r--Library/Homebrew/extend/os/mac/emoji.rb7
-rw-r--r--Library/Homebrew/formula_installer.rb7
-rw-r--r--Library/Homebrew/utils.rb23
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