mirror of
https://github.com/onyx-and-iris/voicemeeter-rb.git
synced 2024-11-22 09:50:49 +00:00
meta functions
defines accessors, readers and writers
This commit is contained in:
parent
941c3339d8
commit
a58f5e08c6
67
lib/voicemeeter/meta.rb
Normal file
67
lib/voicemeeter/meta.rb
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
module Voicemeeter
|
||||||
|
module Meta_Functions
|
||||||
|
# Accessor methods
|
||||||
|
def make_accessor_bool(*params)
|
||||||
|
params.each do |param|
|
||||||
|
define_singleton_method(param) { self.getter(param).to_i == 1 }
|
||||||
|
define_singleton_method("#{param}=") do |value|
|
||||||
|
self.setter(param, value && 1 || 0)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def make_accessor_string(*params)
|
||||||
|
params.each do |param|
|
||||||
|
define_singleton_method(param) { self.getter(param, true) }
|
||||||
|
|
||||||
|
define_singleton_method("#{param}=") do |value|
|
||||||
|
self.setter(param, value)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def make_accessor_int(*params)
|
||||||
|
params.each do |param|
|
||||||
|
define_singleton_method("#{param}") do
|
||||||
|
return self.getter("#{param}").to_i
|
||||||
|
end
|
||||||
|
|
||||||
|
define_singleton_method("#{param}=") do |value|
|
||||||
|
self.setter("#{param}", value)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def make_accessor_float(*params)
|
||||||
|
params.each do |param|
|
||||||
|
define_singleton_method(param) { self.getter(param) }
|
||||||
|
|
||||||
|
define_singleton_method("#{param}=") do |value|
|
||||||
|
self.setter(param, value)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# reader methods
|
||||||
|
def make_reader_string(*params)
|
||||||
|
params.each do |param|
|
||||||
|
define_singleton_method(param) { self.getter(param, true) }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def make_reader_int(*params)
|
||||||
|
params.each do |param|
|
||||||
|
define_singleton_method(param) { self.getter(param).to_i }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# writer methods
|
||||||
|
def make_writer_string(*params)
|
||||||
|
params.each do |param|
|
||||||
|
define_singleton_method("#{param}=") do |value|
|
||||||
|
self.setter(param, value)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in New Issue
Block a user