class ObjectiveRelease::Release

Public Instance Methods

update_bundle_version(plist_file) click to toggle source
# File lib/objective_release/release.rb, line 3
def update_bundle_version(plist_file)
  parsed_plist = parse_plist(plist_file)
  version_string = parsed_plist['CFBundleVersion']
  parsed_plist['CFBundleVersion'] = increment_version(version_string)
  exported_plist = Plist::Emit.dump(parsed_plist)
  export_plist(plist_file, exported_plist)
end
update_release_notes(release_notes_file) click to toggle source
# File lib/objective_release/release.rb, line 11
def update_release_notes(release_notes_file)
  release_notes = File.read(release_notes_file)
  
  version_number = release_notes.split("\n").first
  new_version_number = increment_version(version_number)
  
  last_deployed_sha = release_notes.split("\n")[2].split.first
  system "git log #{last_deployed_sha}..HEAD --pretty=oneline > /tmp/commit-log.txt"
  latest_commits = File.read(File.expand_path("/tmp/commit-log.txt"))
  
  new_release_notes = latest_commits.insert(0, "v#{new_version_number}\n\n")
  export_release_notes(release_notes_file, new_release_notes)
end

Private Instance Methods

export_plist(file, contents) click to toggle source
# File lib/objective_release/release.rb, line 45
def export_plist(file, contents)
  contents.gsub!("Apple Computer", "Apple")
  File.open(file, 'w+') do |f|
    f.write contents
  end
end
export_release_notes(file, contents) click to toggle source
# File lib/objective_release/release.rb, line 52
def export_release_notes(file, contents)
  File.open(file, 'w+') do |f|
    f.write contents
  end
end
increment_version(version_string) click to toggle source
# File lib/objective_release/release.rb, line 35
def increment_version(version_string)
  if version_string =~ /(\d+)\.(\d+)/
    major = $1.to_i
    minor = $2.to_i
    return "#{major}.#{zerofill(minor + 1)}"
  else
    raise "Version number could not be incremented."
  end
end
parse_plist(plist) click to toggle source
# File lib/objective_release/release.rb, line 27
def parse_plist(plist)
  Plist::parse_xml plist
end
zerofill(number) click to toggle source
# File lib/objective_release/release.rb, line 31
def zerofill(number)
  sprintf("%02d", number)
end