class LessStruct::Entity::RedisBase

Public Class Methods

check() click to toggle source
# File lib/less_struct/entity/redis_base.rb, line 15
def check
  LessStruct::Entity::RedisCheck.call
end
redis() click to toggle source
# File lib/less_struct/entity/redis_base.rb, line 19
def redis
  @redis ||= if ENV["LESS_STRUCT_REDIS_URL"]
    ::Redis.new(url: ENV["LESS_STRUCT_REDIS_URL"])
  elsif ::Redis.current
    ::Redis.current
  else
    ::Redis.new
  end
end

Private Class Methods

_from_store_format(_store_format) click to toggle source
# File lib/less_struct/entity/redis_base.rb, line 51
def _from_store_format(_store_format)
  unless config_redis_format_json_y
    Marshal.load(_store_format)
  else
    hash = JSON.parse(_store_format)
    # hash = LessStruct::Util::Time.deep_restore_time_in_hac(hash)
    new(hash)
  end
end
all() click to toggle source
# File lib/less_struct/entity/redis_base.rb, line 47
def all
  redis.scan_each(match: "#{kind}:*").to_a
end
clear_impl() click to toggle source
# File lib/less_struct/entity/redis_base.rb, line 40
def clear_impl
  redis.scan_each(match: "#{kind}:*") do |key|
    puts "clear key #{key}" if use_debug_y
    redis.del(key)
  end
end
delete_impl(id) click to toggle source
# File lib/less_struct/entity/redis_base.rb, line 36
def delete_impl(id)
  redis.del(key(kind, id))
end
find_impl(id) click to toggle source
# File lib/less_struct/entity/redis_base.rb, line 31
def find_impl(id)
  return unless _store_format = redis.get(key(kind, id))
  _from_store_format(_store_format)
end

Private Instance Methods

_add_info() click to toggle source
# File lib/less_struct/entity/redis_base.rb, line 78
def _add_info
  return unless klass.config_redis_meta_info_y

  self.redis_duration = klass.config_redis_duration
  self.redis_set_at = Time.at(now.to_i).utc
  self.redis_end_at = redis_duration > 0 ? Time.at(now.to_i + redis_duration).utc : nil
end
_save_as_redis_entity() click to toggle source
# File lib/less_struct/entity/redis_base.rb, line 86
def _save_as_redis_entity
  if klass.config_redis_duration > 0
    klass.redis.setex key, klass.config_redis_duration, _to_store_format
  else
    klass.redis.set key, _to_store_format
  end
end
_to_store_format() click to toggle source
# File lib/less_struct/entity/redis_base.rb, line 70
def _to_store_format
  unless klass.config_redis_format_json_y
    Marshal.dump(self)
  else
    self.to_json
  end
end
save_impl() click to toggle source
# File lib/less_struct/entity/redis_base.rb, line 64
def save_impl
  _add_info
  _save_as_redis_entity
  self
end