class Consensus::Portrayal

Public Class Methods

attribute(*names) click to toggle source
# File lib/consensus/portrayal.rb, line 6
def attribute(*names)
  names.each do |n| ; define_attribute(n) ; end
end

Private Class Methods

define_attribute(name) click to toggle source
# File lib/consensus/portrayal.rb, line 12
      def define_attribute name
        base_name = name.to_s.sub(/\?$/, '')
        attr_writer base_name

        class_eval <<-EOS, __FILE__, __LINE__ + 1
          def #{name}
            if @#{base_name}.respond_to?(:call)
              @#{base_name} = @#{base_name}.call
            else
              @#{base_name}
            end
          end
        EOS
      end