hyperstack icon indicating copy to clipboard operation
hyperstack copied to clipboard

class rename details

Open catmando opened this issue 7 years ago • 1 comments

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::ControllerOp

Its just an idea...

catmando avatar Sep 28 '18 16:09 catmando

as of 1.0.alpha1 all external names are moved (execpt HyperModel). Still some work for some internal names to go

catmando avatar Nov 13 '18 23:11 catmando