Handle positional arguments, not just styles, in Drawable#initialize. That makes it obvious how to combine positional with keyword args. Use Shoes default styles for default argument values instead of initialize default params. Add some tests for default argument values.
There are a few places we still don't do this, mostly flow and stack. We still need to rework a few places where we do weird nonstandard things -- e.g. margin should change to Drawable, not separately Flow/Stack/Para. Para needs to stop passing all "extra" args as HTML attributes, which doesn't even work for the styles (margin, align) it's using it for. But those can be a later PR.
Nearly there. Schwad allows inferring radius from width/height -- so does old Shoes. But I'm not doing that yet. Need to get examples/oval.rb working (it does that) and a test that checks that behaviour.
Description
Handle positional arguments, not just styles, in Drawable#initialize. That makes it obvious how to combine positional with keyword args. Use Shoes default styles for default argument values instead of initialize default params. Add some tests for default argument values.
There are a few places we still don't do this, mostly flow and stack. We still need to rework a few places where we do weird nonstandard things -- e.g. margin should change to Drawable, not separately Flow/Stack/Para. Para needs to stop passing all "extra" args as HTML attributes, which doesn't even work for the styles (margin, align) it's using it for. But those can be a later PR.
Checklist