class SMF::Descripter
Public Class Methods
new(sh)
click to toggle source
# File lib/smf/toy/macro.rb, line 238 def initialize(sh) @sh = sh @es = [] @es << {} @es[-1][:tr] = 1 @es[-1][:ch] = 0 @es[-1][:of] = 0 @es[-1][:oc] = 4.to_r/1 @es[-1][:le] = 1.to_r/4 @es[-1][:du] = 9.to_r/10 @es[-1][:ve] = 3.to_r/4 end
Public Instance Methods
[](k)
click to toggle source
# File lib/smf/toy/macro.rb, line 266 def [] (k) ch = @es[-1][:ch] k = rv(k, ch.to_i) @es[-1][k] end
[]=(k, v)
click to toggle source
# File lib/smf/toy/macro.rb, line 272 def []=(k, v) ch = @es[-1][:ch] k = rv(k, ch.to_i) @es[-1][k] = v end
pop()
click to toggle source
# File lib/smf/toy/macro.rb, line 252 def pop() @es.pop end
push()
click to toggle source
# File lib/smf/toy/macro.rb, line 251 def push() @es.push(@es[-1].dup) end
snap()
click to toggle source
# File lib/smf/toy/macro.rb, line 278 def snap() @sh.snap(@es[-1].dup) end
Private Instance Methods
rv(k, ch)
click to toggle source
# File lib/smf/toy/macro.rb, line 254 def rv(k, ch) k = k.to_s k.gsub!(/0+(\d)/, '\1') case k when /\A(pp|co|mo)(\d+)\z/; k += format('/%d', ch) when /\A(pr|cp|pi)\z/ ; k += format('/%d', ch) end k = k.intern end