Sha256: dfb27e517a53a56c6347ad72ce78418f5cb5b58c79c20821bd43588306faeb1e
Contents?: true
Size: 1.06 KB
Versions: 1
Compression:
Stored size: 1.06 KB
Contents
module Apress module Documentation module Dsl # Private: AbstractClass Базовы класс компилятора DSL # # задает DSL для настройки DSL (Xzibit style) class BaseCompiler # Public: Объект в который будут заполняться поля чере DSL attr_reader :target def initialize(target) @target = target end # Public: Основной метод, задает какие поля объект DSL-класса будет записивать в target def self.setters(*method_names) method_names.each do |name| send :define_method, name do |value| @target.send("#{name}=", value) end end end # Public: Осуществляет исполнение DSL и заполняет нужные поля в target def compile(fields, &block) @target.assign(fields) instance_eval(&block) if block_given? end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
apress-documentation-0.4.0 | lib/apress/documentation/dsl/compilers/base_compiler.rb |