Class: Byebug::Setting
- Inherits:
-
Object
show all
- Defined in:
- lib/byebug/setting.rb
Direct Known Subclasses
AutoevalSetting, AutoirbSetting, AutolistSetting, AutoreloadSetting, AutosaveSetting, BasenameSetting, CallstyleSetting, ForcestepSetting, FullpathSetting, HistfileSetting, HistsizeSetting, LinetraceSetting, ListsizeSetting, PostMortemSetting, StackOnErrorSetting, TestingSetting, TracingPlusSetting, VerboseSetting, WidthSetting
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
Returns a new instance of Setting.
5
6
7
|
# File 'lib/byebug/setting.rb', line 5
def initialize
@value = false
end
|
Instance Attribute Details
#value ⇒ Object
Returns the value of attribute value.
3
4
5
|
# File 'lib/byebug/setting.rb', line 3
def value
@value
end
|
Class Method Details
.[](name) ⇒ Object
13
14
15
|
# File 'lib/byebug/setting.rb', line 13
def self.[](name)
settings[name].value
end
|
.[]=(name, value) ⇒ Object
17
18
19
|
# File 'lib/byebug/setting.rb', line 17
def self.[]=(name, value)
settings[name].value = value
end
|
.boolean?(name) ⇒ Boolean
21
22
23
24
|
# File 'lib/byebug/setting.rb', line 21
def self.boolean?(name)
key = (name =~ /^no/ ? name[2..-1] : name).to_sym
settings[key].boolean?
end
|
.exists?(name) ⇒ Boolean
39
40
41
42
|
# File 'lib/byebug/setting.rb', line 39
def self.exists?(name)
key = (name =~ /^no/ ? name[2..-1] : name).to_sym
boolean?(key) ? settings.include?(key) : settings.include?(name.to_sym)
end
|
.find(shortcut) ⇒ Object
54
55
56
57
58
59
60
|
# File 'lib/byebug/setting.rb', line 54
def self.find(shortcut)
abbr = shortcut =~ /^no/ ? shortcut[2..-1] : shortcut
matches = settings.select do |key, value|
value.boolean? ? key =~ /#{abbr}/ : key =~ /#{shortcut}/
end
matches.size == 1 ? matches.keys.first : nil
end
|
62
63
64
65
66
67
68
69
|
# File 'lib/byebug/setting.rb', line 62
def self.format()
output = "List of settings supported in byebug:\n"
width = settings.keys.max_by(&:size).size
settings.values.each do |setting|
output << sprintf("%-#{width}s -- %s\n", setting.to_sym, setting.help)
end
output
end
|
.integer?(name) ⇒ Boolean
26
27
28
|
# File 'lib/byebug/setting.rb', line 26
def self.integer?(name)
settings[name.to_sym].integer?
end
|
.load ⇒ Object
44
45
46
47
48
49
50
51
52
|
# File 'lib/byebug/setting.rb', line 44
def self.load
Dir.glob(File.expand_path('../settings/*.rb', __FILE__)).each do |file|
require file
end
Byebug.constants.grep(/[a-z]Setting/).map do |name|
setting = Byebug.const_get(name).new
settings[setting.to_sym] = setting
end
end
|
.settings ⇒ Object
9
10
11
|
# File 'lib/byebug/setting.rb', line 9
def self.settings
@settings ||= {}
end
|
Instance Method Details
#boolean? ⇒ Boolean
30
31
32
|
# File 'lib/byebug/setting.rb', line 30
def boolean?
[true, false].include?(value)
end
|
#integer? ⇒ Boolean
34
35
36
37
|
# File 'lib/byebug/setting.rb', line 34
def integer?
integer = Integer(value) rescue nil
integer ? true : false
end
|
#to_s ⇒ Object
76
77
78
|
# File 'lib/byebug/setting.rb', line 76
def to_s
"#{to_sym} is #{value ? 'on' : 'off'}\n"
end
|
#to_sym ⇒ Object
71
72
73
74
|
# File 'lib/byebug/setting.rb', line 71
def to_sym
name = self.class.name.gsub(/^Byebug::/, '').gsub(/Setting$/, '')
name.gsub(/(.)([A-Z])/,'\1_\2').downcase.to_sym
end
|