Current direction:
Hyperstack::Component::Mixin# include this to create a component classclassMyComponentincludeHyperstack::Component::Mixinend# typically we expect the application to create a master HyperComponent base class# using the mixin similar to ApplicationController or ApplicationRecordHyperstack::Component::ReactAPI# public module giving low level access to React methodsHyperstack::Component::Internal::RenderingContext# a private internal module # Above applies to store as well, i.e. Hyperstack::Store::Mixin# Models are slightly different because we already have an ApplicationRecord structure:classApplicationRecord < ActiveRecord::Base# makes ApplicationRecord and children isomorphicincludeHyperstack::Model::ActiveRecordAdapter ...
end# in future we will have adapters for other ORMs and dbs as well.# Hyperstack::Operation is also different, in that it is not sensible to use it as a mixin. Instead# Hyperstack::Operation is the base class of all operations.
As I am converting current code to this format I am thinking that this name structure is slightly redundant and that we would do well to drop the Mixin, thus we would have:
Hyperstack::Component# include this to create a component classclassMyComponentincludeHyperstack::Componentend# typically we expect the application to create a master HyperComponent base class# using the mixin similar to ApplicationController or ApplicationRecordHyperstack::Component::ReactAPI# same as currently proposed but...# because ReactAPI is now a direct descendent of the mixin inside of the application components# you can directly say ReactAPI. Hyperstack::Internal::Component::RenderingContext# swap Internal and Component to # avoid polluting application components name space# Above applies to store as well, i.e. Hyperstack::Store is the mixin# Models don't change from current proposal# Hyperstack::Operation could stay the same but because its a class (not a module) we could# change it to Hyperstack::Operation::Base, and have its predefined subclasses be:# Hyperstack::Operation::ServerOp and Hyperstack::Operation::ControllerOp
Its just an idea...
Current direction:
As I am converting current code to this format I am thinking that this name structure is slightly redundant and that we would do well to drop the Mixin, thus we would have:
Its just an idea...