Module: Mkxms::Mssql::Utils::InitializedAttributes

Instance Method Summary collapse

Instance Method Details

#attr_init(*syms, &blk) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
# File 'lib/mkxms/mssql/utils.rb', line 18

def attr_init(*syms, &blk)
  raise "No block given for initialization of attr_init" unless blk
  
  syms.each do |sym|
    inst_var = "@#{sym}".to_sym
    define_method(sym) do
      instance_variable_get(inst_var) ||
      instance_variable_set(inst_var, blk[])
    end
  end
end