Sha256: 3cc750745edcf1bb434522d1b8c0a51f4adbb2716356118335ad7a9d7505e9d1

Contents?: true

Size: 1.02 KB

Versions: 2

Compression:

Stored size: 1.02 KB

Contents

module CopyleaksApi
  class Config
    DEFAULTS = {
      sandbox_mode: false,
      allow_partial_scan: false,
      http_callback: nil,
      email_callback: nil,
      custom_fields: {},
      compare_only: false,
      import_to_database_only: false,
      in_progress_result: nil,
    }.freeze

    class << self
      attr_writer :sandbox_mode, :compare_only, :http_callback, :email_callback, :custom_fields, :allow_partial_scan, :import_to_database_only, :in_progress_result

      DEFAULTS.each do |attr, value|
        # getters for all options
        define_method(attr) do
          var = instance_variable_get("@#{attr}")
          return var if var
          instance_variable_set("@#{attr}", value)
        end
      end

      # provide block syntax possibility for setting options
      def config
        yield(self)
      end

      # reset all options to default
      def reset
        DEFAULTS.each { |attr, value| instance_variable_set("@#{attr}", value) }
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
plagiarism-checker-2.1.2 lib/copyleaks_api/config.rb
plagiarism-checker-2.1.1 lib/copyleaks_api/config.rb