Class: Nucleon::Action::Node::Cache
- Inherits:
-
Object
- Object
- Nucleon::Action::Node::Cache
- Includes:
- Mixin::Action::Registration
- Defined in:
- lib/nucleon/action/node/cache.rb
Class Method Summary collapse
-
.describe ⇒ Object
—————————————————————————– Info.
Instance Method Summary collapse
-
#arguments ⇒ Object
—.
-
#clear_node_cache(node) ⇒ Object
—.
-
#configure ⇒ Object
—————————————————————————– Settings.
-
#delete_node_cache(node, name) ⇒ Object
—.
-
#execute ⇒ Object
—————————————————————————– Operations.
-
#render_node_cache(node) ⇒ Object
—————————————————————————– Sub operations.
-
#render_node_cache_property(node, name) ⇒ Object
—.
-
#set_node_cache(node, name, value) ⇒ Object
—.
Class Method Details
.describe ⇒ Object
Info
12 13 14 |
# File 'lib/nucleon/action/node/cache.rb', line 12 def self.describe super(:node, :cache, 600) end |
Instance Method Details
#arguments ⇒ Object
36 37 38 |
# File 'lib/nucleon/action/node/cache.rb', line 36 def arguments [ :name, :value ] end |
#clear_node_cache(node) ⇒ Object
120 121 122 123 124 125 126 127 128 129 |
# File 'lib/nucleon/action/node/cache.rb', line 120 def clear_node_cache(node) node.clear_cache if node.cache.status == code.success success("Cached properties cleared", { :i18n => false }) else error("Cached properties could not be cleared", { :i18n => false }) myself.status = code.cache_save_failed end end |
#configure ⇒ Object
Settings
19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/nucleon/action/node/cache.rb', line 19 def configure super do codes :cache_save_failed register_str :name register_str :value register_bool :delete register_bool :clear register_translator :input_format register_translator :format, :json end end |
#delete_node_cache(node, name) ⇒ Object
85 86 87 88 89 90 91 92 93 94 |
# File 'lib/nucleon/action/node/cache.rb', line 85 def delete_node_cache(node, name) node.delete_cache_setting(name) if node.cache.status == code.success success("Cached property #{name.join('.')} deleted", { :i18n => false }) else error("Cached property #{name.join('.')} deletion could not be saved", { :i18n => false }) myself.status = code.cache_save_failed end end |
#execute ⇒ Object
Operations
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/nucleon/action/node/cache.rb', line 43 def execute super do |node, network| ensure_node(node) do if settings.delete(:clear, false) clear_node_cache(node) elsif ! settings[:name] || settings[:name].empty? render_node_cache(node) else settings[:name] = settings[:name].split('.') settings[:value] = nil if settings[:value].is_a?(String) && settings[:value].empty? if settings.delete(:delete, false) delete_node_cache(node, settings[:name]) elsif ! settings[:value].nil? set_node_cache(node, settings[:name], settings[:value]) else render_node_cache_property(node, settings[:name]) end end end end end |
#render_node_cache(node) ⇒ Object
Sub operations
69 70 71 72 73 |
# File 'lib/nucleon/action/node/cache.rb', line 69 def render_node_cache(node) format = settings[:format] myself.result = node.cache_setting([], {}, :hash) render result, :format => format end |
#render_node_cache_property(node, name) ⇒ Object
77 78 79 80 81 |
# File 'lib/nucleon/action/node/cache.rb', line 77 def render_node_cache_property(node, name) format = settings[:format] myself.result = node.cache_setting(name) render result, :format => format end |
#set_node_cache(node, name, value) ⇒ Object
98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 |
# File 'lib/nucleon/action/node/cache.rb', line 98 def set_node_cache(node, name, value) input_format = settings[:input_format] value = Util::Data.value(render(value, { :format => input_format, :silent => true })) if input_format myself.result = value node.set_cache_setting(name, value) if node.cache.status == code.success success("Cached property #{name.join('.')} saved", { :i18n => false }) else error("Cached property #{name.join('.')} could not be saved", { :i18n => false }) myself.status = code.cache_save_failed end end |