class DefinePoro::As

Public Class Methods

new(*attributes, &block) click to toggle source
# File lib/define-poro/as.rb, line 3
def self.new(*attributes, &block)
  Class.new do
    class_eval(%(
      attr_reader #{attributes.map { |a| ":#{a}" }.join(', ')}

      def initialize(#{attributes.join(', ')})
        #{attributes.map { |a| "@#{a}=#{a}" }.join('; ')}
      end
    ))

    class_exec &block if block_given?
  end
end