Module: Modgen::Discovery

Defined in:
lib/modgen/discovery/discovery.rb

Class Method Summary collapse

Class Method Details

.configObject



4
5
6
# File 'lib/modgen/discovery/discovery.rb', line 4

def self.config
  Modgen.config
end

.discover(id = :auto) ⇒ Object

Discover selected API If id=nil, client take preffered



49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# 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_versionObject

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



11
12
13
14
15
16
17
18
19
# 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) ⇒ Object

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



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# 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

.versionsObject

All available version on the server



23
24
25
# File 'lib/modgen/discovery/discovery.rb', line 23

def self.versions
  Modgen::API::Request.new(config.api.discovery_versions_url).response
end