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: worker.rb
    path of file: ./repos/shoryuken/lib/shoryuken
    
    the code of the file until where you have to start completion: module Shoryuken
  module Worker
    def self.included(base)
      base.extend(ClassMethods)
      base.shoryuken_class_attribute :shoryuken_options_hash
    end

    module ClassMethods
      def perform_async(body, options = {})
        Shoryuken.worker_executor.perform_async(self, body, options)
      end

      def perform_in(interval, body, op
    
      def shoryuken_class_attribute(*attrs) # :nodoc:
        attrs.each do |name|
          singleton_class.instance_eval do
            undef_method(name) if method_defined?(name) || private_method_defined?(name)
          end
          define_singleton_method(name) { nil }

          ivar = "@#{name}"

          singleton_class.instance_eval do
            m = "#{name}="
            undef_method(m) if method_defined?(m) || private_method_defined?(m)
          end

          define_singleton_method("#{name}=") do |val|
            singleton_class.class_eval do
              undef_method(name) if method_defined?(name) || private_method_defined?(name)
              define_method(name) { val }
            end

            # singleton? backwards compatibility for ruby < 2.1
            singleton_klass = respond_to?(:singleton?) ? singleton? : self != ancestors.first

            if singleton_klass
              class_eval do
                undef_method(name) if method_defined?(name) || private_method_defined?(name)
                define_method(name) do
                  if instance_variable_defined? ivar
                    instance_variable_get ivar
                  else
                    singleton_class.send name
                  end
                end
              end
            end
            val
          end