0.0
No commit activity in last 3 years
No release in over 3 years
A session like handler of data using the Redis Database. The session is built with mindset that non web applications can use it just as well as web applications.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

>= 12.3.3
~> 3.0
>= 2.2.10

Runtime

>= 0
 Project Readme

Redis Session

Redis_session is a ruby based library that allow every ruby application to store information using Redis.

The design of the library was for disconnected non web based applications, but it can be used for web based applications just as well.

By providing unique prefix for each session, you can distinguish between each request.

Current features

  • Adding prefix to each session instance
  • Expiring keys globally or specific keys
  • Saving keys with values, and possible to add expire time in seconds
  • Set expire time to existing keys (updating time for already expiring keys)
  • Restoring values, and giving default values (by default if no value, it returns an empty hash)
  • Checking the remaining time of keys
  • Checking if key exists
  • Checking if key has a value
  • Removing keys
  • Changing the prefix using the prefix= method
  • find key and value based on custom lookup

Documentation

The source code is using rdoc.

Example:

require 'redis_session'

session = Session::SessionClient.new(:prefix => 'example')

session.save('key', 'value') # save key with the value of value 
                             # without expire, return true if successful
puts session.restore('key')  # will return "value"

session.save('self_destruct', 'in', 10) # save the key self_destruct with 
                                        # the value of 'in', and will 
                                        # terminates in 10 seconds
sleep 10.1
session.restore('self_destruct')      # returns empty hash
session.restore('self_destruct', nil) # returns default value of nil

session.save('boom', { :bomb => 'ball' }, 10) # saving a ruby object
puts session.ttl('boom') # should return the seconds left to the key to live
                         # or -1

session.expire('key', 60)   # the key will be gone in 60 seconds
puts session.restore('key') # prints 'value'

puts 'has value' if session.value? 'key' # check if key has a value

session.delete('key')       # deleted it before time :)
                            # it's alias to remove

puts 'still here' if session.key? 'key' # do we have the key ?
ret = session.scan_by do |x|
   next unless x.kind_of? Hash
   next unless x.key? :click

   x[:click] == true
end

LICENSE

The following library is brought to you using MIT license.