Sha256: 7f7e976bb9c4af80516337196e9424213b708af9cab228b5fcb80c7ca7dc6666
Contents?: true
Size: 1.57 KB
Versions: 4
Compression:
Stored size: 1.57 KB
Contents
require 'svn_commands' require 'digg_module' class Changeset include Comparable attr_reader :revision attr_accessor :wcBasePath, :releaseBranch def initialize(rev, wc_base_path=SvnCommands::DIGG_DEFAULT_WC_PATH, release_branch="9.4") @revision = Integer(rev) @modified = {} @affectedModules = {} self.wcBasePath=wc_base_path self.releaseBranch=release_branch end def modifiedPaths(relativeStartPath = self.wcBasePath) @modified[relativeStartPath] ||= begin SvnCommands::Log.new(relativeStartPath,"-r #{self.revision}", true).entries.first.paths.map {|p| p.to_s} rescue [] end end def affectedModulesbak(modulePath = "LOLz/trunk") @affectedModules[modulePath] ||= self.modifiedPaths(modulePath).inject(Set.new) { |memo, modifiedPath| (modifiedPath =~ /#{modulePath}\/([^\/]*)/) ? memo << DiggModule.new($1, self.wcBasePath, self.releaseBranch) : memo } end def affectedModules(modulePath = "LOLz/trunk") @affectedModules[modulePath] ||= begin self.modifiedPaths(modulePath).inject(Set.new) { |memo, modifiedPath| if modifiedPath =~ /#{modulePath}\/([^\/]*)/ moduleName = $1 unless (memo.detect{ |m| m.moduleName == moduleName }) memo << DiggModule.new($1, self.wcBasePath, self.releaseBranch) end end memo } end end def to_s "r#{revision}" end def <=>(other) self.revision <=> other.revision end def hash self.revision.hash end def eql?(other) self.revision == other.revision end end
Version data entries
4 entries across 4 versions & 1 rubygems