Module: ESMDl

Defined in:
lib/esmdl.rb,
lib/esmdl/download.rb,
lib/esmdl/configuration.rb

Defined Under Namespace

Classes: Configuration, Download

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.configObject

Returns the value of attribute config.



9
10
11
# File 'lib/esmdl.rb', line 9

def config
  @config
end

.esmversionObject

Returns the value of attribute esmversion.



13
14
15
# File 'lib/esmdl.rb', line 13

def esmversion
  @esmversion
end

.prodmapObject

Returns the value of attribute prodmap.



12
13
14
# File 'lib/esmdl.rb', line 12

def prodmap
  @prodmap
end

.productsObject

Returns the value of attribute products.



10
11
12
# File 'lib/esmdl.rb', line 10

def products
  @products
end

.releasesObject

Returns the value of attribute releases.



11
12
13
# File 'lib/esmdl.rb', line 11

def releases
  @releases
end

Class Method Details

.configure {|config| ... } ⇒ Object

Yields:



20
21
22
# File 'lib/esmdl.rb', line 20

def self.configure
  yield(config)
end

.fetch_metadataObject



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/esmdl.rb', line 24

def self.
  r = nil
  uri = URI(config.base_url + "/releaseservices/AvailableReleases?esmversion=#{config.esmversion}")
  Net::HTTP.start(uri.host, uri.port, use_ssl: true, ciphers: "TLSv1.2:!aNULL:!eNULL", ssl_version: "TLSv1_2") do |http|
    request = Net::HTTP::Get.new uri.request_uri
    request.basic_auth config.username, config.password
    response = http.request request
    if response.code != '200'
      raise "Problem fetching ESM metadata: #{response.body}"
    end
    r = JSON.parse(response.body)
  end
  @products = {}
  @codemap = {}
  r['prodCodeMap'].split("\n").each do |line|
    a = line.split(',')
    @codemap[a[1]] = a[2]
  end

  r['clientLicensedProducts'].sort.each do |p|
    @products[p] = @codemap[p]
  end

  @releases = r['available']
end