In attempting to detail the architecture of this codebase, I realized that it would be easier if the parts of SuperDiff that implemented differs, inspection tree builders, operation tree builders, operation tree flatteners, and operation trees for Ruby objects were split off into their own directory. To that end, alongside RSpec, ActiveRecord, and ActiveSupport, there is now a "Basic" feature module. In addition, to make the file structure a little flatter, I've also renamed InspectionTreeBuilders in various feature modules up one level (so, ObjectInspection::InspectionTreeBuilders is now simply InspectionTreeBuilders).
Following this change, SuperDiff can now be divided into 4 layers (here I'm putting CSI in brackets because it's not a public module):
The following constants that were previously available under SuperDiff are now located under SuperDiff::Core:
ColorizedDocumentExtensions
Configuration
GemVersion
Helpers
ImplementationChecks
Line
RecursionGuard
TieredLines
TieredLinesElider
TieredLinesFormatter
Everything under SuperDiff::Differs is now under SuperDiff::Basic::Differs
All error classes under SuperDiff::Errors have been moved out and are now directly under SuperDiff::Core
SuperDiff::ObjectInspection::InspectionTree is now SuperDiff::Core::InspectionTree
Everything under SuperDiff::ObjectInspection::InspectionTreeBuilders is now under SuperDiff::Core::InspectionTreeBuilders
Everything under SuperDiff::ObjectInspection::Nodes is now under SuperDiff::Core::InspectionTreeNodes
Everything under SuperDiff::OperationTreeBuilders is now under SuperDiff::Basic::OperationTreeBuilders
Everything under SuperDiff::OperationTreeFlatteners is now under SuperDiff::Basic::OperationTreeFlatteners
Everything under SuperDiff::OperationTrees is now under SuperDiff::Basic::OperationTrees
Everything under SuperDiff::Operations has been moved out and is now directly under SuperDiff::Core
Everything under SuperDiff::ActiveRecord::ObjectInspection::InspectionTreeBuilders is now under SuperDiff::ActiveRecord::InspectionTreeBuilders
Everything under SuperDiff::ActiveSupport::ObjectInspection::InspectionTreeBuilders is now under SuperDiff::ActiveSupport::InspectionTreeBuilders
Everything under SuperDiff::RSpec::ObjectInspection::InspectionTreeBuilders is now under SuperDiff::RSpec::InspectionTreeBuilders
To maintain backward compatibility, I've left all of the original constants in place, but they will now print deprecation warnings when used. I will remove them in 1.0.0.
In attempting to detail the architecture of this codebase, I realized that it would be easier if the parts of SuperDiff that implemented differs, inspection tree builders, operation tree builders, operation tree flatteners, and operation trees for Ruby objects were split off into their own directory. To that end, alongside RSpec, ActiveRecord, and ActiveSupport, there is now a "Basic" feature module. In addition, to make the file structure a little flatter, I've also renamed
InspectionTreeBuilders
in various feature modules up one level (so,ObjectInspection::InspectionTreeBuilders
is now simplyInspectionTreeBuilders
).Following this change, SuperDiff can now be divided into 4 layers (here I'm putting CSI in brackets because it's not a public module):
Here is a full list of renames:
SuperDiff
are now located underSuperDiff::Core
:ColorizedDocumentExtensions
Configuration
GemVersion
Helpers
ImplementationChecks
Line
RecursionGuard
TieredLines
TieredLinesElider
TieredLinesFormatter
SuperDiff::Differs
is now underSuperDiff::Basic::Differs
SuperDiff::Errors
have been moved out and are now directly underSuperDiff::Core
SuperDiff::ObjectInspection::InspectionTree
is nowSuperDiff::Core::InspectionTree
SuperDiff::ObjectInspection::InspectionTreeBuilders
is now underSuperDiff::Core::InspectionTreeBuilders
SuperDiff::ObjectInspection::Nodes
is now underSuperDiff::Core::InspectionTreeNodes
SuperDiff::OperationTreeBuilders
is now underSuperDiff::Basic::OperationTreeBuilders
SuperDiff::OperationTreeFlatteners
is now underSuperDiff::Basic::OperationTreeFlatteners
SuperDiff::OperationTrees
is now underSuperDiff::Basic::OperationTrees
SuperDiff::Operations
has been moved out and is now directly underSuperDiff::Core
SuperDiff::ActiveRecord::ObjectInspection::InspectionTreeBuilders
is now underSuperDiff::ActiveRecord::InspectionTreeBuilders
SuperDiff::ActiveSupport::ObjectInspection::InspectionTreeBuilders
is now underSuperDiff::ActiveSupport::InspectionTreeBuilders
SuperDiff::RSpec::ObjectInspection::InspectionTreeBuilders
is now underSuperDiff::RSpec::InspectionTreeBuilders
To maintain backward compatibility, I've left all of the original constants in place, but they will now print deprecation warnings when used. I will remove them in 1.0.0.