Skip to content
  • snusnu's avatar
    f81c6bc0
    AMo #key is now #to_key and CI is probably happy · f81c6bc0
    snusnu authored
    Obviously #key is a too common name to be included
    in the AMo interface, #to_key fits better and also
    relates nicely to #to_param. Thx wycats, koz and
    josevalim for the suggestion.
    
    AR's #to_key implementation now takes customized
    primary keys into account and there's a testcase
    for that too.
    
    The #to_param AMo lint makes no assumptions on how
    the method behaves in the presence of composite
    primary keys. It leaves the decision wether to
    provide a default, or to raise and thus signal to
    the user that implementing this method will need
    his special attention, up to the implementers. All
    AMo cares about is that #to_param is implemented
    and returns nil in case of a new_record?.
    
    The default CompliantObject used in lint_test
    provides a naive default implementation that just
    joins all key attributes with '-'.
    
    The #to_key default implementation in lint_test's
    CompliantObject now returns [id] instead of [1].
    This was previously causing the (wrong) tests I
    added for AR's #to_key implementation to pass. The
    #to_key tests added with this patch should be
    better.
    
    The CI failure was caused by my lack of knowledge
    about the test:isolated task. The tests for the
    record_identifier code in action_controller are
    using fake non AR models and I forgot to stub the
    #to_key method over there. This issue didn't come
    up when running the test task, only test:isolated
    revealed it. This patch fixes that.
    
    All tests pass isolated or not, well, apart from
    one previously unpended test in action_controller
    that is unrelated to my patch.
    f81c6bc0
    AMo #key is now #to_key and CI is probably happy
    snusnu authored
    Obviously #key is a too common name to be included
    in the AMo interface, #to_key fits better and also
    relates nicely to #to_param. Thx wycats, koz and
    josevalim for the suggestion.
    
    AR's #to_key implementation now takes customized
    primary keys into account and there's a testcase
    for that too.
    
    The #to_param AMo lint makes no assumptions on how
    the method behaves in the presence of composite
    primary keys. It leaves the decision wether to
    provide a default, or to raise and thus signal to
    the user that implementing this method will need
    his special attention, up to the implementers. All
    AMo cares about is that #to_param is implemented
    and returns nil in case of a new_record?.
    
    The default CompliantObject used in lint_test
    provides a naive default implementation that just
    joins all key attributes with '-'.
    
    The #to_key default implementation in lint_test's
    CompliantObject now returns [id] instead of [1].
    This was previously causing the (wrong) tests I
    added for AR's #to_key implementation to pass. The
    #to_key tests added with this patch should be
    better.
    
    The CI failure was caused by my lack of knowledge
    about the test:isolated task. The tests for the
    record_identifier code in action_controller are
    using fake non AR models and I forgot to stub the
    #to_key method over there. This issue didn't come
    up when running the test task, only test:isolated
    revealed it. This patch fixes that.
    
    All tests pass isolated or not, well, apart from
    one previously unpended test in action_controller
    that is unrelated to my patch.
Loading