key-db 3.0.1 → 4.0.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 +37 -20
  2. metadata +5 -4
@@ -1,6 +1,6 @@
1
1
  class KeyDB
2
2
  attr_reader :filename, :version
3
- $VERSION = "3.0.1"
3
+ $VERSION = "4.0.0"
4
4
  def initialize filename
5
5
  @filename = filename.split(".")
6
6
  @filename = "#{@filename[0]}.db"
@@ -31,25 +31,6 @@ class KeyDB
31
31
  @db_file.close
32
32
  end
33
33
 
34
- def get_key keyname
35
- if keyname.class != String
36
- warn "WARNING: Keyname should be a string"
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
- elsif Marshal.load(line).split("-***-")[1] == keyname
42
- return Marshal.load(line).split("-***-")[2]
43
- end
44
- end
45
- File.open(@filename, "r").each_line do |line|
46
- line = Marshal.load(line)
47
- if line.split("///")[0] == keyname
48
- return line.split("///")[1]
49
- end
50
- end
51
- end
52
-
53
34
  def change_key keyname, value
54
35
  @db_file = File.open(@filename, "a")
55
36
  @db_file.write(Marshal.dump("CK-***-#{keyname}-***-#{value}"))
@@ -100,4 +81,40 @@ class KeyDB
100
81
  File.new(@filename, "w")
101
82
  end
102
83
 
84
+ def method_missing(keyname, *value)
85
+ keyname = keyname.to_s
86
+ if keyname =~ /=/
87
+ keyname.gsub!("=", "")
88
+ value = value[0]
89
+ if keyname =~ /\/\/\/|\(---\)|-\*\*\*-/
90
+ raise "Invalid Keyname!"
91
+ return
92
+ end
93
+ File.open(@filename, "r").each_line do |line|
94
+ if Marshal.load(line).split("///")[0] == keyname
95
+ raise "Keynames must be unique"
96
+ return
97
+ end
98
+ end
99
+ @db_file = File.open(@filename, "a")
100
+ @to_write = (Marshal.dump("#{keyname}///#{value}"))
101
+ @db_file.write(@to_write)
102
+ @db_file.write("\n")
103
+ @db_file.close
104
+ else
105
+ File.open(@filename, "r").each_line do |line|
106
+ if Marshal.load(line).split("(---)")[1] == keyname
107
+ return "Key has been deleted"
108
+ elsif Marshal.load(line).split("-***-")[1] == keyname
109
+ return Marshal.load(line).split("-***-")[2]
110
+ end
111
+ end
112
+ File.open(@filename, "r").each_line do |line|
113
+ line = Marshal.load(line)
114
+ if line.split("///")[0] == keyname
115
+ return line.split("///")[1]
116
+ end
117
+ end
118
+ end
119
+ end
103
120
  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: 3.0.1
4
+ version: 4.0.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,10 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-05-15 00:00:00.000000000 Z
12
+ date: 2012-05-19 00:00:00.000000000 Z
13
13
  dependencies: []
14
- description: ! 'A database acessible via keys. Added $VERSION variable. File to require:
15
- ''keydb'''
14
+ description: ! 'A database acessible via keys. Made attributes for all database keys.
15
+ Database keys now creatable and accessible via: db.foo = ''bar''; db.foo. Cannot
16
+ change keys through attributes, you must use change_key. File to require: ''keydb'''
16
17
  email: slmnwise@gmail.com
17
18
  executables: []
18
19
  extensions: []