module Zresume::Person::Core

Public Instance Methods

info(*attrs) click to toggle source
# File lib/zresume/person.rb, line 21
def info *attrs
    return @info if attrs.empty?

    attr_reader *attrs

    attrs.each do |key|
        metaclass.instance_eval do
            define_method key do |val=nil, &block|
                @info ||= {}
                val = block if !val and block
                @info[key] = val
            end
        end
    end#set class method

    class_eval do
        define_method(:initialize) do
            self.class.info.each do |k, v|
                if v.respond_to? :lambda?
                    s =  Zresume::List[:title, k]
                    s.instance_eval &v
                    v = s
                end
                instance_variable_set("@#{k}", v)
                self.class.info[k] = v
            end
        end
    end#initialize, add the instance variables
end
metaclass() click to toggle source
# File lib/zresume/person.rb, line 15
def metaclass
    class << self
        self
    end
end