andrewkeller / realbasic-common-kfs-bsd Goto Github PK
View Code? Open in Web Editor NEWOpen-source common code for the language REALbasic.
Home Page: http://kellerfarm.com/kfsproducts/opensource/rbcommon/
License: Other
Open-source common code for the language REALbasic.
Home Page: http://kellerfarm.com/kfsproducts/opensource/rbcommon/
License: Other
This is the REALbasic Common KFS BSD library. LIBRARY CONTENTS The purpose of this repository is to provide additional classes and functionality to the REALbasic language. This library is setup as a GUI application, where the library code is in the Common folder. The purpose of the library application is to run the library's unit tests. In addition to some individual useful functions, this library also contains the following classes and frameworks: - AutoDeletingFolderItemKFS - A FolderItem that automatically deletes itself when nothing else references it. - AutoreleaseStubKFS - A simple class that executes a given delegate when it get deallocated. Can greatly simplify cleanup code in some cases. - BigStringKFS - A String class that automatically swaps to disk with large strings, and seamlessly works with Strings, BinaryStreams, MemoryBlocks, and FolderItems. - ClosuresKFS - A class that generates closures around delegates. - DataChainKFS - A simple class that adds stack and queue functionality. - DurationKFS - A class that represents a measure of time accurate to microseconds and with a ceiling of a few hundred centuries. - DeletePoolKFS - A class that deletes things asynchronously. - LinearArgDesequencerKFS - A class that assists in parsing command-line arguments. - MainThreadInvokerKFS - A class that invokes a delegate in the main thread. - NodeKFS - Not much more than a data structure that aids in creating other data structures. - ProgressDelegateKFS - A class that allows for easy calculation of overall progress in hierarchal or parallel algorithms. - PropertyListKFS - A class similar to the Dictionary except that it is designed for trees of data. - UnitTestArbiterKFS, UnitTestBaseClassKFs, UnitTestExceptionKFS, UnitTestWindowKFS - A unit testing framework for REALbasic. REVISION USAGE In this library, the revision tags are used to specify how much of a change occurred between any two revisions. Revisions can have up to 3 segments. If the third segment changes, then something very basic changed, and you will likely be able to update to the newer revision without modification of your own code. If the second segment changes, then the usage or behavior of something changed. Depending on the situation, you might or might not need to update code in the parent project. If the first segment changes, then a file was added or deleted in the library, and you will need to re-add the library to your project. REPOSITORY USAGE If you would simply like a copy of the library, and do not want version control, then simply open up the library application, and copy-and-paste the entire "Common" folder from the library's project tab into your project. It might then be useful to rename it to something memorable, like RB Common KFS BSD. If you would like to use this library in conjunction with version control, then you should know that this library is designed to be used with a host project that is saved in REAL Studio's Version Control format. The following command should successfully add this repository as a submodule in your repository, assuming you are using Git: git submodule add git://github.com/andrewkeller/REALbasic-Common-KFS-BSD.git "Libraries/RB Common KFS BSD" Once this library has been successfully cloned, simply drag the entire Libraries folder into your project (or just the RB Common KFS BSD folder, if you already have another library). Then, in the project editor, inside the RB Common KFS BSD folder, delete everything except the Common folder. Your project editor should now look something like this: Project Editor | |- Foo.rbres |- Foo.rbvcp |- Local/ | |- App.rbbas | |- Build Automation.rbbas | |- MenuBar1.rbmnu | |- Window1.rbfrm | |- RB Common KFS BSD/ |- Common/ |- Lots |- And |- Lots |- Of |- Classes At this point, you should have full access to the whole library from your main project. See http://kellerfarm.com/life/rbvcp/ for a more detailed article on this approach to using libraries with REAL Studio.
StatusLogGlobalsKFS does not contain any notes that describe how it is used, nor does it contain its license.
LinearCLArgumentKFS does not contain any notes that describe how it is used, nor does it contain its license.
StatusLoggerKFS does not contain any notes that describe how it is used, nor does it contain its license.
The AutoDeletingFolderItemKFS class has the ability to replace the SwapGlobalsKFS module. One of the features of the AutoDeletingFolderItemKFS class is that you don't need to consciously support it - it just works - so that means that the change to the BigStringKFS class is only to drop support of the SwapGlobalsKFS module.
The BigStringKFS class is the last thing to use the SwapGlobalsKFS module. Separately, the SwapGlobalsKFS module is the last thing to use the Logging framework. So, with this one change, we can finally depreciate the last of the old buggy code written before this library was created.
HierarchalDictionaryFunctionsKFS does not contain any notes that describe how it is used, nor does it contain its license.
No test cases currently exist for the DescriptionKFS method (part of BSDGlobalsKFS_String).
Don't forget its counterpart, ObjectDescriptionKFS.
PropertyListKFS does not contain any notes that describe how it is used, nor does it contain its license.
The documentation for the BSDGlobalsKFS_Logic module is missing an entry for the ThreadMethodKFS delegate.
frmLogDetailsKFS does not contain any notes that describe how it is used, nor does it contain its license.
It would be nice if there was a framework for supporting Database Change Requests (DCRs).
Optimal functionality:
An ordered set of DCRs should be able to be applied to a database just like a set of commits is applied to a working tree. This should work with both existing databases and with a database that contains literally nothing.
An existing database should be able to be compared to an ordered set of DCRs, and the version of the database schema (and possibly data) should be able to be determined relative to a position in the set of DCRs.
DataChainKFS does not contain any notes that describe how it is used, nor does it contain its license.
The existing test case for the LinearArgDesequencerKFS class needs to be converted to use the unit testing framework.
The ShellPathKFS function (part of BSDGlobalsKFS_FileIO) needs test cases.
SwapGlobalsKFS does not contain any notes that describe how it is used, nor does it contain its license.
UnitTestBaseClassKFS does not contain any notes that describe how it is used, nor does it contain its license.
The EqualsKFS function (part of BSDGlobalsKFS_FileIO) needs test cases.
Exception classes should either end with KFS, or they should not. Pick one.
OrderedDictionaryKFS does not contain sufficient notes that describe how it is used, nor does it contain its license.
InvalidPathException does not contain any notes that describe how it is used, nor does it contain its license.
ShellKFS does not contain any notes that describe how it is used, nor does it contain its license.
The facilities for reading and writing Apple Property List files cannot handle property lists with a terminal root.
When analyzing the project for errors or warnings, the number of warnings found should be minimized, so that the list isn't so long that you just ignore it.
At the time of writing this, there are 64 warnings. I'm not weeding through that list to find specific items.
Open Item: Which warnings should be enabled while gauging the number of warnings? All of them, or the default set?
XgridBatchFileKFS does not contain any notes that describe how it is used, nor does it contain its license.
PropertyListGlobalsKFS does not contain any notes that describe how it is used, nor does it contain its license.
The EqualsKFS function (part of BSDGlobalsKFS_FileIO) uses deprecated methods to do its work. It should be updated to work without using deprecated methods.
Yes, I know it's a helper class and doesn't really deserve to be documented on its own, but there should at least be a page for it.
ProgressDelegateKFS does not contain any notes that describe how it is used, nor does it contain its license.
The GetStandardAccessErrorMessageKFS function (part of BSDGlobalsKFS_FileIO) needs test cases.
The logging framework is known to have some pretty significant bugs, and so many of my programming paradigms have changed since I wrote that code that fixing the bugs might result in a complete rewrite of the framework.
Since nothing besides the SwapGlobalsKFS module (which is scheduled for deprecation) uses the Logging Framework, I say we deprecate the Logging Framework.
No test cases currently exist for the EndOfLineSetKFS method (part of BSDGlobalsKFS_String).
The AutoDeletingFolderItemKFS class does almost exactly the same thing as the SwapGlobalsKFS module, except that it takes less effort to be functionally perfect.
On top of this, deprecating the SwapGlobalsKFS module would allow us to deprecate the Logging Framework.
XgridJobKFS does not contain any notes that describe how it is used, nor does it contain its license.
The documentation for the BSDGlobalsKFS_String module is missing entries for the ObjectDescriptionKFS and ObjectTypeDescriptionKFS methods.
The NextSerialNameKFS function (part of BSDGlobalsKFS_FileIO) needs test cases.
PropertyListKFS_XML1 does not contain any notes that describe how it is used, nor does it contain its license.
The DeleteKFS method (part of BSDGlobalsKFS_FileIO) needs test cases.
StatusLogQueryKFS does not contain any notes that describe how it is used, nor does it contain its license.
The NextSerialNumberKFS function (part of BSDGlobalsKFS_FileIO) needs test cases.
UnitTestGlobalsKFS does not contain any notes that describe how it is used, nor does it contain its license.
UnitTestExceptionKFS does not contain any notes that describe how it is used, nor does it contain its license.
Is it possible to add test cases for the ModificationHintCDL method (part of BSDGlobalsKFS_UserInterface)?
XgridTaskKFS does not contain any notes that describe how it is used, nor does it contain its license.
StatusLogEntryKFS does not contain any notes that describe how it is used, nor does it contain its license.
BigStringKFS does not contain any notes that describe how it is used, nor does it contain its license.
No test cases currently exist for the TypeDescriptionKFS method (part of BSDGlobalsKFS_String).
Don't forget its counterpart, ObjectTypeDescriptionKFS.
frmLogConsoleKFS does not contain any notes that describe how it is used, nor does it contain its license.
NodeKFS does not contain any notes that describe how it is used, nor does it contain its license.
The GetFolderItemKFS function (part of BSDGlobalsKFS_FileIO) needs test cases.
Some items on the index page of the documentation are out of order.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.