Code cleanup

This commit is contained in:
Quentin Snow 2023-01-17 13:47:36 -06:00
parent ea057e7401
commit c036cc43dd
8 changed files with 62 additions and 39 deletions

View File

@ -3,5 +3,23 @@ project(budget)
set(CMAKE_CXX_STANDARD 20)
add_executable(${PROJECT_NAME} src/main.cpp
src/optHandlers/mainOptHandler.h src/optHandlers/mainOptHandler.cpp src/optHandlers/operation.cpp src/optHandlers/operation.h src/optHandlers/accountOperation.cpp src/optHandlers/accountOperation.h src/optHandlers/createOperation.cpp src/optHandlers/createOperation.h src/optHandlers/earnOperation.cpp src/optHandlers/earnOperation.h src/optHandlers/PaymentOperation.cpp src/optHandlers/PaymentOperation.h)
set(SOURCES
src/main.cpp
src/optHandlers/mainOptHandler.cpp
src/optHandlers/operation.cpp
src/optHandlers/accountOperation.cpp
src/optHandlers/createOperation.cpp
src/optHandlers/earnOperation.cpp
src/optHandlers/PaymentOperation.cpp
)
set(HEADERS
src/optHandlers/mainOptHandler.h
src/optHandlers/operation.h
src/optHandlers/accountOperation.h
src/optHandlers/createOperation.h
src/optHandlers/earnOperation.h
src/optHandlers/PaymentOperation.h
)
add_executable(${PROJECT_NAME} ${SOURCES} ${HEADERS})

View File

@ -1,4 +1,5 @@
Output of budget.
```
Usage:
budget <action> [options] ...
@ -28,9 +29,11 @@ Payment Options: -v [-drD]
```
Arguments are processed like blocks with each one terminated by the next Action. For example
```
budget -cAcct -eAcct -v10.00 -r"./receipt.pdf" -pAcct -v5.50 -r"./payment.pdf"
````
Does the following in order:
Creates an account named Acct with no description.
Earns 10.00 to it with a receipt.

View File

@ -11,7 +11,7 @@
#include "operation.h"
namespace Budget::OptHandlers {
class PaymentOperation : public Operation{
class PaymentOperation : public Operation {
public:
void commit() override;

View File

@ -9,7 +9,7 @@
#include "operation.h"
namespace Budget::OptHandlers {
class CreateOperation : public Operation{
class CreateOperation : public Operation {
public:
void commit() override;

View File

@ -10,7 +10,7 @@
#include <ctime>
namespace Budget::OptHandlers {
class EarnOperation : public Operation{
class EarnOperation : public Operation {
public:
void commit() override;

View File

@ -12,12 +12,12 @@
using namespace Budget::OptHandlers;
MainOptHandler::MainOptHandler(const std::vector<char *> &_argv) : argv(_argv){
MainOptHandler::MainOptHandler(const std::vector<char *> &_argv) : argv(_argv) {
struct option actionLongOpts[] = {
{"help", no_argument, nullptr, 'h'},
{"account", required_argument, nullptr, 'a'},
{"create", required_argument, nullptr, 'c'},
{"earn", required_argument, nullptr, 'e'},
{"create", required_argument, nullptr, 'c'},
{"earn", required_argument, nullptr, 'e'},
{"payment", required_argument, nullptr, 'p'}
};
@ -53,16 +53,16 @@ MainOptHandler::MainOptHandler(const std::vector<char *> &_argv) : argv(_argv){
void MainOptHandler::accountOptHandler(std::string account) {
struct option accountLongOpts[] = {
{"help", no_argument, nullptr, 'h'},
{"account", required_argument, nullptr, 'a'},
{"create", required_argument, nullptr, 'c'},
{"earn", required_argument, nullptr, 'e'},
{"payment", required_argument, nullptr, 'p'},
{"help", no_argument, nullptr, 'h'},
{"account", required_argument, nullptr, 'a'},
{"create", required_argument, nullptr, 'c'},
{"earn", required_argument, nullptr, 'e'},
{"payment", required_argument, nullptr, 'p'},
{"delete", no_argument, nullptr, 'd'},
{"force-delete", no_argument, nullptr, 'F'},
{"value", no_argument, nullptr, 'v'},
{"description", no_argument, nullptr, 'D'},
{"delete", no_argument, nullptr, 'd'},
{"force-delete", no_argument, nullptr, 'F'},
{"value", no_argument, nullptr, 'v'},
{"description", no_argument, nullptr, 'D'},
};
auto acctOperation = std::make_unique<AccountOperation>();
@ -108,11 +108,11 @@ void MainOptHandler::accountOptHandler(std::string account) {
void MainOptHandler::createOptHandler(std::string account) {
struct option createLongOpts[] = {
{"help", no_argument, nullptr, 'h'},
{"account", required_argument, nullptr, 'a'},
{"create", required_argument, nullptr, 'c'},
{"earn", required_argument, nullptr, 'e'},
{"payment", required_argument, nullptr, 'p'},
{"help", no_argument, nullptr, 'h'},
{"account", required_argument, nullptr, 'a'},
{"create", required_argument, nullptr, 'c'},
{"earn", required_argument, nullptr, 'e'},
{"payment", required_argument, nullptr, 'p'},
{"description", required_argument, nullptr, 'd'},
};
@ -150,11 +150,11 @@ void MainOptHandler::createOptHandler(std::string account) {
void MainOptHandler::earnOptHandler(std::string account) {
struct option earnLongOpts[] = {
{"help", no_argument, nullptr, 'h'},
{"account", required_argument, nullptr, 'a'},
{"create", required_argument, nullptr, 'c'},
{"earn", required_argument, nullptr, 'e'},
{"payment", required_argument, nullptr, 'p'},
{"help", no_argument, nullptr, 'h'},
{"account", required_argument, nullptr, 'a'},
{"create", required_argument, nullptr, 'c'},
{"earn", required_argument, nullptr, 'e'},
{"payment", required_argument, nullptr, 'p'},
{"value", required_argument, nullptr, 'v'},
{"description", required_argument, nullptr, 'd'},
@ -221,11 +221,11 @@ void MainOptHandler::earnOptHandler(std::string account) {
void MainOptHandler::paymentOptHandler(std::string account) {
struct option paymentLongOpts[] = {
{"help", no_argument, nullptr, 'h'},
{"account", required_argument, nullptr, 'a'},
{"create", required_argument, nullptr, 'c'},
{"earn", required_argument, nullptr, 'e'},
{"payment", required_argument, nullptr, 'p'},
{"help", no_argument, nullptr, 'h'},
{"account", required_argument, nullptr, 'a'},
{"create", required_argument, nullptr, 'c'},
{"earn", required_argument, nullptr, 'e'},
{"payment", required_argument, nullptr, 'p'},
{"value", required_argument, nullptr, 'v'},
{"description", required_argument, nullptr, 'd'},

View File

@ -11,24 +11,25 @@
#include <memory>
#include "operation.h"
namespace Budget::OptHandlers{
class MainOptHandler {
namespace Budget::OptHandlers {
class MainOptHandler {
public:
explicit MainOptHandler(const std::vector<char *> &argv);
void help();
std::queue<std::unique_ptr<Operation>> operations;
private:
void accountOptHandler(std::string account);
void createOptHandler(std::string account);
void earnOptHandler(std::string account);
void paymentOptHandler(std::string account);
const std::vector<char*> &argv;
const std::vector<char *> &argv;
};
}

View File

@ -9,6 +9,7 @@ namespace Budget::OptHandlers {
class Operation {
public:
virtual void commit() = 0;
struct Flags {
};
};