usefuldb 0.0.7 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG CHANGED
@@ -1,5 +1,10 @@
1
1
  usefuldb gem CHANGELOG
2
2
 
3
+ ## Version 0.0.8
4
+ - Fixed issue introduced in 0.0.7 with deleting elements
5
+ - Added logging to many parts of the UsefulDB system to aid debugging, and provide support for verbose mode
6
+ - Updated main_test.rb to match the updated interface, and consolidated test methods
7
+
3
8
  ## Version 0.0.7
4
9
  - Updated layout of the yaml database file to include description field for each entry
5
10
  - Updated layout of the yaml database file to include a version field
data/README CHANGED
@@ -1,4 +1,4 @@
1
- ## Readme - v0.0.6
1
+ ## Readme - v0.0.8
2
2
 
3
3
  ### Install
4
4
  To run the unit tests use the following rake target
data/bin/usefuldb CHANGED
@@ -1,7 +1,9 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
+ # Require statements
3
4
  require 'usefuldb'
4
5
  require 'optparse'
6
+ require 'logger'
5
7
 
6
8
  #####################################################
7
9
  def addColour(text, colour_code)
@@ -14,11 +16,20 @@ def yellow(text); addColour(text, 33); end
14
16
  def blue(text); addColour(text, 34); end
15
17
  #####################################################
16
18
 
19
+ # Variables
20
+
21
+ # Create the Logger instance
22
+ log = Logger.new(STDOUT)
23
+ #log.level = Logger::DEBUG
24
+ #log.level = Logger::INFO
25
+ log.level = Logger::WARN
26
+
27
+
17
28
  options = {}
18
29
  optparse = nil
19
30
 
20
31
  # Setup the system for use
21
- UsefulDB.setup
32
+ UsefulDB.setup(log)
22
33
 
23
34
  begin
24
35
  optparse = OptionParser.new do |opts|
@@ -31,22 +42,27 @@ UsefulDB - a simple command and URL database (#{UsefulDB::Version})
31
42
  WELCOME
32
43
 
33
44
  opts.on('-a', '--add', "Add an entry to the database") do |arg|
45
+ log.debug "add parameter passed"
34
46
  options[:a] = arg
35
47
  end
36
48
 
37
49
  opts.on('-d', '--delete', "Delete an entry from the database") do |arg|
50
+ log.debug "delete parameter passed"
38
51
  options[:d] = arg
39
52
  end
40
53
 
41
54
  opts.on('-l', '--list', "List all entries in the database") do |arg|
55
+ log.debug "list parameter passed"
42
56
  options[:l] = arg
43
57
  end
44
58
 
45
59
  opts.on('-v', '--verbose', "Runs the system in verbose mode") do |arg|
60
+ log.debug "verbose parameter passed"
46
61
  options[:v] = arg
47
62
  end
48
63
 
49
64
  opts.on('-h', '--help', "Print out this message") do |arg|
65
+ log.debug "help parameter passed"
50
66
  puts opts
51
67
  exit
52
68
  end
@@ -54,41 +70,52 @@ WELCOME
54
70
  end.parse!
55
71
  rescue OptionParser::InvalidOption => e
56
72
  puts e.message + "\n\nUseage: usefuldb -h or --help for help using the system"
73
+ log.fatal e.message
57
74
  exit()
58
75
  end
59
76
 
60
77
  #############################################################################
61
78
 
62
79
  # Checking for flag parameters
80
+ log.debug "Checking for parameters"
63
81
  if options.empty?
64
- # No parameters of any kind were passed
82
+ log.debug "No flag parameters were passed"
83
+ log.debug "Checking if ARGV is empty"
65
84
  if ARGV.empty?
85
+ log.debug "No parameters of any kind were passed, exiting"
66
86
  puts "Useage: usefuldb -h or --help for help using the system"
67
87
  exit()
68
-
69
- # At least one non flag parameter was passed
70
88
  else
71
- puts green("Launching the search system:")
72
- UsefulDB::GUI.search(ARGV)
89
+ log.debug "At least one non flag parameter was passed, launching the search system"
90
+ log.debug ARGV
91
+ puts "Launching the search system:"
92
+ UsefulDB::GUI.search(ARGV, log)
73
93
  end
74
94
 
75
- # Some flags parameters were passed
76
95
  else
77
- #puts options
96
+ log.debug "Some flags parameters were passed"
97
+ log.debug options
78
98
 
79
- if options[:a] # The -a or --add flag check
80
- puts green("Launching the add system:")
81
- UsefulDB::GUI.add(options)
99
+ if options[:v]
100
+ log.level = Logger::INFO
101
+ end
102
+
103
+ if options[:a]
104
+ log.debug "The -a or --add flag is true, launching add system"
105
+ puts "Launching the add system:"
106
+ UsefulDB::GUI.add(log)
82
107
 
83
108
  elsif options[:l]
109
+ log.debug "The -l or --list flag is true, launching the list system"
84
110
  puts green("Launching the list system:")
85
- UsefulDB::GUI.list
111
+ UsefulDB::GUI.list(log)
86
112
 
87
- elsif options[:d] # The -d or --delete flag check
113
+ elsif options[:d]
114
+ log.debug "The -d or --delete flag is true, launching the delete system"
88
115
  puts "Run the delete system:"
89
- UsefulDB::GUI.remove(options)
90
-
116
+ UsefulDB::GUI.remove(log)
91
117
  end
118
+
92
119
  end
93
120
 
94
121
 
data/lib/usefuldb.rb CHANGED
@@ -4,36 +4,37 @@ require 'usefuldb/exceptions'
4
4
  require 'usefuldb/gui'
5
5
  require 'usefuldb/version'
6
6
  require 'fileutils'
7
+ require 'logger'
7
8
 
8
9
  module UsefulDB
9
10
  class << self
10
11
 
11
- def add(hash, opts)
12
- UsefulDB::UsefulUtils.add(hash, opts)
12
+ def add(hash, log)
13
+ UsefulDB::UsefulUtils.add(hash, log)
13
14
  end
14
15
 
15
- def count()
16
- UsefulDB::UsefulUtils.count
16
+ def count(log)
17
+ UsefulDB::UsefulUtils.count(log)
17
18
  end
18
19
 
19
- def remove(key, opts)
20
- UsefulDB::UsefulUtils.remove(key, opts)
20
+ def remove(key, log)
21
+ UsefulDB::UsefulUtils.remove(key, log)
21
22
  end
22
23
 
23
- def dbSave
24
- UsefulDB::UsefulUtils.dbSave
24
+ def dbSave(log)
25
+ UsefulDB::UsefulUtils.dbSave(log)
25
26
  end
26
27
 
27
- def dbLoad
28
- UsefulDB::UsefulUtils.dbLoad
28
+ def dbLoad(log)
29
+ UsefulDB::UsefulUtils.dbLoad(log)
29
30
  end
30
31
 
31
- def search(args)
32
- return UsefulDB::UsefulUtils.search(args)
32
+ def search(args, log)
33
+ return UsefulDB::UsefulUtils.search(args, log)
33
34
  end
34
35
 
35
- def setup
36
- UsefulDB::UsefulUtils.setup
36
+ def setup(log)
37
+ UsefulDB::UsefulUtils.setup(log)
37
38
  end
38
39
 
39
40
  end
data/lib/usefuldb/gui.rb CHANGED
@@ -5,16 +5,28 @@ module UsefulDB
5
5
  class GUI
6
6
  class << self
7
7
  attr_accessor
8
-
9
- def search(args)
10
- UsefulDB.dbLoad
11
- args.each {|i| puts "\n" + UsefulDB::UsefulUtils.search(i)}
8
+
9
+
10
+ # Search the database
11
+ def search(args, log)
12
+ log.debug "Loading the database"
13
+ UsefulDB.dbLoad(log)
14
+
15
+ log.debug "Launching UsefulDB::UsefulUtils.search"
16
+ args.each {|i| puts "\n" + UsefulDB::UsefulUtils.search(i, log)}
12
17
  end
13
18
 
14
- def list
15
- UsefulDB.dbLoad
19
+
20
+ # List entries in the database
21
+ def list(log)
22
+ log.debug "Loading the database"
23
+ UsefulDB.dbLoad(log)
24
+
25
+ log.debug "Launching UsefulDB::UsefulUtils.list"
16
26
  index = 0
17
- UsefulDB::UsefulUtils.list.each do |i|
27
+ listing = UsefulDB::UsefulUtils.list(log)
28
+
29
+ listing.each do |i|
18
30
  puts "Element: " + index.to_s
19
31
  index += 1
20
32
  msg = ''
@@ -23,62 +35,67 @@ module UsefulDB
23
35
  puts "- Value: " + i["value"]
24
36
  puts "- Description: " + i["description"] + "\n\n##\n"
25
37
  end
38
+
39
+ log.info "Number of entries in the database is: " + UsefulDB::UsefulUtils.count(log).to_s
26
40
  end
27
41
 
28
42
 
29
-
30
- def remove(opts)
31
- if opts[:v] then puts "in verbose mode\n"; end
32
- list()
43
+ # Remove an entry from the database
44
+ def remove(log)
45
+ log.info "Printing out the list of database entries\n"
46
+ list(log)
33
47
 
34
48
  puts "Enter the number of the element from the list above which you want to delete"
35
49
  value = STDIN.gets
50
+ log.debug value
36
51
 
37
52
  begin
38
- UsefulDB.remove(value.to_i, {})
39
- UsefulDB.dbSave
53
+ UsefulDB.remove(value.to_i, log)
54
+ log.info "Entry removed"
55
+ UsefulDB.dbSave(log)
56
+ log.info "Saving database"
40
57
  rescue KeyOutOfBounds => e
41
58
  puts e.message + "\nexiting."
59
+ log.fatal e.message
42
60
  exit()
43
61
  end
44
62
 
45
63
  end
46
64
 
47
-
48
- def add(opts)
49
- UsefulDB.dbLoad
65
+
66
+ # Add element to the database
67
+ def add(log)
68
+ UsefulDB.dbLoad(log)
50
69
 
51
- if opts[:v]
52
- puts "in verbose mode\n"
53
- puts "Please enter the comma separated search tags like the following:"
54
- puts "eg:\nterm1, term2, term3\n\n"
55
- else
56
- puts "Please enter the comma separated search tags like the following:"
57
- end
70
+ puts "Please enter the comma separated search tags like the following:"
71
+ log.info "eg:\nterm1, term2, term3\n\n"
58
72
 
59
73
  begin
60
74
  tags = ((STDIN.gets).strip).split(', ')
61
-
75
+ log.debug tags.inspect
76
+
62
77
  puts "Please enter the value you wish to store for this database entry:"
63
78
  value = (STDIN.gets).strip
79
+ log.debug value
64
80
 
65
81
  puts "Please enter a description for this entry: "
66
82
  description = (STDIN.gets).strip
83
+ log.debug description
67
84
 
68
85
  entry = {"tag" => tags, "value" => value, "description" => description}
69
86
 
70
- if opts[:v]
71
- puts "Storing the following in the database:\n"
72
- puts "Search tags: " + UsefulDB::UsefulUtils.array_to_s(tags)
73
- puts "Entry Value: " + value
74
- puts "Description: " + description
75
- end
87
+ log.info "Storing the following in the database:"
88
+ log.info "Search tags: " + UsefulDB::UsefulUtils.array_to_s(tags)
89
+ log.info "Entry Value: " + value
90
+ log.info "Description: " + description
76
91
 
77
- UsefulDB.add(entry, {})
78
- UsefulDB.dbSave
92
+ UsefulDB.add(entry, log)
93
+ UsefulDB.dbSave(log)
94
+ log.info "Saving database"
79
95
 
80
96
  rescue Exception => e
81
97
  puts e.message
98
+ log.fatal e.message
82
99
  exit
83
100
  end
84
101
 
@@ -5,28 +5,32 @@ module UsefulDB
5
5
  class Settings
6
6
  class << self
7
7
 
8
- attr_accessor :data
8
+ attr_accessor :data;
9
9
 
10
10
  # Loads the database from disk
11
- def load(path)
11
+ def load(path, log)
12
12
  begin
13
13
  @data = YAML.load(File.open(path))
14
14
 
15
15
  if @data.class == Array
16
- puts "Assuming currently installed DB version < 0.0.7 running autoConvert"
17
- autoConvert()
18
- save(@data, path)
16
+ log.warn "Assuming currently installed DB version < 0.0.7 running autoConvert"
17
+
18
+ autoConvert(log)
19
+ log.warn "Database conversion successful"
20
+ save(@data, path, log)
21
+ log.debug "Saving the database"
19
22
  elsif @data["version"] != UsefulDB::Version.to_s
20
- puts "The database version is lower than the latest version running autoUpgrade"
21
- autoUpgrade()
22
- save(@data, path)
23
+ log.warn "The database version is lower than the latest version running autoUpgrade"
24
+
25
+ autoUpgrade(log)
26
+ log.warn "Database upgrade successful"
27
+ save(@data, path, log)
28
+ log.debug "Saving the database"
23
29
  else
24
- #puts "Database version is current"
30
+ log.debug "Database version is current"
25
31
  end
26
32
 
27
-
28
- # Debug
29
- #puts @data.inspect
33
+ log.debug @data.inspect
30
34
 
31
35
  rescue ArgumentError => e
32
36
  exit("Could not parse YAML: #{e.message}")
@@ -35,7 +39,7 @@ module UsefulDB
35
39
 
36
40
 
37
41
  # Saves the database to disk
38
- def save(newData, path)
42
+ def save(newData, path, log)
39
43
  @data = newData
40
44
  f = File.open(path, "w")
41
45
  f.write(@data.to_yaml)
@@ -44,8 +48,8 @@ module UsefulDB
44
48
 
45
49
 
46
50
  # Converts from db versions < 0.0.6 to the structure introduced in version 0.0.7
47
- def autoConvert()
48
- puts "autoConvert Method executing"
51
+ def autoConvert(log)
52
+ log.warn "autoConvert Method executing"
49
53
  convertedDB = {"version" => UsefulDB::Version.to_s, "db" => @data}
50
54
 
51
55
  convertedDB["db"].each do |element|
@@ -57,8 +61,8 @@ module UsefulDB
57
61
 
58
62
 
59
63
  # Convert the db from versions lower than the latest version of usefuldb to the latest version
60
- def autoUpgrade()
61
- puts "autoUpgrade Method executing"
64
+ def autoUpgrade(log)
65
+ log.warn "autoUpgrade Method executing"
62
66
  @data["version"] = UsefulDB::Version.to_s
63
67
  end
64
68
 
@@ -1,4 +1,5 @@
1
1
  require 'usefuldb/exceptions'
2
+ require 'logger'
2
3
 
3
4
  module UsefulDB
4
5
 
@@ -20,28 +21,28 @@ module UsefulDB
20
21
 
21
22
 
22
23
  # Save the database to disk
23
- def dbSave()
24
+ def dbSave(log)
24
25
  if @dbpath.nil?
25
- #@dbpath = File.expand_path(File.dirname(__FILE__) + '/../../resources/db.yaml')
26
+ log.debug @dbpath = File.expand_path(File.dirname(__FILE__) + '/../../resources/db.yaml')
26
27
  @dbpath = ENV['HOME'] + "/.usefuldb/db.yaml"
27
- Settings.save(@data, @dbpath)
28
+ UsefulDB::Settings.save(@data, @dbpath, log)
28
29
  else
29
- Settings.save(@data, @dbpath)
30
+ UsefulDB::Settings.save(@data, @dbpath, log)
30
31
  end
31
32
  end
32
33
 
33
34
 
34
35
  # Load the database from disk
35
- def dbLoad()
36
- #@dbpath = File.expand_path(File.dirname(__FILE__) + '/../../resources/db.yaml')
36
+ def dbLoad(log)
37
+ log.debug @dbpath = File.expand_path(File.dirname(__FILE__) + '/../../resources/db.yaml')
37
38
  @dbpath = ENV['HOME'] + "/.usefuldb/db.yaml"
38
- Settings.load(dbpath)
39
- @data = Settings.data
39
+ UsefulDB::Settings.load(@dbpath, log)
40
+ @data = UsefulDB::Settings.data
40
41
  end
41
42
 
42
43
 
43
44
  # Return the number of elements in the database.
44
- def count()
45
+ def count(log)
45
46
  if @data["db"].count == 0
46
47
  raise EmptyDB, "The DB is currently empty."
47
48
  else
@@ -51,39 +52,42 @@ module UsefulDB
51
52
 
52
53
 
53
54
  # Add an element to the database
54
- def add(hash, opts)
55
+ def add(hash, log)
55
56
  if @data["db"].include?(hash) then raise EntryInDB, "Entry already in the DB"; else @data["db"] << hash; end
56
57
  end
57
58
 
58
59
 
59
60
  # Remove an element from the database
60
- def remove(key, opts)
61
+ def remove(key, log)
61
62
  if @data["db"].count == 0
62
63
  raise EmptyDB, "You cannot call the remove function on an empty Database!"
63
64
  elsif @data["db"].count <= key || key < 0
64
65
  raise KeyOutOfBounds, "Key is out of bounds and therefore does not exist in the DB"
65
66
  else
66
- @data.delete_at(key)
67
+ @data["db"].delete_at(key)
67
68
  end
68
69
  end
69
70
 
70
71
 
71
72
  # Setup the system for the first time
72
- def setup()
73
+ def setup(log)
74
+ log.debug "Checking to see if the database is already installed"
73
75
  resourceDir = ENV['HOME'] + "/.usefuldb/"
76
+ log.debug resourceDir
74
77
  if File.directory?(resourceDir)
75
- # The folder already exists, do nothing
78
+ log.debug "The folder already exists, do nothing"
76
79
  else
77
- # We need to create this folder and install the DB there.
80
+ log.debug "Creating ~/.usefuldb/ and installing the DB there."
78
81
  FileUtils.mkdir(resourceDir)
79
82
  dbpath = File.expand_path(File.dirname(__FILE__) + '/../../resources/db.yaml')
80
83
  FileUtils.cp(dbpath, resourceDir)
84
+ log.debug "Database copied to ~/.usefuldb/db.yaml"
81
85
  end
82
86
  end
83
87
 
84
88
 
85
89
  # Search for a tag in the DB
86
- def search(tag)
90
+ def search(tag, log)
87
91
  msg = "Searching the database for tag: " + tag + "\n"
88
92
 
89
93
  @data["db"].each do |db|
@@ -98,7 +102,7 @@ module UsefulDB
98
102
 
99
103
 
100
104
  # List out all elements in the DB
101
- def list
105
+ def list(log)
102
106
  return @data["db"]
103
107
  end
104
108
 
@@ -7,7 +7,7 @@ module UsefulDB
7
7
 
8
8
  MAJOR = 0 unless defined? MAJOR
9
9
  MINOR = 0 unless defined? MINOR
10
- PATCH = 7 unless defined? PATCH
10
+ PATCH = 8 unless defined? PATCH
11
11
 
12
12
  def to_s
13
13
  [MAJOR, MINOR, PATCH].compact.join('.')
data/test/main_test.rb CHANGED
@@ -2,9 +2,12 @@ require 'test/unit'
2
2
  require 'rack/test'
3
3
  require 'fileutils'
4
4
  require 'usefuldb'
5
+ require 'logger'
5
6
 
6
7
  ENV['RACK_ENV'] = 'test'
7
8
 
9
+ log = nil
10
+
8
11
  #####################################################
9
12
  def addColour(text, colour_code)
10
13
  "\e[#{colour_code}m#{text}\e[0m"
@@ -17,149 +20,83 @@ def blue(text); addColour(text, 34); end
17
20
  #####################################################
18
21
 
19
22
 
23
+
24
+
20
25
  class UsefulDBTest < Test::Unit::TestCase
21
26
 
22
27
  include Rack::Test::Methods
23
28
 
29
+ attr_accessor :log
30
+
24
31
  def setup
25
- UsefulDB.dbLoad
32
+
33
+ if @log == nil
34
+ @log = log = Logger.new(STDOUT)
35
+ @log.level = Logger::INFO
36
+ end
37
+
38
+ UsefulDB::dbLoad(@log)
26
39
  end
27
40
 
28
- #def teardown
29
- # UsefulUtils.dbSave
30
- #end
41
+ def teardown
42
+ # Do nothing
43
+ end
31
44
 
32
45
 
33
46
  # Test to check adding of entries to the database
34
47
  def test_add
35
- puts yellow("## Executing test_add")
48
+ @log.info "Executing test: test_add"
49
+
50
+ startingCount = UsefulDB.count(@log)
51
+ @log.info "The number of starting database entries: " + startingCount.to_s
36
52
 
37
53
  begin
38
- puts "Check the starting count in the DB is 2 entries: " +
39
- blue(assert_equal(2, UsefulDB.count()).to_s)
40
-
41
- entry = {"tag" => ["install", "rubygems", "website", "usefuldb"], "value" => "http://rubygems.org/usefuldb"}
42
- puts "Create a new entry: " + entry.inspect
43
-
44
- puts "Test to check adding duplicate element to the DB fails"
45
- UsefulDB.add(entry, {})
54
+ @log.info "Test to check adding an element to the database succeeds"
55
+ entry1 = {"tag" => ["testing", "the", "database", "dbtest"], "value" => "dbtest", "description" => "dbtest"}
56
+ @log.info "Create a new entry:" + entry1.inspect
57
+ UsefulDB.add(entry1, @log)
58
+ @log.info "Adding element to the database"
59
+
60
+ @log.info "Check the total number of entries in the DB was increased by one " +
61
+ assert_equal(startingCount + 1, UsefulDB.count(@log)).to_s
62
+
63
+ @log.info "Test to check adding duplicate element to the DB fails"
64
+ entry2 = {"tag" => ["install", "rubygems", "website", "usefuldb"], "value" => "http://rubygems.org/usefuldb", "description" => "Website URL for the usefuldb gem"}
65
+ @log.info "Create a new entry: " + entry2.inspect
66
+ UsefulDB.add(entry2, @log)
46
67
 
47
68
  rescue UsefulDB::EmptyDB => e
48
69
  assert(false, red(e.message))
49
70
  rescue UsefulDB::EntryInDB => e
50
- puts red(e.message) + green(" this is expected")
51
- #puts e.backtrace
71
+ @log.info e.message + " this is expected"
52
72
  end
53
73
 
54
- begin
55
- puts "Write the DB structure back to disk"
56
- UsefulDB.dbSave
57
- UsefulDB.dbLoad
58
-
59
- puts "Check the total number of entries in the DB is still 2 " +
60
- blue(assert_equal(2, UsefulDB.count).to_s)
61
- rescue UsefulDB::EmptyDB => e
62
- assert(false, red(e.message))
63
- end
74
+ tempCount = startingCount + 1
75
+ @log.info "Check the total number of entries in the DB is still #{tempCount} " +
76
+ assert_equal(startingCount + 1, UsefulDB.count(@log)).to_s
64
77
 
65
- msg = "Test to check adding new element to the DB succeeds: "
66
78
  begin
67
- entry2 = {"tag" => ["interesting", "gem", "website", "twitter"], "value" => "https://github.com/sferik/twitter/"}
68
- puts "Creating another element" + entry2.inspect
79
+ @log.info "Write the DB structure back to disk and then reload"
80
+ UsefulDB.dbSave(@log)
81
+ UsefulDB.dbLoad(@log)
69
82
 
70
- UsefulDB.add(entry2, {})
71
- puts msg + blue(assert_equal(3, UsefulDB.count).to_s)
83
+ @log.info "Check the total number of entries in the DB is still #{tempCount} " +
84
+ assert_equal(startingCount + 1, UsefulDB.count(@log)).to_s
72
85
 
73
- rescue UsefulDB::EntryInDB => e
74
- assert(false, red(e.message))
75
- #puts e.backtrace
76
- rescue UsefulDB::EmptyDB => e
77
- assert(false, red(e.message))
78
- end
79
-
80
- puts green("test_add passed")
81
- end
82
-
83
-
84
- # Test to check saving entries to the database
85
- def test_save
86
- puts yellow("\n## Executing test_save")
87
-
88
- msg = "Test to check adding new element to the DB succeeds: "
89
- begin
90
- entry = {"tag" => ["interesting", "gem", "website", "twitter"], "value" => "https://github.com/sferik/twitter/"}
91
- puts "Creating another element" + entry.inspect
86
+ @log.info "Deleting this test entry from the database"
87
+ UsefulDB::remove(startingCount, @log)
92
88
 
93
- UsefulDB.add(entry, {})
94
- puts msg + blue(assert_equal(3, UsefulDB.count).to_s)
95
- rescue UsefulDB::EntryInDB => e
96
- puts red(e.message) + green(" this is expected")
97
- #puts e.backtrace
98
- rescue UsefulDB::EmptyDB => e
99
- assert(false, red(e.message))
100
- end
101
-
102
- begin
103
- puts "Saving the DB"
104
- UsefulDB.dbSave
105
- UsefulDB.dbLoad
106
-
107
- puts "Check the total number of entries in the DB is now 3 " +
108
- blue(assert_equal(3, UsefulDB.count).to_s)
109
- rescue UsefulDB::EmptyDB => e
110
- assert(false, red(e.message))
111
- end
112
-
113
- begin
114
- UsefulDB.remove(2, {})
115
- UsefulDB.dbSave
116
- rescue UsefulDB::KeyOutOfBounds => e
117
- assert(false, red(e.message))
118
- rescue UsefulDB::EmptyDB => e
119
- assert(false, red(e.message))
120
- end
121
-
122
- puts green("test_save passed")
123
- end
124
-
125
-
126
- # Test to check removal of entries from the database
127
- def test_remove()
128
- puts yellow("\n## Executing test_remove")
129
-
130
- begin
131
- puts "Test to check adding new element to the DB succeeds"
89
+ @log.info "Write the DB structure back to disk and then reload"
90
+ UsefulDB.dbSave(@log)
91
+ UsefulDB.dbLoad(@log)
132
92
 
133
- entry = {"tag" => ["test"], "value" => "testvalue"}
134
- entry2 = {"tag" => ["test2"], "value" => "testvalue2"}
135
- puts "Creating another element" + entry.inspect + " and " + entry2.inspect
136
-
137
- UsefulDB.add(entry, {})
138
- UsefulDB.add(entry2, {})
139
- rescue UsefulDB::EntryInDB => e
140
- assert(false, red(e.message))
141
- end
142
-
143
- begin
144
- puts "Saving the DB"
145
- UsefulDB.dbSave
146
- UsefulDB.dbLoad
147
-
148
- puts "Removing those 2 entries from the database"
149
- UsefulDB.remove(2, {})
150
- puts blue(assert_equal(3, UsefulDB.count))
151
- UsefulDB.remove(2, {})
152
- puts blue(assert_equal(2, UsefulDB.count))
153
-
154
- puts "Saving the DB"
155
- UsefulDB.dbSave
156
- rescue UsefulDB::KeyOutOfBounds => e
157
- assert(false, red(e.message))
93
+ @log.info "Check the total number of entries in the DB is back to #{startingCount} " +
94
+ assert_equal(startingCount, UsefulDB.count(@log)).to_s
158
95
  rescue UsefulDB::EmptyDB => e
159
96
  assert(false, red(e.message))
160
- end
161
-
162
- puts green("test_remove passed")
97
+ end
98
+
99
+ @log.info "test_add passed"
163
100
  end
164
101
 
165
102
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: usefuldb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-07-28 00:00:00.000000000 Z
12
+ date: 2012-08-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -68,17 +68,17 @@ executables:
68
68
  extensions: []
69
69
  extra_rdoc_files: []
70
70
  files:
71
- - lib/usefuldb/utilities.rb
72
- - lib/usefuldb/settings.rb
71
+ - lib/usefuldb.rb
73
72
  - lib/usefuldb/version.rb
74
73
  - lib/usefuldb/gui.rb
74
+ - lib/usefuldb/utilities.rb
75
75
  - lib/usefuldb/exceptions.rb
76
- - lib/usefuldb.rb
76
+ - lib/usefuldb/settings.rb
77
77
  - bin/usefuldb
78
- - README
79
78
  - COPYING
80
79
  - CHANGELOG
81
80
  - Rakefile
81
+ - README
82
82
  - resources/db.yaml
83
83
  - test/main_test.rb
84
84
  homepage: http://rubygems.org/gems/usefuldb
@@ -104,7 +104,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
104
104
  version: '0'
105
105
  requirements: []
106
106
  rubyforge_project:
107
- rubygems_version: 1.8.24
107
+ rubygems_version: 1.8.23
108
108
  signing_key:
109
109
  specification_version: 3
110
110
  summary: A simple commands and URLs database for storage of useful information