top of page
CommandLine.png

LeightWeight Command Line Parser

Optionlar

Optionlar yapılacak parse işlemi için ayarlamaları kapsamaktadır. Burada parse edilen argumentin değeri alınarak oluşturulan Option classında property lere aktarım kuralı belirlenir.

Her Option belli bir görevi yerine getirmek için tanımlanmalıdır daha fazlasını değil. Yani Optionlar birbiriyle bağlantılı olmamalıdır. Option içerisinde tanımladığınız method sadece Option içerisinde tanımladığınız property leri kullanmalıdır. Global değişkenler olmamalı.

Argumentler

Argumentler Option içerisindeki Property ve Methodları temsil etmektedir. Option içerisindeki her bir property de parse işleminde alınan argument değeri tutulur yada parse işleminde alınan argument bir mothoda denk geliyorsa Method işletilir.

Örnek Kullanım

Option Tanımlama

Aşağıda EDönüşüm için yazmış olduğum CLI uygulamasının örnek bir Option classı yer almaktadır. Bu Option sadece entegratörden bir token almak için yazılmıştır. Başka bir işlevi yoktur.

Şimdi bu Optiona biraz yakından bakalım. Öncelikle OnGetToken() methodumda kullanacağım property leri tanımladım. Oluşturulan method bir değer döndürmemektedir. Çünkü bu Option sadece bir işi yapması için yazıldı ve sadece giren değerler bulunmakta.

Oluşturduğum classın bir Option olmasını sağlayan özellikler ise Attributelerdedir. Attributeler Parse edilen Argumentler ile Option classım arasındaki bağlantıyı sağlamaktadır. Yani attributeler property lerimin metadataları diyebiliriz.

Uygulama

Kullanım için ilk yapılaması gereken consol uygulamasının Main methodunda CommandLineParser sınıfından bir class üretmektir. Bu parser classına, program çalıştırıldığında gelen args parametresini ve işleteceğim Option classlarımı tanıtıyorum.

Bu classın görevi Parse işlemini yapmadan önce Option classlarından metadataları okumak. Çünkü birazdan bu metadata ları kullanarak gelen argument değerlerini Option class içerisindeki propertylere yazacak.

Run methodu artık parse işlemini yapabilirsin anlamına gelmektedir. Elimde olan metadata verileri ile Option classlarının içerisindeki propertyler doldurulur ve uygun bir Option methodunu yakaladığında bu methodu çalıştırır.

2020-03-13_12-08-32.png

Örnek Kullanım

2020-03-13_12-16-38.png

Örnek Kullanım 2

2020-03-13_13-20-28.png
bottom of page