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
Constant Summary
collapse
- DEFAULT =
false
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
Returns a new instance of Setting.
7
8
9
|
# File 'lib/byebug/setting.rb', line 7
def initialize
@value = self.class::DEFAULT
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
15
16
17
|
# File 'lib/byebug/setting.rb', line 15
def self.[](name)
settings[name].value
end
|
.[]=(name, value) ⇒ Object
19
20
21
|
# File 'lib/byebug/setting.rb', line 19
def self.[]=(name, value)
settings[name].value = value
end
|
.boolean?(name) ⇒ Boolean
23
24
25
26
|
# File 'lib/byebug/setting.rb', line 23
def self.boolean?(name)
key = (name =~ /^no/ ? name[2..-1] : name).to_sym
settings[key].boolean?
end
|
.exists?(name) ⇒ Boolean
41
42
43
44
|
# File 'lib/byebug/setting.rb', line 41
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
56
57
58
59
60
61
62
|
# File 'lib/byebug/setting.rb', line 56
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
|
64
65
66
67
68
69
70
71
|
# File 'lib/byebug/setting.rb', line 64
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
28
29
30
|
# File 'lib/byebug/setting.rb', line 28
def self.integer?(name)
settings[name.to_sym].integer?
end
|
.load ⇒ Object
46
47
48
49
50
51
52
53
54
|
# File 'lib/byebug/setting.rb', line 46
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
11
12
13
|
# File 'lib/byebug/setting.rb', line 11
def self.settings
@settings ||= {}
end
|
Instance Method Details
#boolean? ⇒ Boolean
32
33
34
|
# File 'lib/byebug/setting.rb', line 32
def boolean?
[true, false].include?(value)
end
|
#integer? ⇒ Boolean
36
37
38
39
|
# File 'lib/byebug/setting.rb', line 36
def integer?
integer = Integer(value) rescue nil
integer ? true : false
end
|
#to_s ⇒ Object
78
79
80
|
# File 'lib/byebug/setting.rb', line 78
def to_s
"#{to_sym} is #{value ? 'on' : 'off'}\n"
end
|
#to_sym ⇒ Object
73
74
75
76
|
# File 'lib/byebug/setting.rb', line 73
def to_sym
name = self.class.name.gsub(/^Byebug::/, '').gsub(/Setting$/, '')
name.gsub(/(.)([A-Z])/,'\1_\2').downcase.to_sym
end
|