" I manage instagram URLs information. InstagramUrl newURL: 'https://instagram.com/restOfURL' " Class { #name : 'InstagramUrl', #superclass : 'Object', #instVars : [ 'url' ], #category : 'Instagram', #package : 'Instagram' } { #category : 'instance creation' } InstagramUrl class >> newURL: url [ | instance | instance := self new. instance url: (instance urlCheck: url). ^ instance ] { #category : 'initialization' } InstagramUrl >> initialize [ | initial | initial := 'https://www.instagram.com' asUrl. super initialize. self url: initial. ] { #category : 'opening' } InstagramUrl >> openWithoutTracking [ WebBrowser openOn: self urlWithoutTracking ] { #category : 'accessing' } InstagramUrl >> url [ ^ url ] { #category : 'accessing' } InstagramUrl >> url: aURL [ url := aURL ] { #category : 'testing' } InstagramUrl >> urlCheck: aURLString [ | urlCheck | (aURLString includesSubstring: 'instagram.com') ifFalse: [ UIManager default inform: '" ', aURLString, ' " it''s not an instagram URL.'. ^ self url]. urlCheck := aURLString asUrl. urlCheck hasHost ifFalse: [ urlCheck host: urlCheck segments first. urlCheck removeFirstPathSegment. ]. urlCheck hasScheme ifFalse: [ urlCheck scheme: 'https' ]. ^ urlCheck ] { #category : 'accessing' } InstagramUrl >> urlWithoutTracking [ ^ self url queryRemoveAll; asStringOrText ]