key-db 2.0.3 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/lib/keydb.rb +28 -9
  2. metadata +3 -4
@@ -11,7 +11,7 @@ class KeyDB
11
11
  end
12
12
 
13
13
  def new_key keyname, value
14
- if keyname =~ /\//
14
+ if keyname =~ /\/|\(---\)/
15
15
  raise "Invalid Keyname!"
16
16
  return
17
17
  end
@@ -35,6 +35,11 @@ class KeyDB
35
35
  if keyname.class != String
36
36
  warn "WARNING: Keyname should be a string"
37
37
  end
38
+ File.open(@filename, "r").each_line do |line|
39
+ if Marshal.load(line).split("(---)")[1] == keyname
40
+ return "Key has been deleted"
41
+ end
42
+ end
38
43
  File.open(@filename, "r").each_line do |line|
39
44
  line = Marshal.load(line)
40
45
  if line.split("/")[0] == keyname
@@ -43,27 +48,41 @@ class KeyDB
43
48
  end
44
49
  end
45
50
 
51
+ def delete_key keyname
52
+ @db_file = File.open(@filename, "a")
53
+ @db_file.write(Marshal.dump("DK(---)#{keyname}"))
54
+ @db_file.write("\n")
55
+ @db_file.close
56
+ end
57
+
46
58
  def access_all type
47
59
  File.open(@filename).each_line do |line|
48
60
  line = Marshal.load(line)
49
61
  @keys_and_vals = line.split('/')
50
62
  if type == "keys"
51
- puts @keys_and_vals[0]
63
+ if line.split("(---)").length == 2
64
+ puts
65
+ else
66
+ puts @keys_and_vals[0]
67
+ end
52
68
  elsif type == "vals"
53
- puts @keys_and_vals[1]
69
+ if line.split("(---)").length == 2
70
+ puts
71
+ else
72
+ puts @keys_and_vals[1]
73
+ end
54
74
  elsif type == "all"
55
- puts line
75
+ if line.split("(---)").length == 2
76
+ puts
77
+ else
78
+ puts line
79
+ end
56
80
  else
57
81
  raise "Invalid Argument"
58
82
  end
59
83
  end
60
84
  end
61
85
 
62
- def count
63
- key_count = %x[wc -l #{@filename}].split(" ")[0]
64
- key_count.to_i
65
- end
66
-
67
86
  def delete_db
68
87
  system("rm #{@filename}")
69
88
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: key-db
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.3
4
+ version: 2.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -11,9 +11,8 @@ bindir: bin
11
11
  cert_chain: []
12
12
  date: 2012-05-13 00:00:00.000000000 Z
13
13
  dependencies: []
14
- description: ! 'A database acessible via keys. Changed some ''puts'' to ''return''.
15
- Added filename variable. Fixed bugs introduced in 2.0.1 and 2.0.2. File to require:
16
- ''keydb'''
14
+ description: ! 'A database acessible via keys. Added delete_key method. Bug exists
15
+ in access_all method. File to require: ''keydb'''
17
16
  email: slmnwise@gmail.com
18
17
  executables: []
19
18
  extensions: []