Class: Weechat::Option
Instance Method Summary
collapse
Constructor Details
#initialize(config, option) ⇒ Option
Returns a new instance of Option.
7
8
9
10
11
12
|
# File 'lib/weechat/option.rb', line 7
def initialize(config, option)
@old_obj = config.__get(option)
@config = config
@option = option
@frozen = false
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(m, *args, &block) ⇒ Object
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
# File 'lib/weechat/option.rb', line 26
def method_missing(m, *args, &block)
if @frozen
obj = @old_obj
else
obj = @config.__get(@option)
end
ret = obj.__send__(m, *args, &block)
if (@old_obj != obj) && !@frozen
@config.set!(@option, obj)
end
unless @frozen
begin
@old_obj = obj.dup
rescue TypeError
@old_obj = obj
end
end
ret
end
|
Instance Method Details
#__config__ ⇒ Object
14
15
16
|
# File 'lib/weechat/option.rb', line 14
def __config__
@config
end
|
#__freeze__ ⇒ Object
22
23
24
|
# File 'lib/weechat/option.rb', line 22
def __freeze__
@frozen = true
end
|
#__option__ ⇒ Object
18
19
20
|
# File 'lib/weechat/option.rb', line 18
def __option__
@option
end
|