module Modgen::Discovery

Public Class Methods

config() click to toggle source
# File lib/modgen/discovery/discovery.rb, line 4
def self.config
  Modgen.config
end
discover(id = :auto) click to toggle source

Discover selected API If id=nil, client take preffered

# File lib/modgen/discovery/discovery.rb, line 49
def self.discover(id = :auto)
  
  data = version(id).body

  api = {
    name:        data['name'],
    description: data['description'],
    version:     data['version'],
    created_at:  data['created_at'],
    updated_at:  data['updated_at'],
    base_url:    data['base_url']
  }
  Modgen::API.set_api(api)

  resources = Modgen::API::Resource.new('resources', data['resources'])

  Modgen::API.set_api_methods(resources)

  nil
end
preffered_version() click to toggle source

Download all version and return prefferd version. If there is not preffered, return nil

# File lib/modgen/discovery/discovery.rb, line 11
def self.preffered_version
  versions.body['versions'].each do |version, details|
    if details['preffered']
      return version
    end
  end

  nil
end
version(id = :auto) click to toggle source

Details of one specific version If id=nil, client take preffered

# File lib/modgen/discovery/discovery.rb, line 30
def self.version(id = :auto)
  if id == :auto
    id = preffered_version
  end

  params = {'path' => {'id' => id}}

  response = Modgen::API::Request.new(config.api.discovery_version_url, params).response

  if response.error?
    raise Modgen::APIError, response.error_message
  end

  response
end
versions() click to toggle source

All available version on the server

# File lib/modgen/discovery/discovery.rb, line 23
def self.versions
  Modgen::API::Request.new(config.api.discovery_versions_url).response
end