class Priscilla::Makeup
Attributes
config[R]
Public Class Methods
new(config)
click to toggle source
# File lib/priscilla/makeup.rb, line 9 def initialize(config) @config = config.clone end
Public Instance Methods
decorate(message, options = {})
click to toggle source
# File lib/priscilla/makeup.rb, line 13 def decorate(message, options = {}) override_config(options) message = message.to_s [decorated_line, decorate_message(message), decorated_line] .map { |string| string << "\n" }.join end
Private Instance Methods
decoratable?(message)
click to toggle source
# File lib/priscilla/makeup.rb, line 35 def decoratable?(message) min_decorated_length(message) <= decoratable_width end
decoratable_width()
click to toggle source
# File lib/priscilla/makeup.rb, line 27 def decoratable_width (width / decorator_length) * decorator_length end
decorate_message(message)
click to toggle source
# File lib/priscilla/makeup.rb, line 53 def decorate_message(message) return message unless decoratable?(message) message_template(message) end
decorated_line()
click to toggle source
# File lib/priscilla/makeup.rb, line 31 def decorated_line decorator * (decoratable_width / decorator_length) end
decorator_length()
click to toggle source
# File lib/priscilla/makeup.rb, line 23 def decorator_length decorator.uncolorize.length end
message_template(message)
click to toggle source
# File lib/priscilla/makeup.rb, line 44 def message_template(message) padding = space_for(decoratable_width - min_decorated_length(message)) "#{decorator} #{message} #{padding}#{decorator}" end
min_decorated_length(message)
click to toggle source
# File lib/priscilla/makeup.rb, line 39 def min_decorated_length(message) # add two decorators and two wrapping spaces message.length + (decorator_length * 2) + 2 end
override_config(options)
click to toggle source
# File lib/priscilla/makeup.rb, line 58 def override_config(options) options.each do |key, value| config.send("#{key}=", value) end end
space_for(times)
click to toggle source
# File lib/priscilla/makeup.rb, line 49 def space_for(times) ' ' * times end