Sha256: 3d31cc2a8d51786a4f16efee9b1d440832a59da46650eeeda417b82bcca14e52

Contents?: true

Size: 1.99 KB

Versions: 4

Compression:

Stored size: 1.99 KB

Contents

module Sbuilder

  # Abstract Parent class for Sbuilder for Snippet loaders.
  #
  # Class implements following service groups
  #
  # - Constructor and Object Initialize
  # - Framework Services for API loader
  # - configure plugin  
  #

  
  class SnippetLoaderPlugin < LoaderPluginRoot

    
    # services to hook up framework
    include SnippetLoaderPluginMixer

    # def_delegator Sbuilder::SnippetLoaderPlugin, :validateProperties

    # ------------------------------------------------------------------
    # @!group Constructor and Object Initialize

    def initialize( options = {} )
      super( options )
    end

    # @!endgroup

    # ------------------------------------------------------------------
    # @!group Configure Plugin

    # Configure API loader - MUST be implemented by plugin class
    # @param configuration [Hash] properties to configure
    
    def self.configure( configuration )
      raise PluginException.new <<-EOS unless configuration.nil?
      Plugin classes should implement class method #{__method__}


      This error is raised when using 'configuration' -property in 'extend.loaders' array entry.
      For example:

      extend:
          loaders:
            - className: Sbuilder::XXXX::Plugin
              gem: sbuilder-xxxx
              configuration: any value

      and the plugin class (e.g. Sbuilder::XXXX::Plugin) does not implement class 
      method '.#{__method__}'

      EOS
    end

    
    # @!endgroup

    # ------------------------------------------------------------------
    # @!group Register snippets to sbuilder

    # Abstract method, which must be implemented by concrete snippet loader plugin
    #
    # This method should use 'handOver' method, which passes snippet,
    # along with metadata, via snippet loader snippetFacade to sbuilder.
    #
    def doRegisterSnippets( snippetsDefs )
      raise PluginException.new "Missing implementation for  'doRegisterSnippets'"
    end
    
    # @!endgroup

    
  end # class  SnippetLoaderPlugin
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
tla-sbuilder-0.3.9 lib/sbuilder/facade/snippet_loader_plugin.rb
tla-sbuilder-0.3.8 lib/sbuilder/facade/snippet_loader_plugin.rb
tla-sbuilder-0.3.7 lib/sbuilder/facade/snippet_loader_plugin.rb
tla-sbuilder-0.3.4 lib/sbuilder/facade/snippet_loader_plugin.rb