class Nucleon::Action::Node::Cache

Public Class Methods

describe() click to toggle source
Calls superclass method
   # File lib/nucleon/action/node/cache.rb
10 def self.describe
11   super(:node, :cache, 600)
12 end

Public Instance Methods

arguments() click to toggle source
   # File lib/nucleon/action/node/cache.rb
34 def arguments
35   [ :name, :value ]
36 end
clear_node_cache(node) click to toggle source
    # File lib/nucleon/action/node/cache.rb
118 def clear_node_cache(node)
119   node.clear_cache
120   
121   if node.cache.status == code.success
122     success("Cached properties cleared", { :i18n => false })
123   else
124     error("Cached properties could not be cleared", { :i18n => false })
125     myself.status = code.cache_save_failed  
126   end  
127 end
configure() click to toggle source
Calls superclass method
   # File lib/nucleon/action/node/cache.rb
17 def configure
18   super do
19     codes :cache_save_failed
20     
21     register_str :name
22     register_str :value
23     
24     register_bool :delete
25     register_bool :clear     
26     
27     register_translator :input_format            
28     register_translator :format, :json
29   end
30 end
delete_node_cache(node, name) click to toggle source
   # File lib/nucleon/action/node/cache.rb
83 def delete_node_cache(node, name)
84   node.delete_cache_setting(name)
85   
86   if node.cache.status == code.success
87     success("Cached property #{name.join('.')} deleted", { :i18n => false })
88   else
89     error("Cached property #{name.join('.')} deletion could not be saved", { :i18n => false })
90     myself.status = code.cache_save_failed  
91   end  
92 end
execute() click to toggle source
Calls superclass method
   # File lib/nucleon/action/node/cache.rb
41 def execute
42   super do |node|
43     ensure_node(node) do
44       if settings.delete(:clear, false)
45         clear_node_cache(node)
46       elsif ! settings[:name] || settings[:name].empty?
47         render_node_cache(node)
48       else
49         settings[:name]  = settings[:name].split('.')
50         settings[:value] = nil if settings[:value].is_a?(String) && settings[:value].empty? 
51         
52         if settings.delete(:delete, false)
53           delete_node_cache(node, settings[:name])                
54         elsif ! settings[:value].nil?
55           set_node_cache(node, settings[:name], settings[:value])
56         else
57           render_node_cache_property(node, settings[:name])
58         end
59       end
60     end
61   end
62 end
render_node_cache(node) click to toggle source
   # File lib/nucleon/action/node/cache.rb
67 def render_node_cache(node)
68   format        = settings[:format]
69   myself.result = node.cache_setting([], {}, :hash)
70   render result, :format => format  
71 end
render_node_cache_property(node, name) click to toggle source
   # File lib/nucleon/action/node/cache.rb
75 def render_node_cache_property(node, name)
76   format        = settings[:format]
77   myself.result = node.cache_setting(name)
78   render result, :format => format 
79 end
set_node_cache(node, name, value) click to toggle source
    # File lib/nucleon/action/node/cache.rb
 96 def set_node_cache(node, name, value)
 97   input_format = settings[:input_format]
 98   
 99   value        = Util::Data.value(render(value, { 
100     :format => input_format, 
101     :silent => true 
102   })) if input_format
103           
104   myself.result = value
105       
106   node.set_cache_setting(name, value)
107   
108   if node.cache.status == code.success  
109     success("Cached property #{name.join('.')} saved", { :i18n => false })
110   else
111     error("Cached property #{name.join('.')} could not be saved", { :i18n => false })
112     myself.status = code.cache_save_failed  
113   end  
114 end