Sha256: e7a08d43f5ea62dedb7827d7dce2df8aab67f85190e9ed20ab3f88cf719868f1
Contents?: true
Size: 1.12 KB
Versions: 4
Compression:
Stored size: 1.12 KB
Contents
# frozen_string_literal: true require_relative '../reference' # Reference attribute type for has_one module LedgerSync class ResourceAttribute class Reference class One < Reference module Mixin def self.included(base) base.extend(ClassMethods) end module ClassMethods def references_one(name, to: nil) to ||= begin require "ledger_sync/ledgers/#{inferred_client_class.root_key}/resources/#{name}" inferred_client_class.resources[name] end resource_attribute = ResourceAttribute::Reference::One.new( name: name, resource_class: self, to: to ) resource_attributes.add resource_attribute _define_attribute_methods(name) end end end def initialize(args = {}) to = args.fetch(:to) super( args.except(:to).merge( type: Type::ReferenceOne.new(resource_class: to) ) ) end end end end end
Version data entries
4 entries across 4 versions & 1 rubygems