Sha256: e1dfaa74e8eaacbdb2bd7aed624cda440d1a8c17f9c453cb9902668a76070fdc
Contents?: true
Size: 978 Bytes
Versions: 1
Compression:
Stored size: 978 Bytes
Contents
module Lotus module View # Inheriting mechanisms # # @since 0.1.0 module Inheritable # Register a view subclass # # @api private # @since 0.1.0 # # @example # require 'lotus/view' # # class IndexView # include Lotus::View # end # # class JsonIndexView < IndexView # end def inherited(base) subclasses.add base end # Set of registered subclasses # # @api private # @since 0.1.0 def subclasses @subclasses ||= Set.new end protected # Loading mechanism hook. # # @api private # @since 0.1.0 # # @see Lotus::View.load! def load! subclasses.freeze views.freeze end # Registered views # # @api private # @since 0.1.0 def views @views ||= [ self ] + subclasses.to_a end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
lotus-view-0.5.0 | lib/lotus/view/inheritable.rb |