Module: Muzak::Utils
- Included in:
- Index, Instance, Player, Player::StubPlayer, Plugin::StubPlugin, Song
- Defined in:
- lib/muzak/utils.rb
Overview
A collection of convenience utilities for use throughout muzak.
Class Method Summary collapse
-
.album_art?(filename) ⇒ Boolean
Tests whether the given filename is likely to be album art.
-
.music?(filename) ⇒ Boolean
Tests whether the given filename is likely to be music.
-
.which?(util) ⇒ Boolean
Tests whether the given utility is available in the system path.
Instance Method Summary collapse
-
#build_response(error: nil, data: nil) ⇒ Object
Returns a response hash containing the given data and error.
-
#danger(*args) ⇒ void
Outputs a boxed warning message.
-
#debug(*args) ⇒ void
Outputs a boxed debugging message.
-
#debug? ⇒ Boolean
Whether or not muzak is running in debug mode.
-
#error(*args) ⇒ void
Outputs a boxed error message.
-
#error!(*args) ⇒ void
Outputs a boxed error message and then exits.
-
#output(box, *args) ⇒ void
Outputs a boxed message and arguments.
-
#pretty(color = :none, str) ⇒ String
Formats a string with ANSI colors.
-
#verbose(*args) ⇒ void
Outputs a boxed verbose message.
-
#verbose? ⇒ Boolean
Whether or not muzak is running in verbose mode.
Class Method Details
.album_art?(filename) ⇒ Boolean
Tests whether the given filename is likely to be album art.
14 15 16 |
# File 'lib/muzak/utils.rb', line 14 def self.album_art?(filename) File.basename(filename) =~ Config::ALBUM_ART_REGEX end |
.music?(filename) ⇒ Boolean
Tests whether the given filename is likely to be music.
7 8 9 |
# File 'lib/muzak/utils.rb', line 7 def self.music?(filename) Config::MUSIC_SUFFIXES.include?(File.extname(filename.downcase)) end |
.which?(util) ⇒ Boolean
Tests whether the given utility is available in the system path.
21 22 23 24 25 |
# File 'lib/muzak/utils.rb', line 21 def self.which?(util) ENV["PATH"].split(File::PATH_SEPARATOR).any? do |path| File.executable?(File.join(path, util)) end end |
Instance Method Details
#build_response(error: nil, data: nil) ⇒ Object
Returns a response hash containing the given data and error.
106 107 108 109 110 111 112 113 |
# File 'lib/muzak/utils.rb', line 106 def build_response(error: nil, data: nil) { response: { error: error, data: data, method: caller_locations.first.label } } end |
#danger(*args) ⇒ void
This method returns an undefined value.
Outputs a boxed warning message.
65 66 67 |
# File 'lib/muzak/utils.rb', line 65 def danger(*args) output pretty(:yellow, "warn"), args end |
#debug(*args) ⇒ void
This method returns an undefined value.
Outputs a boxed debugging message.
88 89 90 91 92 |
# File 'lib/muzak/utils.rb', line 88 def debug(*args) return unless debug? context = self.is_a?(Module) ? name : self.class.name output pretty(:yellow, "debug"), "[#{context}]", args end |
#debug? ⇒ Boolean
Returns whether or not muzak is running in debug mode.
28 29 30 |
# File 'lib/muzak/utils.rb', line 28 def debug? Config.debug end |
#error(*args) ⇒ void
This method returns an undefined value.
Outputs a boxed error message.
72 73 74 75 |
# File 'lib/muzak/utils.rb', line 72 def error(*args) context = self.is_a?(Module) ? name : self.class.name output pretty(:red, "error"), "[#{context}]", args end |
#error!(*args) ⇒ void
This method returns an undefined value.
Outputs a boxed error message and then exits.
80 81 82 83 |
# File 'lib/muzak/utils.rb', line 80 def error!(*args) error *args exit 1 end |
#output(box, *args) ⇒ void
This method returns an undefined value.
Outputs a boxed message and arguments.
57 58 59 60 |
# File 'lib/muzak/utils.rb', line 57 def output(box, *args) msg = args.join(" ") puts "[#{box}] #{msg}" end |
#pretty(color = :none, str) ⇒ String
Formats a string with ANSI colors.
41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/muzak/utils.rb', line 41 def pretty(color = :none, str) colors = { none: 0, red: 31, green: 32, yellow: 33, blue: 34 } "\e[#{colors[color]}m#{str}\e[0m" end |
#verbose(*args) ⇒ void
This method returns an undefined value.
Outputs a boxed verbose message.
97 98 99 100 101 |
# File 'lib/muzak/utils.rb', line 97 def verbose(*args) return unless verbose? output pretty(:blue, "verbose"), args end |
#verbose? ⇒ Boolean
Returns whether or not muzak is running in verbose mode.
33 34 35 |
# File 'lib/muzak/utils.rb', line 33 def verbose? Config.verbose end |