summaryrefslogtreecommitdiff
path: root/pharo-mooc/tiny-chat/src/TinyChat/TCMessage.class.st
diff options
context:
space:
mode:
Diffstat (limited to 'pharo-mooc/tiny-chat/src/TinyChat/TCMessage.class.st')
-rw-r--r--pharo-mooc/tiny-chat/src/TinyChat/TCMessage.class.st73
1 files changed, 73 insertions, 0 deletions
diff --git a/pharo-mooc/tiny-chat/src/TinyChat/TCMessage.class.st b/pharo-mooc/tiny-chat/src/TinyChat/TCMessage.class.st
new file mode 100644
index 0000000..64962a9
--- /dev/null
+++ b/pharo-mooc/tiny-chat/src/TinyChat/TCMessage.class.st
@@ -0,0 +1,73 @@
+Class {
+ #name : 'TCMessage',
+ #superclass : 'Object',
+ #instVars : [
+ 'sender',
+ 'text',
+ 'separator'
+ ],
+ #category : 'TinyChat',
+ #package : 'TinyChat'
+}
+
+{ #category : 'instance creation' }
+TCMessage class >> from: aSender text: aText [
+
+ ^ self new sender: aSender; text: aText; yourself
+]
+
+{ #category : 'instance creation' }
+TCMessage class >> fromString: aString [
+ ^ self new
+ fromString: aString;
+ yourself
+]
+
+{ #category : 'initialization' }
+TCMessage >> fromString: aString [
+ "Compose a message from a string of this form 'sender>message'."
+
+ | items |
+ items := aString substrings: separator.
+ self sender: items first.
+ self text: items second.
+]
+
+{ #category : 'initialization' }
+TCMessage >> initialize [
+ super initialize.
+ separator := '>'
+]
+
+{ #category : 'printing' }
+TCMessage >> printOn: aStream [
+ "Generate a string representation of the receiver based on its instance variables."
+
+ aStream
+ << self sender; << separator;
+ << self text; << String crlf
+]
+
+{ #category : 'accessing' }
+TCMessage >> sender [
+
+ ^ sender
+]
+
+{ #category : 'accessing' }
+TCMessage >> sender: anObject [
+
+ sender := anObject
+]
+
+{ #category : 'accessing' }
+TCMessage >> text [
+
+ ^ text
+]
+
+{ #category : 'accessing' }
+TCMessage >> text: anObject [
+
+ text := anObject
+]