- 
                Notifications
    You must be signed in to change notification settings 
- Fork 40
Open
Milestone
Description
Current direction:
  Hyperstack::Component::Mixin # include this to create a component class
  class MyComponent 
    include Hyperstack::Component::Mixin
  end
  # typically we expect the application to create a master HyperComponent  base class
  # using the mixin similar to ApplicationController or ApplicationRecord
  Hyperstack::Component::ReactAPI # public module giving low level access to React methods
  
   Hyperstack::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:
   class ApplicationRecord < ActiveRecord::Base
      # makes ApplicationRecord and children isomorphic
      include Hyperstack::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 class
  class MyComponent 
    include Hyperstack::Component
  end
  # typically we expect the application to create a master HyperComponent  base class
  # using the mixin similar to ApplicationController or ApplicationRecord
  Hyperstack::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::ControllerOpIts just an idea...
Metadata
Metadata
Assignees
Labels
No labels