amalgalite 0.7.3 → 0.7.4

Sign up to get free protection for your applications and to get access to all the features.
data/HISTORY CHANGED
@@ -1,4 +1,11 @@
1
1
  = Amalgalite Changelog
2
+ == Version 0.7.4 - 2009-02-08
3
+
4
+ === Bug Fixes
5
+
6
+ * fix Database#first_row_from not behaving the same as Database#execute() when
7
+ there are no results. [reported by James Edward Gray II]
8
+
2
9
  == Version 0.7.3 - 2009-02-08
3
10
 
4
11
  === Enhancements
@@ -334,21 +334,21 @@ module Amalgalite
334
334
  ##
335
335
  # Execute a sql statment, and only return the first row of results. This
336
336
  # is a shorthand method when you only want a single row of results from a
337
- # query.
337
+ # query. If there is no result, then return an empty array
338
338
  #
339
339
  # It is in all other was, exactly like #execute()
340
340
  #
341
341
  def first_row_from( sql, *bind_params )
342
342
  stmt = prepare( sql )
343
343
  stmt.bind( *bind_params)
344
- row = stmt.next_row
344
+ row = stmt.next_row || []
345
345
  stmt.close
346
346
  return row
347
347
  end
348
348
 
349
349
  ##
350
350
  # Execute an sql statement, and return only the first column of the first
351
- # row.
351
+ # row. If there is no result, return nil.
352
352
  #
353
353
  # It is in all other ways, exactly like #first_row_from()
354
354
  #
@@ -9,7 +9,7 @@ module Amalgalite
9
9
 
10
10
  MAJOR = 0
11
11
  MINOR = 7
12
- BUILD = 3
12
+ BUILD = 4
13
13
 
14
14
  #
15
15
  # return the Version as an array of MAJOR, MINOR, BUILD
@@ -122,6 +122,11 @@ describe Amalgalite::Database do
122
122
  db.execute_batch( @schema ).should == 5
123
123
  end
124
124
 
125
+ it "returns an empty array when there are no results" do
126
+ row = @iso_db.execute("SELECT * from subcountry where country = 'Antarctica'")
127
+ row.should be_empty
128
+ end
129
+
125
130
  it "traces the execution of code" do
126
131
  db = Amalgalite::Database.new( SpecInfo.test_db )
127
132
  sql = "CREATE TABLE trace_test( x, y, z)"
@@ -360,6 +365,7 @@ describe Amalgalite::Database do
360
365
  all_sub.should == ( us_sub + other_sub )
361
366
 
362
367
  end
368
+
363
369
  it "rolls back a savepoint" do
364
370
  all_sub = @iso_db.execute("SELECT count(*) as cnt from subcountry").first['cnt']
365
371
  lambda {
@@ -413,6 +419,16 @@ describe Amalgalite::Database do
413
419
  row['count'].should == 232
414
420
  end
415
421
 
422
+ it "returns and empty row if there are no results for the first row" do
423
+ row = @iso_db.first_row_from("SELECT * from subcountry where country = 'Antarctica'")
424
+ row.should be_empty
425
+ end
426
+
427
+ it "returns nil if there is no value in the first value" do
428
+ val = @iso_db.first_value_from("select * from subcountry where country = 'Antarctica'" )
429
+ val.should == nil
430
+ end
431
+
416
432
  it "returns the first value of results as a conveinience" do
417
433
  val = @iso_db.first_value_from("SELECT count(*) from subcountry ")
418
434
  val.should == 3995
data/tasks/config.rb CHANGED
@@ -85,7 +85,7 @@ Configuration.for('rdoc') {
85
85
  files Configuration.for('packaging').files.rdoc
86
86
  main_page files.first
87
87
  title Configuration.for('project').name
88
- options %w[ --line-numbers --inline-source ] #-f darkfish ]
88
+ options %w[ --line-numbers --inline-source -T darkfish ]
89
89
  output_dir "doc"
90
90
  }
91
91
 
@@ -8,9 +8,8 @@ if rdoc_config = Configuration.for_if_exist?('rdoc') then
8
8
 
9
9
  namespace :doc do
10
10
 
11
+ require 'rdoc'
11
12
  require 'rake/rdoctask'
12
- #gem 'darkfish-rdoc'
13
- #require 'darkfish-rdoc'
14
13
 
15
14
  # generating documentation locally
16
15
  Rake::RDocTask.new do |rdoc|
@@ -19,7 +18,7 @@ if rdoc_config = Configuration.for_if_exist?('rdoc') then
19
18
  rdoc.rdoc_files = rdoc_config.files
20
19
  rdoc.title = rdoc_config.title
21
20
  rdoc.main = rdoc_config.main_page
22
- end
21
+ end
23
22
 
24
23
  if rubyforge_config = Configuration.for_if_exist?('rubyforge') then
25
24
  desc "Deploy the RDoc documentation to #{rubyforge_config.rdoc_location}"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: amalgalite
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.3
4
+ version: 0.7.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeremy Hinegardner
@@ -186,6 +186,8 @@ post_install_message:
186
186
  rdoc_options:
187
187
  - --line-numbers
188
188
  - --inline-source
189
+ - -T
190
+ - darkfish
189
191
  - --main
190
192
  - README
191
193
  require_paths: