class RedisCounters::Dumpers::Dsl::Base
Базовый класс для создания DSL к другим классам. Класс обертка, который имеет все свойства, включая callbacks, который просто настраивает целевой класс через его стандартные свойства. Профит в простоте реализации DSL, в его изоляции от основного класса, в разделении логики основного класса и DSL к нему.
Attributes
target[RW]
Public Class Methods
callback_setter(*method_names)
click to toggle source
# File lib/redis_counters/dumpers/dsl/base.rb, line 29 def callback_setter(*method_names) method_names.each do |name| send :define_method, name do |method = nil, &block| target.send "#{name}=".to_sym, method, &block end end end
new(target, &block)
click to toggle source
# File lib/redis_counters/dumpers/dsl/base.rb, line 38 def initialize(target, &block) @target = target instance_eval(&block) end
setter(*method_names)
click to toggle source
# File lib/redis_counters/dumpers/dsl/base.rb, line 13 def setter(*method_names) method_names.each do |name| send :define_method, name do |data| target.send "#{name}=".to_sym, data end end end
varags_setter(*method_names)
click to toggle source
# File lib/redis_counters/dumpers/dsl/base.rb, line 21 def varags_setter(*method_names) method_names.each do |name| send :define_method, name do |*data| target.send "#{name}=".to_sym, data.flatten end end end