You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: command.rb
    path of file: ./repos/pakyow/frameworks/data/lib/pakyow/data/sources/relational
    
    the code of the file until where you have to start completion: # frozen_string_literal: true

require "pakyow/support/deep_dup"
require "pakyow/support/inflector"
require "pakyow/support/core_refinements/array/ensurable"

module Pakyow
  module Data
    module Sources
      class Relational
        class Command
          using Support::DeepDup
          using Support::Refinements::Array::Ensurable

     
    
          def call(values = {})
            future_associated_changes = []

            if values
              # Enforce required attributes.
              #
              @source.class.attributes.each do |attribute_name, attribute|
                if attribute.meta[:required]
                  if @creates && !values.include?(attribute_name)
                    raise NotNullViolation.new_with_message(attribute: attribute_name)
                  end

                  if values.include?(attribute_name) && values[attribute_name].nil?
                    raise NotNullViolation.new_with_message(attribute: attribute_name)
                  end