Browse Source

Prepare library release

- increment version of library
- adjust README.md file by improving library description
Patrick-Christopher Mattulat 2 years ago
parent
commit
b6f8bbab42
4 changed files with 74 additions and 60 deletions
  1. 1 1
      CMakeLists.txt
  2. 69 55
      README.md
  3. 2 2
      include/ls_std/base/LibraryVersion.hpp
  4. 2 2
      test/cases/base/LibraryVersionTest.cpp

+ 1 - 1
CMakeLists.txt

@@ -3,7 +3,7 @@
 ##########################################################
 
 cmake_minimum_required(VERSION 3.17)
-project(ls_std VERSION 1.0.0)
+project(ls_std VERSION 2021.2.0)
 
 ##########################################################
 # Options

+ 69 - 55
README.md

@@ -1,63 +1,77 @@
-# Lynar Studios - Standard Library 1.0.0 #
+# Lynar Studios - Standard Library 2021.2.0 #
 
-This is a cross-platform standard library written in C++ which provides basic functionality and implementation, like:
+This is a cross-platform standard library written in C++ offering functionalities you'd usually miss in C++ standard library, especially if you'd search for cross-platform implementations. This library has been tested on __Windows__, __Linux__ and __MacOS__ systems.
  
-- Boxing  
-  - Double
-  - Float
-  - String
-  - Integer 
-  - Long
-  - Boolean  
-- File
-  - IReader (interface)
-  - IWriter (interface)  
-  - IStorable (interface)  
-  - Model
-  - Reader
-  - Writer
-- Minimal Reflection  
-  - Class (base)
-- Time
-  - Date
-- Logic
-  - State Machine (Model, State, Connection)
-  - IListener (Interface)
-  - Narrator  
-- Serialization
-  - ISerializable (Interface)
-  - JSON Boxing (Double, Float, String, Integer, Long, Boolean)
-  - JSON State Machine (Model, State, Connection)  
-  - JSON Event
-- JSON
-  - Marshalling
-  - Unmarshalling
-- XML
-  - Model (Document, Declaration, Node, Attribute)
-  - Reader
-  - Writer
-  - Parser  
-- Logger
-  - Model
-  - Log Level
-- Event Handling
-  - IEventSubscriber (Interface)
-  - Model
-  - Event Handler
-  - Event Manager
-- Exception
-- KV
-  - Document
-  - KV Pair
-  - Parser
-  - Reader  
-
-It has been tested on __Windows__, __Linux__ and __MacOS__ systems.
+#### Boxing ####  
+
+This library provides boxing classes for primitive data types (e.g. string, int, long, float...) to add additional functionalities for each one of them.
+ 
+#### File ####
+
+To handle file operations - or to receive information of a file - this library provides an own __File__ class implementation, which can also be passed to library implemented input or output stream classes.
+
+#### Base ####  
+
+This is a collection of very basic functionalities like a base __Class__ which provides minimal reflection like class name. Also, you have the possibility with this collection to fetch this libraries version or even handle own versions for your project.
+
+#### Time ####
+
+A __Date__ class comes with this collection, which you can use to represent a date and doing operations on it. 
+
+#### Logic ####
+
+This collection of classes provides some nice functionalities to support your project with some nice logical features, like state machines and observer pattern supporting classes.
+
+#### Serialization ####
+
+Serialization is very important nowadays to persist data. This library offers a serializable interface, which can then be implemented in your project.  
+In addition to that there is already JSON serialization-based implementation for some public library classes.
+
+#### JSON ####
+
+This library uses a transitive JSON dependency, which is in line with our license model. Many thanks to __Niels Lohmann__ for writing this nice little library.
+
+#### XML ####
+
+To handle XML files this library has an own XML parser implementation, which uses modern C++ features, such as shared pointers.
+
+#### Logger ####
+
+For logging functionality you might need for your project there is a __Logger__ class coming with this library, which is also able to handle different log level.
+
+#### Event Handling ####
+
+With this first implemented milestone of event handling this library provides functionalities for creating and firing events.
+
+#### Exception ####
+
+This library provides some basic exceptions which can be used in your project to create awareness of certain error behaviour.
+
+#### KV ####
+
+A key value file offers the possibility to store simple information pairs in a file. This library provides parsing functionalities for __.kv__ files.
 
 ### Changelog ###
 
-- Made Event class serializable
-- Added Key Value File Functionality
+#### Features ####
+
+- extended EventManager class by adding EventHandler availability check method
+- added exceptions for event management
+- extended Date class by introducing __+=__ and __-=__ operators
+- it's now possible to retrieve library version
+- added more operators to __LogLevel__ class
+- added factory interface
+
+#### Improvements ####
+
+- increased test coverage by adding more unit tests
+- improved overall error handling by adding more error checks
+- reduced overall unnecessary complexity of public classes 
+- improved naming of certain classes
+
+#### Fixes ####
+
+- add missing header files to main header file
 
 ### Documentation ###
 

+ 2 - 2
include/ls_std/base/LibraryVersion.hpp

@@ -3,7 +3,7 @@
  * Company:         Lynar Studios
  * E-Mail:          webmaster@lynarstudios.com
  * Created:         2021-05-02
- * Changed:         2021-05-24
+ * Changed:         2021-09-24
  *
  * */
 
@@ -16,7 +16,7 @@ namespace ls_std
 {
   static std::string getVersion()
   {
-    return "1.0.0";
+    return "2021.2.0";
   }
 }
 

+ 2 - 2
test/cases/base/LibraryVersionTest.cpp

@@ -3,7 +3,7 @@
  * Company:         Lynar Studios
  * E-Mail:          webmaster@lynarstudios.com
  * Created:         2021-05-02
- * Changed:         2021-05-02
+ * Changed:         2021-09-24
  *
  * */
 
@@ -28,6 +28,6 @@ namespace
 
   TEST_F(LibraryVersionTest, getVersion)
   {
-    ASSERT_STREQ("1.0.0", ls_std::getVersion().c_str());
+    ASSERT_STREQ("2021.2.0", ls_std::getVersion().c_str());
   }
 }