Class: ToolsCache
Class Method Summary collapse
-
.create_cache_file(cache_name, cache_file, ttl = nil) ⇒ Object
Create a cache file in work area.
-
.method_missing(method, *args) ⇒ Object
Add a record in a cache work area.
Instance Method Summary collapse
-
#initialize(options = {}) ⇒ ToolsCache
constructor
A new instance of ToolsCache.
Constructor Details
#initialize(options = {}) ⇒ ToolsCache
Returns a new instance of ToolsCache.
5 |
# File 'lib/lib/cache.rb', line 5 def initialize( = {}); end |
Class Method Details
.create_cache_file(cache_name, cache_file, ttl = nil) ⇒ Object
Create a cache file in work area
13 14 15 16 |
# File 'lib/lib/cache.rb', line 13 def self.create_cache_file(cache_name, cache_file, ttl = nil) cache = Persistent::Cache.new(cache_file, ttl) ToolsUtil.set_variable "#{cache_name}_cache", cache end |
.method_missing(method, *args) ⇒ Object
Add a record in a cache work area
Sample
ToolsCache.create_cache_file ‘cmdapi’, ‘/home/francisco/.newcmdapi/cmdapi-persistent.cache’ cache = ToolsUtil.get_variable ‘cmdapi_cache’ cache.clear ToolsCache.cmdapi_set :ldap, => {:name => ‘rogerio’} ToolsCache.cmdapi_set :ldap, => {:name => ‘wagner’} ToolsCache.cmdapi_set :cloud, [100,200] ToolsCache.cmdapi_set :cloud, 300 ToolsCache.cmdapi_set :cloud, [300,500,‘teste’] ToolsCache.cmdapi_set :cloud, “teste2” ToolsCache.cmdapi_set :cloud, => 1 ToolsCache.cmdapi_set :nat, “texto para nat” ToolsCache.cmdapi_set :nat, “texto para nat_ depois da primeira” ToolsCache.cmdapi_unset :nat ToolsCache.cmdapi_set :nat, “texto para nat_ depois da primeira”
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 |
# File 'lib/lib/cache.rb', line 41 def self.method_missing(method, *args) cache_name = method.to_s.split('_').first cache_method = method.to_s.split('_').last cache = ToolsUtil.get_variable "#{cache_name}_cache" ttl_status, ttl_value = args.extract_option_value '--ttl' case cache_method when 'set' key = args.extract_first values = args.extract_first if cache.key?(key) aux = cache[key] case aux.class.to_s when 'Hash' begin aux.merge! values cache[key] = aux rescue StandardError => e ToolsDisplay.show "\tError in ToolsCache: #{e.exception}", :light_yellow exit end when 'Array' aux = cache[key] case values.class.to_s when 'Array' values.each do |value| aux.insert(-1, value) end cache[key] = aux else aux.insert(-1, values) cache[key] = aux end end else cache[key] = values end # when 'set' # key = args.extract_first # value = args.extract_first # cache.set(key, value, Time.now) # when 'setext' # key = args.extract_first # values = args.extract_first # unless cache.key?(key) # ToolsCache.cmdapi_set key, values # else # aux = cache[key] # values.keys.each do |value| # aux[value] = values[value] # end # ToolsCache.cmdapi_set key, aux # end # when 'unsetext' # key = args.extract_first # key_internal = args.extract_first # if cache.key?(key) # aux = cache[key] # if aux.key? key_internal # aux # end # end when 'unset' key = args.extract_first cache[key] = nil when 'get' key = args.extract_first return cache[key] when 'list' result = {} cache.each do |key| result[key] = cache[key] end return result when 'clear' cache.each do |key| cache[key] = nil end end end |