As I finally got the 'add_condition' to work I still needed to add in a few more tests for the other three 'dynamic' attributes, gather, link and sort.
Well I started with the easiest first 'sort' and on the 'undef' I am getting the now very familiar;
Attribute (name) is required at D:\GitHub\database-accessor\lib/Database/Accessor/Types.pm line 348
It did not take me very long to back track this one to the '_element_coerce' sub in my 'Types' class;
As this had the same sort of fall though 'if' case like '_predicate_array_or_object' I at first added my check for undef code in the final 'if' of that statement;
I have been making a lot of changes to Graphics::ColorNames lately. The module has gone too long without any maintenance, and suffered from feature bloat.
Some notable changes that are already on CPAN:
A switch to semantic versioning, e.g. v3.3.3.
Some color schemes (Netscape, HTML, Windows) have been moved to separate modules.
The Netscape and HTML schemes have been deprecated in favor of the WWW scheme.
The X scheme has been updated to the latest X-Windows colors (which includes the CSS/WWW colors).
Roadmap for the future
I am planning on making the following changes:
Removing autoloaded method names for colors.
Removing the (deprecated) tied interface, but putting that in a separate module
Moving the color schemes into the Graphics::ColorNames::Schemes namespace, but provide an option to use the old namespace.
On behalf of the development team, it brings me great pleasure to
announce the 6.d ‘Diwali’ major version release of the Official Specification of
the Raku Perl 6 programming language.
Compiler releases with 6.d as their default language version will follow their standard release scheduling (for Rakudo compiler, release process will start on 2018-11-17)
I never like taking out code but that is the first thing I had to do today. So all the code changes from yesterday have been rolled back and I still have the same problem;
Attribute (predicates) does not pass the type constraint because: Validation failed for 'Predicate' with value undef (not isa Database::Accessor::Predicate) at D:\GitHub\database-accessor\lib/Database/Accessor/Types.pm line 349#
Namely an error message that tells me nothing of where my mistake;
$da->add_condition( undef);
happened.
I take a good number of 'warn' statements throughout my 'Types' class finally find a spot where I can intercept and create a better error message.
I eventually tracked it down to the '_predicate_array_or_object' sub in the 'Types' class;
Do you want to post an article in this year’s #mojolicious #AdventCalendar? I’ve just posted a call for articles in the mailing list. You do and know things that other people want to learn about, I promise!
DBD::SQLite 1.59_03 (with SQLite 3.25.2) is a release candidate of the next stable DBD::SQLite. Notable new features by the upstream are PostgreSQL-style UPSERT (3.24.0), ALTER TABLE table RENAME COLUMN oldname TO newname (3.25.0), and window functions (3.25.0), among others.
It also contains a fix that changes how to store values in a PerlData virtual table. If you use PerlData virtual table, this may affect your applications.
I'll wait for about a month as always, and release 1.60 at the end of November if there's no blocker nor request to wait more. Thank you for patience.
Well was all ready to move onto the final documentation and distzila stage of Database::Accessor and then I ran into a few little tings when I reran the full test suite.
First there was this annoying warning;
Use of uninitialized value $error_package in string eq at \GitHub\database-accessor\lib/Database/Accessor/Roles/AllErrors.pm line 59.
a simple fix really just this;
my $on ="";
-- if ($error_package eq "Database::Accessor::Element"){
++ if (($error_package) and ($error_package eq "Database::Accessor::Element")){
$on = " Possible missing/invalid key in or near:\n"
. Dumper($Database::Accessor::Types::LAST);
}
Every year since 2009, the Perl 6 community publishes a Perl 6
advent calendar, in the form of blog posts on perl6advent.wordpress.com.
To keep up this great tradition, we need 24 blog posts, and volunteers who
write them. If you want to contribute a blog post about anything related to
Perl 6, please add your name (and potentially also a topic already) to
the schedule, and if you don't yet have a login on the advent blog, please
tell Zoffix or someone on
#perl6 IRC chat your email
address so that they can send you an invitation to Wordpress for the site.
Perl 6 advent blog posts should be finished the day before they are due, and published on midnight (UTC) of the due date as publishing date.
I finally found a way (well not a good one) to generate an even better error message to my end users. You are of course quite familiar with this type of message;
Database::Accessor add_condition Error:
The following Attribute is required: (Element->name)
With constructor hash:
{
'operator' => '=',
'left' => {
'view' => 'People',
'name' => 'last_name'
},
'right' => {
'left' => {
'name' => 'salary'
},
'right' => {
'expressionx' => '*'
},
'function' => 'LEFT'
},
'close_parentheses' => 0,
'condition' => 'AND',
'open_parentheses' => 1
}
Very hard to find out that it is the 'expressionx' that is giving us grief. With the changes I have just completed I now get
If you write any software package, you have to document it. This simple truth drives more than few developers into despair. But there is also a way to craft good documentation and make the writing of it a useful part of the development. This is the closing part about authoring a Perl 6 module and Math::Matrix in particular (part: one, two, three, and four).
Its never stop improving day here in the Moose-Pen
As I was cleaning things up today I found yet another little improvement I can do to my error messages. Right now when I have deeply buried bad item such as the 'names' in this $in_hash
I have just completed the marathon of submitting Pull Request as a part of Hacktoberfest Challenge 2018. For those, who don't know what I am talking about. Hacktoberfest Challenge is an annual event organised by Digital Ocean where you are encouraged to submit at least 5 PR to any distributions hosted on GitHub. In return you get specially designed T-shirt deliver to you anywhere in the world for FREE. It was first started in the year 2014. How did I get started? I was introduced to the challenge first by one of the blogs by Neil Bowers in the year 2015. Ever since, I haven't missed once. I am really addicted to it, to say the least.