Class: Capistrano::JDKInstaller::JDKInstallerVersions

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/capistrano-jdk-installer/jdk-installer.rb

Constant Summary collapse

JSON_VERSION =
2

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(data, options = {}) ⇒ JDKInstallerVersions

Returns a new instance of JDKInstallerVersions.



311
312
313
314
315
316
317
318
319
# File 'lib/capistrano-jdk-installer/jdk-installer.rb', line 311

def initialize(data, options={})
  @data = data
  @options = options.dup
  @logger = @options[:logger]

  if @data["version"] != JSON_VERSION
    raise(JDKInstallerParseError.new("JSON version mismatch (got=#{@data["version"]}, expected=#{JSON_VERSION})"))
  end
end

Instance Attribute Details

#optionsObject (readonly)

Returns the value of attribute options.



320
321
322
# File 'lib/capistrano-jdk-installer/jdk-installer.rb', line 320

def options
  @options
end

Class Method Details

.parse(s, options = {}) ⇒ Object



304
305
306
307
308
# File 'lib/capistrano-jdk-installer/jdk-installer.rb', line 304

def parse(s, options={})
  s = s.sub(/\A[^{]*/, "").sub(/[^}]*\z/, "").strip # remove leading & trailing JS code from response
  i = new(JSON.load(s), options)
  i.versions
end

Instance Method Details

#each(&block) ⇒ Object



333
334
335
# File 'lib/capistrano-jdk-installer/jdk-installer.rb', line 333

def each(&block)
  self.to_a.each(&block)
end

#find_by_major_version(version, options = {}) ⇒ Object



337
338
339
340
# File 'lib/capistrano-jdk-installer/jdk-installer.rb', line 337

def find_by_major_version(version, options={})
  version = version.to_s
  self.find { |v| v.major_version == version }
end

#loggerObject



322
323
324
# File 'lib/capistrano-jdk-installer/jdk-installer.rb', line 322

def logger
  @logger ||= Logger.new(STDOUT)
end

#versionsObject Also known as: to_a



326
327
328
329
330
# File 'lib/capistrano-jdk-installer/jdk-installer.rb', line 326

def versions
  @versions ||= @data["data"].map { |version|
    JDKInstallerVersion.new(version, @options)
  }
end