Skip to main content

Ruby

Project Information

Installation

gem 'quantumdmn'

Usage

require 'quantumdmn'
require 'json'

# Configuration
API_URL = 'https://api.quantumdmn.com'
AUTH_URL = 'https://auth.quantumdmn.com'
KEY_FILE = 'path/to/service-user.json'
PROJECT_ID = 'YOUR_DMN_PROJECT_ID'
ZITADEL_PROJECT_ID = 'YOUR_ZITADEL_PROJECT_ID'
DEFINITION_ID = 'YOUR_DEFINITION_ID'

# 1. Create Token Provider
token_provider = Quantumdmn::ZitadelTokenProvider.new(KEY_FILE, AUTH_URL, ZITADEL_PROJECT_ID)

# 2. Configure API Client
config = Quantumdmn::Configuration.new
config.host = API_URL
config.scheme = URI.parse(API_URL).scheme
config.debugging = false

api_client = Quantumdmn::ApiClient.new(config)
api_client.default_headers['Authorization'] = "Bearer #{token_provider.token}"

# 3. Create Engine
engine = Quantumdmn::DmnEngine.new(api_client, PROJECT_ID)

# 4. Prepare Context
context = {
"RequestedAmt" => 1000
}

# 5. Evaluate
begin
result = engine.evaluate(DEFINITION_ID, context)
puts 'Result:'
puts JSON.pretty_generate(result)
rescue Quantumdmn::ApiError => e
puts "Evaluation failed: #{e.code} - #{e.message}"
end