65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
# File 'lib/subtype.rb', line 65
def self.included (klass)
klass.instance_eval {
alias __set_data__ data=
alias __get_data__ data
alias __on__ on
self.rotation = SubType::RotationType.new('', self.config[:length])
self.thread = Thread.start(self) {|s|
loop {
s.__set_data__(s.data.pre + s.data.next + s.data.post)
sleep 0.1
}
}
def data=(str)
self.rotation.update(str)
str
end
def data
self.rotation
end
def on(meth, &blk)
case meth
when :unload
__on__(meth) {|s|
blk.call(s)
s.thread.kill
}
else
__on__(meth, &blk)
end
end
}
end
|