class WhirledPeas::Settings::Debugger
Attributes
settings[R]
Public Class Methods
new(settings)
click to toggle source
# File lib/whirled_peas/settings/debugger.rb, line 11 def initialize(settings) @settings = settings end
Public Instance Methods
debug(indent='')
click to toggle source
# File lib/whirled_peas/settings/debugger.rb, line 15 def debug(indent='') values = non_default_values(indent + ' ') details = values.length > 0 ? values.join("\n") : "#{indent} <default>" "#{indent}#{settings.class}\n#{details}" end
Private Instance Methods
border_value(border)
click to toggle source
# File lib/whirled_peas/settings/debugger.rb, line 75 def border_value(border) values = non_defaults( border, Border.new(settings.theme), %i[left? top? right? bottom? inner_horiz? inner_vert? style color] ) return if values == '' "Border(#{values})" end
debug_value(value)
click to toggle source
# File lib/whirled_peas/settings/debugger.rb, line 34 def debug_value(value) return if value.nil? case value when Theme nil when Position position_value(value) when Margin margin_value(value) when Border border_value(value) when Padding padding_value(value) when Scrollbar scrollbar_value(value) else value.inspect end end
margin_value(margin)
click to toggle source
# File lib/whirled_peas/settings/debugger.rb, line 69 def margin_value(margin) values = non_defaults(margin, Margin.new, %i[left top right bottom]) return if values == '' "Margin(#{values})" end
non_default_values(indent)
click to toggle source
# File lib/whirled_peas/settings/debugger.rb, line 25 def non_default_values(indent) settings.instance_variables.map do |ivar, values| value = settings.instance_variable_get(ivar) next if value.nil? printable_value = debug_value(value) "#{indent}#{ivar.to_s.sub(/^@?_?/, '')}: #{printable_value}" unless printable_value.nil? end.compact end
non_defaults(object, default_object, keys)
click to toggle source
# File lib/whirled_peas/settings/debugger.rb, line 54 def non_defaults(object, default_object, keys) values = keys.map.with_object({}) do |key, hash| unless object.send(key) == default_object.send(key) hash[key] = object.send(key) end end values.keys.map { |k| "#{k}: #{values[k]}"}.join(', ') end
padding_value(padding)
click to toggle source
# File lib/whirled_peas/settings/debugger.rb, line 85 def padding_value(padding) values = non_defaults(padding, Padding.new, %i[left top right bottom]) return if values == '' "Padding(#{values})" end
position_value(position)
click to toggle source
# File lib/whirled_peas/settings/debugger.rb, line 63 def position_value(position) values = non_defaults(position, Position.new, %i[left top]) return if values == '' "Position(#{values})" end
scrollbar_value(scrollbar)
click to toggle source
# File lib/whirled_peas/settings/debugger.rb, line 91 def scrollbar_value(scrollbar) values = non_defaults(scrollbar, Scrollbar.new, %i[horiz? vert?]) return if values == '' "Scrollbar(#{values})" end