| 
									
										
										
										
											2016-01-20 19:14:46 -02:00
										 |  |  | import 'dart:async'; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-03-25 16:03:53 -07:00
										 |  |  | import 'package:angular2/core.dart'; | 
					
						
							| 
									
										
										
										
											2016-01-27 15:51:50 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-01-20 19:14:46 -02:00
										 |  |  | @Injectable() | 
					
						
							|  |  |  | class LoggerService { | 
					
						
							|  |  |  |   List<String> logs = []; | 
					
						
							| 
									
										
										
										
											2016-05-06 06:17:34 -07:00
										 |  |  |   String _prevMsg = ''; | 
					
						
							|  |  |  |   int _prevMsgCount = 1; | 
					
						
							| 
									
										
										
										
											2016-01-20 19:14:46 -02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-06 06:17:34 -07:00
										 |  |  |   void log(String msg) { | 
					
						
							|  |  |  |     if (msg == _prevMsg) { | 
					
						
							|  |  |  |       // Repeat message; update last log entry with count.
 | 
					
						
							|  |  |  |       logs[logs.length - 1] = "$msg (${_prevMsgCount += 1}x)"; | 
					
						
							|  |  |  |     } else { | 
					
						
							|  |  |  |       // New message; log it.
 | 
					
						
							|  |  |  |       _prevMsg = msg; | 
					
						
							|  |  |  |       _prevMsgCount = 1; | 
					
						
							|  |  |  |       logs.add(msg); | 
					
						
							| 
									
										
										
										
											2016-01-20 19:14:46 -02:00
										 |  |  |     } | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-06 06:17:34 -07:00
										 |  |  |   void clear() => logs.clear(); | 
					
						
							| 
									
										
										
										
											2016-01-20 19:14:46 -02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-06 06:17:34 -07:00
										 |  |  |   // schedules a view refresh to ensure display catches up
 | 
					
						
							| 
									
										
										
										
											2016-01-20 19:14:46 -02:00
										 |  |  |   tick() => new Future(() {}); | 
					
						
							|  |  |  | } |