Class: Onboard::Release

Inherits:
Object
  • Object
show all
Defined in:
lib/onboard/release.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(project, core) ⇒ Release

Returns a new instance of Release.



13
14
15
16
17
# File 'lib/onboard/release.rb', line 13

def initialize(project, core)
  @core = core
  @project = project
  @doc = build_doc
end

Instance Attribute Details

#coreObject (readonly)

Returns the value of attribute core.



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

def core
  @core
end

#docObject (readonly)

Returns the value of attribute doc.



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

def doc
  @doc
end

#feedObject (readonly)

Returns the value of attribute feed.



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

def feed
  @feed
end

#projectObject (readonly)

Returns the value of attribute project.



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

def project
  @project
end

Instance Method Details

#build_docObject



19
20
21
22
23
24
# File 'lib/onboard/release.rb', line 19

def build_doc
  feed = "#{DRUPAL_PRJ_FEED}#{project}/#{core}"
  Download.new.fetch(feed)
  xml = File.open(Download.new.path(feed))
  Nokogiri::XML(xml)
end

#choose(version = '') ⇒ Object



34
35
36
37
38
39
40
41
42
43
# File 'lib/onboard/release.rb', line 34

def choose(version = '')
  releases = releases_get
  if version.empty? == false
    return specify(version, releases)
  elsif releases['stable'].empty? == false
    return releases['stable'].first
  elsif releases['extra'].empty? == false
    return releases['extra'].first
  end
end

#releases_getObject



45
46
47
48
49
50
51
52
53
54
# File 'lib/onboard/release.rb', line 45

def releases_get
  releases = { 'stable' => {}, 'extra' => {} }
  doc.xpath('//releases//release').each do |item|
    md5 = item.at_xpath('mdhash').content
    version = item.at_xpath('version').content
    status = item.at_xpath('version_extra').nil? ? 'stable' : 'extra'
    releases[status][version] = md5
  end
  releases
end

#specify(version, releases) ⇒ Object



26
27
28
29
30
31
32
# File 'lib/onboard/release.rb', line 26

def specify(version, releases)
  if releases['stable'][version].nil? == false
    return version, releases['stable'][version]
  elsif releases['extra'][version].nil? == false
    return version, releases['extra'][version]
  end
end