module Xrechnung::MemberContainer

Public Class Methods

included(base) click to toggle source
# File lib/xrechnung/member_container.rb, line 3
def self.included(base)
  base.instance_variable_set :@members, {}
  base.extend ClassMethods
end
new(**kwargs) click to toggle source
# File lib/xrechnung/member_container.rb, line 8
def initialize(**kwargs)
  self.class.after_initialize.each do |block|
    instance_eval(&block)
  end

  kwargs.each do |k, v|
    self[k] = v
  end
end

Public Instance Methods

[](key) click to toggle source
# File lib/xrechnung/member_container.rb, line 22
def [](key)
  send(key)
end
[]=(key, value) click to toggle source
# File lib/xrechnung/member_container.rb, line 26
def []=(key, value)
  send(members[key].fetch(:setter_name), value)
end
members() click to toggle source
# File lib/xrechnung/member_container.rb, line 18
def members
  self.class.instance_variable_get :@members
end