Add ROT-13 conversion
This commit is contained in:
		
							parent
							
								
									6a583eee38
								
							
						
					
					
						commit
						ed87b42839
					
				
					 2 changed files with 27 additions and 0 deletions
				
			
		
							
								
								
									
										25
									
								
								src/app/converter/rot13converter.ts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								src/app/converter/rot13converter.ts
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,25 @@ | |||
| import {Converter} from './converter'; | ||||
| 
 | ||||
| export class ROT13Converter implements Converter { | ||||
|   getDisplayname(): string { | ||||
|     return 'Perform ROT-13'; | ||||
|   } | ||||
| 
 | ||||
|   getId(): string { | ||||
|     return 'rot13convert'; | ||||
|   } | ||||
| 
 | ||||
|   convert(input: string): string { | ||||
|     try { | ||||
|       const inChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'; | ||||
|       const outChars = 'NOPQRSTUVWXYZABCDEFGHIJKLMnopqrstuvwxyzabcdefghijklm'; | ||||
|       const translate = c => { | ||||
|         const charIndex = inChars.indexOf(c); | ||||
|         return charIndex > -1 ? outChars[charIndex] : c; | ||||
|       }; | ||||
|       return input.split('').map(translate).join(''); | ||||
|     } catch (exception) { | ||||
|       throw new Error('Could not perform ROT-13 conversion. Maybe corrupt input?'); | ||||
|     } | ||||
|   } | ||||
| } | ||||
|  | @ -19,6 +19,7 @@ import {PunycodeEncoder} from './converter/punycodeencoder'; | |||
| import {PunycodeDecoder} from './converter/punycodedecoder'; | ||||
| import {UTF8Encoder} from './converter/utf8encoder'; | ||||
| import {UTF8Decoder} from './converter/utf8decoder'; | ||||
| import {ROT13Converter} from './converter/rot13converter'; | ||||
| 
 | ||||
| @Injectable() | ||||
| export class ConverterRegistryService { | ||||
|  | @ -60,6 +61,7 @@ export class ConverterRegistryService { | |||
|     this.registerConverter(new PunycodeDecoder(this.wrapper)); | ||||
|     this.registerConverter(new UTF8Encoder(this.wrapper)); | ||||
|     this.registerConverter(new UTF8Decoder(this.wrapper)); | ||||
|     this.registerConverter(new ROT13Converter()); | ||||
|   } | ||||
| 
 | ||||
|   private registerConverter(converter: Converter): void { | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue