[Pkg] The Trunk: Chronology-Core-ul.8.mcz

commits at source.squeak.org commits at source.squeak.org
Mon Mar 13 14:37:35 UTC 2017


Levente Uzonyi uploaded a new version of Chronology-Core to project The Trunk:
http://source.squeak.org/trunk/Chronology-Core-ul.8.mcz

==================== Summary ====================

Name: Chronology-Core-ul.8
Author: ul
Time: 13 March 2017, 3:46:52.743985 am
UUID: 9ba2069f-e11f-400b-9178-8d4d62cf3951
Ancestors: Chronology-Core-bf.7

SortedCollection Whack-a-mole

=============== Diff against Chronology-Core-bf.7 ===============

Item was changed:
  ----- Method: Time class>>condenseBunches: (in category 'general inquiries') -----
  condenseBunches: aCollectionOfSeconds
  	| secArray now out pause prev bunchEnd |
  	"Identify the major intervals in a bunch of numbers.  
  	Each number is a seconds since 1901 that represents a date and time.
  	We want the last event in a bunch.  Return array of seconds for:
  	
  	Every event in the last half hour.
  		Every bunch separated by 30 min in the last 24 hours.
  	
  	Every bunch separated by two hours before that."
  
  	"Time condenseBunches: 
  		(#(20 400 401  20000 20200 20300 40000 45000  200000 201000 202000) 
  			collect: [ :tt | self totalSeconds - tt])
  "
  
+ 	secArray := aCollectionOfSeconds sorted.
- 	secArray := aCollectionOfSeconds asSortedCollection.
  	pause := 1.
  	now := self totalSeconds.
  	out := OrderedCollection new.
  	prev := 0.
  	bunchEnd := nil.
  	secArray reverseDo: [:secs | | ago | "descending"
  		ago := now - secs.
  		ago > (60*30) ifTrue: [pause := "60*30" 1800].
  		ago > (60*60*24) ifTrue: [pause := "60*120" 7200].
  		ago - prev >= pause ifTrue: [out add: bunchEnd.  bunchEnd := secs].
  		prev := ago].
  	out add: bunchEnd.
  	out removeFirst.
  	^ out
  !



More information about the Packages mailing list