Sha256: b2a2efcba61a0e1ba58f701bf3e97aa622b1512440570a6a7ff5a9346e7597da
Contents?: true
Size: 970 Bytes
Versions: 3
Compression:
Stored size: 970 Bytes
Contents
module Danica::VariablesHolder class VariablesBuilder include Danica::DSL include Danica::Wrapper attr_reader :instance, :attr_names def initialize(attr_names, instance) @instance = instance @attr_names = attr_names end def build names_hash = attr_names.extract_options! attr_names.each do |name| add_setter(name) add_reader(name) instance.variables_hash[name.to_sym] = wrap_value(name) end names_hash.each do |name, default| add_setter(name) add_reader(name) instance.variables_hash[name.to_sym] = wrap_value(default) end end private def add_setter(name) instance.send(:define_method, "#{name}=") do |value| containers_hash[name.to_sym].content = wrap_value(value) end end def add_reader(name) instance.send(:define_method, name) do containers_hash[name.to_sym] end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
danica-2.6.0 | lib/danica/variables_holder/variables_builder.rb |
danica-2.5.1 | lib/danica/variables_holder/variables_builder.rb |
danica-2.5.0 | lib/danica/variables_holder/variables_builder.rb |