class ReaPack::Index::Version

Constants

AUTHOR
TIME

Public Class Methods

new(node) click to toggle source
Calls superclass method ReaPack::Index::NamedNode::new
# File lib/reapack/index/version.rb, line 8
def initialize(node)
  super
  @changelog = Changelog.new @node
end

Public Instance Methods

add_source(src) click to toggle source
# File lib/reapack/index/version.rb, line 68
def add_source(src)
  src.make_node @node

  @dirty = true
end
author() click to toggle source
# File lib/reapack/index/version.rb, line 21
def author
  @node[AUTHOR].to_s
end
author=(new_author) click to toggle source
# File lib/reapack/index/version.rb, line 25
def author=(new_author)
  new_author ||= String.new

  return if author == new_author

  if new_author.empty?
    @node.remove_attribute AUTHOR
  else
    @node[AUTHOR] = new_author
  end

  @dirty = true
end
changelog=(new_text) click to toggle source
# File lib/reapack/index/version.rb, line 17
def changelog=(new_text)
  @changelog.text = new_text
end
modified?() click to toggle source
Calls superclass method ReaPack::Index::NamedNode#modified?
# File lib/reapack/index/version.rb, line 13
def modified?
  super || @changelog.modified?
end
replace_sources() { || ... } click to toggle source
# File lib/reapack/index/version.rb, line 54
def replace_sources
  was_dirty = @dirty

  old_sources = hash_sources children(Source::TAG)
    .each {|node| node.remove }

  yield

  new_sources = hash_sources children(Source::TAG)
  @dirty = old_sources != new_sources unless was_dirty

  raise Error, 'no files provided' if new_sources.empty?
end
time() click to toggle source
# File lib/reapack/index/version.rb, line 39
def time
  Time.parse @node[TIME] if @node.has_attribute? TIME
end
time=(new_time) click to toggle source
# File lib/reapack/index/version.rb, line 43
def time=(new_time)
  return if new_time == time
  if new_time.nil?
    @node.remove_attribute TIME
  else
    @node[TIME] = new_time.utc.iso8601
  end

  @dirty = true
end

Private Instance Methods

hash_sources(nodes) click to toggle source
# File lib/reapack/index/version.rb, line 75
def hash_sources(nodes)
  nodes.map {|node|
    [node[Source::PLATFORM] || 'all', node[Source::FILE], node.content]
  }
end