Class: LanGrove::Behaviour::Assessable

Inherits:
LanGrove::Base show all
Defined in:
lib/langrove/behaviour/assessable.rb

Instance Attribute Summary

Attributes inherited from LanGrove::Base

#logger

Instance Method Summary collapse

Methods inherited from LanGrove::Base

#config_exception, #type

Constructor Details

#initialize(root, config, name) ⇒ Assessable

Assessable provides a second persistance for a ‘previous’ capsule, with a built in DELTA detector.



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/langrove/behaviour/assessable.rb', line 14

def initialize( root, config, name )
  
  @requires = {
    
    #
    # The Assessor plugin should contain an embedded Persistor plugin.
    #
    :assessor => {
      
      :actions => [
        
        #
        # Assessor should implement:
        # 
        # (In addition to having access to store() and fetch() from
        #  the nested Persistor)
        #
        # <Plugin>.assess( handler )
        #
        # - Should use the handler.key to collect from a 
        #   second persistance the 'previous' capsule 
        #   contents and - upon comparison with the supplied
        #   handler.capsule (the latest)
        # 
        #   -- emit Notifications on each DELTA
        #   -- store the new capsule as the 'new previous'
        # 
        # - Success assumed.
        # 
        # - (on failure) Should THROW
        #
        :assess
        
      ],
      
      :version => ASSESSABLE_VERSION
      
    }
    
  } if @requires.nil?
  
  super

end