0.0
No commit activity in last 3 years
No release in over 3 years
Listens for a hidden message in a succession of knocks (or button presses) using timing.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies
 Project Readme

Introducing the Secret_knock gem

To get started you will need to refer to the secret knock lookup table as show below:

a: 4     f: 25    k: 35    p: 32    u: 22    z: 43    5: 52  0: 61   
b: 33    g: 26    l: 16    q: 42    v: 34    1: 44    6: 53  [space]: 1
c: 21    h: 13    m: 23    r: 14    w: 24    2: 45    7: 54  <backspace>: 62
d: 15    i: 6     n: 11    s: 12    x: 41    3: 46    8: 55
e: 2     j: 36    o: 5     t: 3     y: 31    4: 51    9: 56

A letter with 2 numbers means that you must knock the specified number of times, then pause for roughly half a second. There is no time limit on how long you take before knocking out your next letter.

require 'io/console'
require 'secret_knock'


c = ' '

sk = SecretKnock.new

sk.listen do |x|

  puts 'press the space bar to knock, or any other key to exit'
  x.knock while (c = $stdin.getch ) == ' '

end

puts "Your message was " + sk.message

Note: While knocking, if you discover that you have knocked out the wrong letter, there is a special knock that acts as a backspace.

Example output

press the space bar to knock, or any other key to exit

1 
1 2 3 
1 2 
1 
1 2 3 4 5 6 
1 
1 2 3 4 5 6 
1 2 3 4 5 => "hello"

Resources

secretknock gem