class Acme::Client
def challenge_from_hash(arguments)
def challenge_from_hash(arguments) attributes = arguments.to_h %w(type uri token).each do |key| raise ArgumentError, "missing key: #{key}" unless attributes.key?(key) end case attributes.fetch('type') when 'http-01' Acme::Client::Resources::Challenges::HTTP01.new(self, attributes) when 'dns-01' Acme::Client::Resources::Challenges::DNS01.new(self, attributes) when 'tls-sni-01' Acme::Client::Resources::Challenges::TLSSNI01.new(self, attributes) else raise 'Unsupported resource type' end end