in reply to Re^4: Is this DBM::Deep behavior, or something with tie/bless? (normal)
in thread Is this DBM::Deep behavior, or something with tie/bless?

I believe that you and I have spoken via email about this topic. I offered to support such a plugin if you would write the initial code and tests for it then hand it over to me. You never replied as to whether or not you would be willing to do so. Just throw some code together and hand it off - not too hard.

My criteria for good software:
  1. Does it work?
  2. Can someone else come in, make a change, and be reasonably certain no bugs were introduced?
  • Comment on Re^5: Is this DBM::Deep behavior, or something with tie/bless? (normal)

Replies are listed 'Best First'.
Re^6: Is this DBM::Deep behavior, or something with tie/bless? (normal)
by romandas (Pilgrim) on Feb 12, 2008 at 13:58 UTC
    You're correct; we have spoken in regards to this.

    I did reply to you that I would be willing to write up a plugin, if I felt confident I could do it. But, as my post above stated: "I could potentially write a plugin for Data::Compare to handle this, but from what I can see that is way beyond my current ability." Trust me, I am more than willing to help out in this regard if I can. As for writing up a test for DBM::Deep, I'm still trying to puzzle out exactly how tests work.

    All beauty and enthusiasm with no substance at this point, I'm afraid. :)
      The following is a failing test that demonstrates the problem. I would go ahead and extend it further to additional examples. Then, you now have something to write your plugin against.
      use Test::More tests => 1; use DBM::Deep; use Data::Compare; use File::Temp qw( tempfile ); my $filename = tempfile(); my $db = DBM::Deep->new( file => $filename ); $db->{foo} = [ 1 .. 3 ]; my $compare = { foo => [ 1 .. 3 ], }; ok( Compare( $db, $compare ), "The structures are the same" );
      Now, you also have an excellent example plugin with [src://Data::Compare::Plugins::Scalar::Properties]. You could copy that module, rename it, and change sp_scalar_compare to dbm_scalar_compare and change its logic a bit. At that point, you can run your test and see if anything passes. At that point, you can hand it to me and we can work with something. Remember - the hardest part is the blank page. Editing is sooo much easier than creating.

      My criteria for good software:
      1. Does it work?
      2. Can someone else come in, make a change, and be reasonably certain no bugs were introduced?