key-db 3.0.1 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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: []