Changeset 160 for ruby/trunk/lib/models/rm/common/change_control.rb
- Timestamp:
- Jul 7, 2009, 9:45:38 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
ruby/trunk/lib/models/rm/common/change_control.rb
r159 r160 41 41 @audit = audit 42 42 end 43 end44 45 class Versioned_Object46 43 end 47 44 … … 73 70 end 74 71 72 # remove hard coding of lifecycle 75 73 def lifcycle_state=(lifecycle_state) 76 74 if lifecycle_state.nil? || … … 156 154 end 157 155 end 156 157 class Versioned_Object 158 attr_reader :uid, :owner_id, :time_created, :all_versions 159 160 def initialize(args = { }) 161 self.uid = args[:uid] 162 self.owner_id = args[:owner_id] 163 self.time_created = args[:time_created] 164 self.all_versions = args[:all_versions] 165 end 166 167 def uid=(uid) 168 raise ArgumentError, 'uid is mandatory' if uid.nil? 169 @uid = uid 170 end 171 172 def owner_id=(owner_id) 173 raise ArgumentError, 'owner_id is mandatory' if owner_id.nil? 174 @owner_id = owner_id 175 end 176 177 def time_created=(time_created) 178 if time_created.nil? 179 raise ArgumentError, 'time_created is mandatory' 180 end 181 @time_created = time_created 182 end 183 184 def all_versions=(all_versions) 185 if all_versions.nil? || all_versions.size < 0 186 raise ArgumentError, 'version count invalid' 187 end 188 @all_versions = all_versions 189 end 190 191 def all_version_ids 192 ids = [] 193 @all_versions.each{|id| ids << id.uid} 194 return ids 195 end 196 197 def version_count 198 return all_versions.size 199 end 200 201 def has_version_id?(a_ver_id) 202 raise ArgumentError, 'argument is mandatory' if a_ver_id.nil? 203 return self.all_version_ids.include?(a_ver_id) 204 end 205 206 def is_original_version?(a_ver_id) 207 if a_ver_id.nil? || !self.has_version_id?(a_ver_id) 208 raise ArgumentError, 'invalid a_ver_id' 209 end 210 return @all_versions[self.all_version_ids.index(a_ver_id)].instance_of? Original_Version 211 end 212 213 def has_version_at_time?(a_time) 214 raise ArgumentError, 'argument mandatory' if a_time.nil? 215 @all_versions.each do |ver| 216 if ver.commit_audit.time_committed == a_time 217 return true 218 end 219 end 220 return false 221 end 222 223 def version_with_id(a_ver_id) 224 if a_ver_id.nil? || !self.has_version_id?(a_ver_id) 225 raise ArgumentError, 'argument invalid' 226 end 227 return @all_versions[self.all_version_ids.index(a_ver_id)] 228 end 229 230 def version_at_time(a_time) 231 if a_time.nil? || !self.has_version_at_time?(a_time) 232 raise ArgumentError, 'argument invalid' 233 end 234 @all_versions.each do |ver| 235 if ver.commit_audit.time_committed == a_time 236 return ver 237 end 238 end 239 end 240 241 def latest_version 242 time_sorted_version = @all_versions.sort do |a,b| 243 a.commit_audit.time_committed <=> b.commit_audit.time_committed 244 end 245 return time_sorted_version.last 246 end 247 248 def latest_trunk_version 249 trunk_versions = [ ] 250 @all_versions.each do |ver| 251 if ver.uid.version_tree_id.trunk_version == '1' 252 trunk_versions << ver 253 end 254 end 255 sorted_trunk_version = trunk_versions.sort do |a,b| 256 a.commit_audit.time_committed <=> b.commit_audit.time_committed 257 end 258 return sorted_trunk_version.last 259 end 260 261 def trunk_lifecycle_state 262 return self.latest_trunk_version.lifecycle_state 263 end 264 265 def revision_history 266 revision_history_items = [ ] 267 @all_versions.each do |ver| 268 audits = [ ] 269 if ver.instance_of? Original_Version 270 audits << ver.attestations 271 end 272 audits << ver.commit_audit 273 revision_history_items << Revision_History_Item.new( 274 :audits => audits, 275 :version_id => ver.uid) 276 end 277 return Revision_History.new(revision_history_items) 278 end 279 280 def commit_original_version(args={ }) 281 @all_versions << Original_Version.new(:uid => args[:uid], 282 :preceding_version_uid => args[:preceding_version_uid], 283 :contribution => args[:contribution], 284 :commit_audit => args[:commit_audit], 285 :lifecycle_state => args[:lifecycle_state], 286 :data => args[:data], 287 :attestations => args[:attestations], 288 :signature => args[:signature]) 289 end 290 end 158 291 end # of Change_Control 159 292 end # of Common
Note:
See TracChangeset
for help on using the changeset viewer.