Sha256: 470219bb8dcc5364bf01fce92ec113301ba17d1afff533a8e4d72ddb34412dca
Contents?: true
Size: 607 Bytes
Versions: 14
Compression:
Stored size: 607 Bytes
Contents
module Billogram class RelationBuilder attr_reader :resource, :attributes def initialize(resource, attributes) @resource = resource @attributes = attributes end def call resource_relations.each do |relation| build_relation(relation) end end private def resource_relations resource.class.relations end def build_relation(relation) if attrs = attributes.delete(relation.name) value = relation.relation_class.build_objects(attrs) resource.public_send("#{relation.name}=", value) end end end end
Version data entries
14 entries across 14 versions & 1 rubygems