rubyfb 0.6.1 → 0.6.2
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +10 -0
- data/Manifest +1 -1
- data/Rakefile +1 -1
- data/ext/TypeMap.c +3 -5
- data/lib/active_record/connection_adapters/rubyfb_adapter.rb +6 -1
- data/lib/arel/visitors/{rubyfb_15compat.rb → fb15/rubyfb.rb} +1 -2
- data/lib/arel/visitors/rubyfb.rb +0 -1
- data/lib/rubyfb_lib.so +0 -0
- data/rubyfb.gemspec +3 -3
- data/test/TypeTest.rb +5 -3
- metadata +5 -5
data/CHANGELOG
CHANGED
@@ -1,3 +1,13 @@
|
|
1
|
+
v0.6.2 ==
|
2
|
+
Update arel visitors
|
3
|
+
Use round() when scaling fixed parameter values
|
4
|
+
|
5
|
+
v0.6.1 ==
|
6
|
+
Fix incorrect parameter scaling for fixed precision decimals stored in int32, int16 fields
|
7
|
+
http://rubyforge.org/tracker/index.php?func=detail&aid=29406&group_id=9658&atid=37369
|
8
|
+
Restore pre 3.0.7 rails compatibility
|
9
|
+
http://rubyforge.org/tracker/index.php?func=detail&aid=29398&group_id=9658&atid=37369
|
10
|
+
|
1
11
|
v0.6.0 ==
|
2
12
|
API changes:
|
3
13
|
!!WARNING!!
|
data/Manifest
CHANGED
@@ -52,8 +52,8 @@ lib/Connection.rb
|
|
52
52
|
lib/ProcedureCall.rb
|
53
53
|
lib/SQLType.rb
|
54
54
|
lib/active_record/connection_adapters/rubyfb_adapter.rb
|
55
|
+
lib/arel/visitors/fb15/rubyfb.rb
|
55
56
|
lib/arel/visitors/rubyfb.rb
|
56
|
-
lib/arel/visitors/rubyfb_15compat.rb
|
57
57
|
lib/mkdoc
|
58
58
|
lib/rubyfb.rb
|
59
59
|
lib/rubyfb_lib.so
|
data/Rakefile
CHANGED
data/ext/TypeMap.c
CHANGED
@@ -58,15 +58,13 @@ void populateTimeField(VALUE, XSQLVAR *);
|
|
58
58
|
void populateTimestampField(VALUE, XSQLVAR *);
|
59
59
|
|
60
60
|
long long sql_scale(VALUE value, XSQLVAR *field) {
|
61
|
-
|
62
|
-
|
63
|
-
} else {
|
64
|
-
value = rb_funcall(value, rb_intern("to_f"), 0);
|
61
|
+
value = rb_funcall(value, rb_intern("to_f"), 0);
|
62
|
+
if(field->sqlscale) {
|
65
63
|
// this requires special care - decimal point shift can cause type overflow
|
66
64
|
// the easyest way is to use ruby arithmetics (although it's not the fastes)
|
67
65
|
value = rb_funcall(value, rb_intern("*"), 1, LONG2NUM((long)pow(10, abs(field->sqlscale))));
|
68
66
|
}
|
69
|
-
return NUM2LL(value);
|
67
|
+
return NUM2LL(rb_funcall(value, rb_intern("round"), 0));
|
70
68
|
}
|
71
69
|
|
72
70
|
VALUE sql_unscale(VALUE value, XSQLVAR *field) {
|
@@ -6,10 +6,11 @@ require 'rubyfb_options'
|
|
6
6
|
|
7
7
|
if defined?(Arel) then
|
8
8
|
if Rubyfb::Options.fb15_compat
|
9
|
-
require 'arel/visitors/
|
9
|
+
require 'arel/visitors/fb15/rubyfb'
|
10
10
|
else
|
11
11
|
require 'arel/visitors/rubyfb'
|
12
12
|
end
|
13
|
+
Arel::Visitors::VISITORS['rubyfb'] = Arel::Visitors::RubyFB if defined?(Arel::Visitors::VISITORS)
|
13
14
|
end
|
14
15
|
|
15
16
|
module Rubyfb # :nodoc: all
|
@@ -333,6 +334,10 @@ module ActiveRecord
|
|
333
334
|
@statements = {}
|
334
335
|
end
|
335
336
|
|
337
|
+
def self.visitor_for(pool) # :nodoc:
|
338
|
+
Arel::Visitors::RubyFB.new(pool)
|
339
|
+
end
|
340
|
+
|
336
341
|
ADAPTER_NAME = 'Rubyfb'.freeze
|
337
342
|
|
338
343
|
def adapter_name #:nodoc:
|
data/lib/arel/visitors/rubyfb.rb
CHANGED
data/lib/rubyfb_lib.so
CHANGED
Binary file
|
data/rubyfb.gemspec
CHANGED
@@ -2,16 +2,16 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = "rubyfb"
|
5
|
-
s.version = "0.6.
|
5
|
+
s.version = "0.6.2"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["George Georgiev"]
|
9
|
-
s.date = "
|
9
|
+
s.date = "2012-01-04"
|
10
10
|
s.description = "Firebird SQL access library"
|
11
11
|
s.email = "georgiev@heatbs.com"
|
12
12
|
s.extensions = ["ext/extconf.rb"]
|
13
13
|
s.extra_rdoc_files = ["CHANGELOG", "LICENSE", "README", "examples/example01.rb", "ext/extconf.rb", "lib/Connection.rb", "lib/ProcedureCall.rb", "lib/SQLType.rb", "lib/rubyfb.rb", "lib/rubyfb_options.rb", "lib/src.rb"]
|
14
|
-
s.files = ["CHANGELOG", "LICENSE", "Manifest", "README", "Rakefile", "examples/example01.rb", "ext/AddUser.c", "ext/AddUser.h", "ext/Backup.c", "ext/Backup.h", "ext/Blob.c", "ext/Blob.h", "ext/Common.c", "ext/Common.h", "ext/Connection.c", "ext/Connection.h", "ext/DataArea.c", "ext/DataArea.h", "ext/Database.c", "ext/Database.h", "ext/FireRuby.c", "ext/FireRuby.h", "ext/FireRubyException.c", "ext/FireRubyException.h", "ext/Generator.c", "ext/Generator.h", "ext/RemoveUser.c", "ext/RemoveUser.h", "ext/Restore.c", "ext/Restore.h", "ext/ResultSet.c", "ext/ResultSet.h", "ext/Row.c", "ext/Row.h", "ext/ServiceManager.c", "ext/ServiceManager.h", "ext/Services.c", "ext/Services.h", "ext/Statement.c", "ext/Statement.h", "ext/Transaction.c", "ext/Transaction.h", "ext/TypeMap.c", "ext/TypeMap.h", "ext/extconf.rb", "ext/rfbint.h", "ext/rfbsleep.h", "ext/rfbstr.c", "ext/rfbstr.h", "ext/uncrustify.cfg", "lib/Connection.rb", "lib/ProcedureCall.rb", "lib/SQLType.rb", "lib/active_record/connection_adapters/rubyfb_adapter.rb", "lib/arel/visitors/rubyfb.rb", "lib/arel/visitors/
|
14
|
+
s.files = ["CHANGELOG", "LICENSE", "Manifest", "README", "Rakefile", "examples/example01.rb", "ext/AddUser.c", "ext/AddUser.h", "ext/Backup.c", "ext/Backup.h", "ext/Blob.c", "ext/Blob.h", "ext/Common.c", "ext/Common.h", "ext/Connection.c", "ext/Connection.h", "ext/DataArea.c", "ext/DataArea.h", "ext/Database.c", "ext/Database.h", "ext/FireRuby.c", "ext/FireRuby.h", "ext/FireRubyException.c", "ext/FireRubyException.h", "ext/Generator.c", "ext/Generator.h", "ext/RemoveUser.c", "ext/RemoveUser.h", "ext/Restore.c", "ext/Restore.h", "ext/ResultSet.c", "ext/ResultSet.h", "ext/Row.c", "ext/Row.h", "ext/ServiceManager.c", "ext/ServiceManager.h", "ext/Services.c", "ext/Services.h", "ext/Statement.c", "ext/Statement.h", "ext/Transaction.c", "ext/Transaction.h", "ext/TypeMap.c", "ext/TypeMap.h", "ext/extconf.rb", "ext/rfbint.h", "ext/rfbsleep.h", "ext/rfbstr.c", "ext/rfbstr.h", "ext/uncrustify.cfg", "lib/Connection.rb", "lib/ProcedureCall.rb", "lib/SQLType.rb", "lib/active_record/connection_adapters/rubyfb_adapter.rb", "lib/arel/visitors/fb15/rubyfb.rb", "lib/arel/visitors/rubyfb.rb", "lib/mkdoc", "lib/rubyfb.rb", "lib/rubyfb_lib.so", "lib/rubyfb_options.rb", "lib/src.rb", "mswin32fb/fbclient_mingw.def", "mswin32fb/fbclient_mingw.lib", "mswin32fb/fbclient_ms.lib", "mswin32fb/ibase.h", "mswin32fb/iberror.h", "test/AddRemoveUserTest.rb", "test/BackupRestoreTest.rb", "test/BlobTest.rb", "test/CharacterSetTest.rb", "test/ConnectionTest.rb", "test/DDLTest.rb", "test/DatabaseTest.rb", "test/FieldCharacterSetTest.rb", "test/GeneratorTest.rb", "test/KeyTest.rb", "test/ResultSetTest.rb", "test/RoleTest.rb", "test/RowCountTest.rb", "test/RowTest.rb", "test/SQLTest.rb", "test/SQLTypeTest.rb", "test/ServiceManagerTest.rb", "test/StatementTest.rb", "test/StoredProcedureTest.rb", "test/TestSetup.rb", "test/TransactionTest.rb", "test/TypeTest.rb", "rubyfb.gemspec"]
|
15
15
|
s.homepage = "http://rubyforge.org/projects/rubyfb"
|
16
16
|
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Rubyfb", "--main", "README"]
|
17
17
|
s.require_paths = ["lib", "ext"]
|
data/test/TypeTest.rb
CHANGED
@@ -23,15 +23,15 @@ class TypeTest < Test::Unit::TestCase
|
|
23
23
|
tx.execute("create table types_table (COL01 integer, "\
|
24
24
|
"COL02 float, COL03 decimal(10,2), "\
|
25
25
|
"COL04 numeric(5,3), COL05 date, COL06 timestamp, "\
|
26
|
-
"COL07 char(10), COL08 time, COL09 varchar(30))")
|
26
|
+
"COL07 char(10), COL08 time, COL09 varchar(30), COL10 decimal(9,2))")
|
27
27
|
end
|
28
28
|
|
29
29
|
cxn.start_transaction do |tx|
|
30
30
|
stmt = cxn.create_statement("insert into types_table values "\
|
31
|
-
"(?, ?, ?, ?, ?, ?, ?, ?, ?)")
|
31
|
+
"(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)")
|
32
32
|
stmt.exec([10, 100.2, 2378.65, 192.345,
|
33
33
|
Date.new(2005, 10, 21), Time.new, 'La la la',
|
34
|
-
Time.new, "Oobly Joobly"], tx)
|
34
|
+
Time.new, "Oobly Joobly", "2530.70".to_f], tx)
|
35
35
|
stmt.close
|
36
36
|
end
|
37
37
|
cxn.close
|
@@ -59,6 +59,7 @@ class TypeTest < Test::Unit::TestCase
|
|
59
59
|
assert(row[6].instance_of?(String))
|
60
60
|
assert(row[7].instance_of?(Time))
|
61
61
|
assert(row[8].instance_of?(String))
|
62
|
+
assert_equal("2530.70".to_f, row[9])
|
62
63
|
ensure
|
63
64
|
rows.close if rows != nil
|
64
65
|
cxn.close if cxn != nil
|
@@ -81,6 +82,7 @@ class TypeTest < Test::Unit::TestCase
|
|
81
82
|
assert(row[6].instance_of?(String))
|
82
83
|
assert(row[7].instance_of?(Time))
|
83
84
|
assert(row[8].instance_of?(String))
|
85
|
+
assert_equal("2530.70".to_f, row[9])
|
84
86
|
ensure
|
85
87
|
rows.close if rows != nil
|
86
88
|
cxn.close if cxn != nil
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubyfb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 3
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 6
|
9
|
-
-
|
10
|
-
version: 0.6.
|
9
|
+
- 2
|
10
|
+
version: 0.6.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- George Georgiev
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date:
|
18
|
+
date: 2012-01-04 00:00:00 Z
|
19
19
|
dependencies: []
|
20
20
|
|
21
21
|
description: Firebird SQL access library
|
@@ -91,8 +91,8 @@ files:
|
|
91
91
|
- lib/ProcedureCall.rb
|
92
92
|
- lib/SQLType.rb
|
93
93
|
- lib/active_record/connection_adapters/rubyfb_adapter.rb
|
94
|
+
- lib/arel/visitors/fb15/rubyfb.rb
|
94
95
|
- lib/arel/visitors/rubyfb.rb
|
95
|
-
- lib/arel/visitors/rubyfb_15compat.rb
|
96
96
|
- lib/mkdoc
|
97
97
|
- lib/rubyfb.rb
|
98
98
|
- lib/rubyfb_lib.so
|