Class: ROM::ModelBuilder::PORO

Inherits:
ROM::ModelBuilder show all
Defined in:
lib/rom/model_builder.rb

Overview

PORO model class builder

Instance Attribute Summary

Attributes inherited from ROM::ModelBuilder

#const_name, #klass, #name, #namespace

Instance Method Summary collapse

Methods inherited from ROM::ModelBuilder

[], call, #call, #define_const, #initialize

Constructor Details

This class inherits a constructor from ROM::ModelBuilder

Instance Method Details

#define_class(attrs) ⇒ Object



84
85
86
87
88
89
90
91
92
93
94
95
96
# File 'lib/rom/model_builder.rb', line 84

def define_class(attrs)
  @klass = Class.new

  @klass.send(:attr_reader, *attrs)

  @klass.class_eval <<-RUBY, __FILE__, __LINE__ + 1
    def initialize(params)
      #{attrs.map { |name| "@#{name} = params[:#{name}]" }.join("\n")}
    end
  RUBY

  self
end