Class Rufus::Tokyo::Tyrant

  1. lib/rufus/tokyo/tyrant/abstract.rb

Connecting to a ‘classic’ tyrant server remotely

require 'rufus/tokyo/tyrant'
t = Rufus::Tokyo::Tyrant.new('127.0.0.1', 44001)
t['toto'] = 'blah blah'
t['toto'] # => 'blah blah'

Methods

public class

  1. new

public instance

  1. copy
  2. lib

protected instance

  1. do_call_misc
  2. do_stat

Included modules

  1. TyrantCommons
  2. Ext

Attributes

host [R]
port [R]

Public class methods

new (host, port=0)

Connects to a given Tokyo Tyrant server.

Note that if the port is not specified, the host parameter is expected to hold the path to a unix socket (not a TCP socket).

(You can start a unix socket listening Tyrant with :

  ttserver -host /tmp/tyrant_socket -port 0 data.tch

and then connect to it with rufus-tokyo via :

  require 'rufus/tokyo/tyrant'
  db = Rufus::Tokyo::Tyrant.new('/tmp/tyrant_socket')
  db['a'] = 'alpha'
  db.close

)

To connect to a classic TCP bound Tyrant (port 44001) :

t = Rufus::Tokyo::Tyrant.new('127.0.0.1', 44001)
[show source]
    # File lib/rufus/tokyo/tyrant/abstract.rb, line 66
66:     def initialize (host, port=0)
67: 
68:       @db = lib.tcrdbnew
69: 
70:       @host = host
71:       @port = port
72: 
73:       (lib.tcrdbopen(@db, host, port) == 1) || raise(
74:         TokyoError.new("couldn't connect to tyrant at #{host}:#{port}"))
75: 
76:       if self.stat['type'] == 'table'
77: 
78:         self.close
79: 
80:         raise ArgumentError.new(
81:           "tyrant at #{host}:#{port} is a table, " +
82:           "use Rufus::Tokyo::TyrantTable instead to access it.")
83:       end
84:     end

Public instance methods

copy (target_path)

isn’t that a bit dangerous ? it creates a file on the server...

DISABLED.

[show source]
     # File lib/rufus/tokyo/tyrant/abstract.rb, line 97
 97:     def copy (target_path)
 98: 
 99:       #@db.copy(target_path)
100:       raise 'not allowed to create files on the server'
101:     end
lib ()

Using the tyrant lib

[show source]
    # File lib/rufus/tokyo/tyrant/abstract.rb, line 88
88:     def lib
89: 
90:       TyrantLib
91:     end

Protected instance methods

do_call_misc (function, list_pointer)
[show source]
     # File lib/rufus/tokyo/tyrant/abstract.rb, line 110
110:     def do_call_misc (function, list_pointer)
111: 
112:       lib.tcrdbmisc(@db, function, 0, list_pointer)
113:         # opts always to 0 for now
114:     end
do_stat ()

Returns the raw stat string from the Tyrant server.

[show source]
     # File lib/rufus/tokyo/tyrant/abstract.rb, line 118
118:     def do_stat
119: 
120:       lib.tcrdbstat(@db)
121:     end