require_relative 'association' module Alba # Representing one association class One < Association # Recursively converts an object into a Hash # # @param target [Object] the object having an association method # @param params [Hash] user-given Hash for arbitrary data # @return [Hash] def to_hash(target, params: {}) @object = target.public_send(@name) @object = @condition.call(object, params) if @condition return if @object.nil? @resource = constantize(@resource) @resource.new(object, params: params).to_hash end end end