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