swift 0.7.0 → 0.7.1
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.
- data/VERSION +1 -1
- data/ext/attribute.cc +1 -1
- data/ext/query.cc +7 -2
- data/swift.gemspec +2 -2
- data/test/test_adapter.rb +5 -0
- data/test/test_scheme.rb +21 -19
- metadata +3 -3
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.7.
|
1
|
+
0.7.1
|
data/ext/attribute.cc
CHANGED
@@ -5,7 +5,7 @@ ID fcall;
|
|
5
5
|
VALUE attribute_default(VALUE self) {
|
6
6
|
VALUE value = rb_iv_get(self, "@default");
|
7
7
|
|
8
|
-
if (NIL_P(value) || rb_special_const_p(value))
|
8
|
+
if (NIL_P(value) || rb_obj_is_kind_of(value, rb_cNumeric) || rb_special_const_p(value))
|
9
9
|
return value;
|
10
10
|
else if (rb_respond_to(value, fcall))
|
11
11
|
return rb_funcall(value, fcall, 0);
|
data/ext/query.cc
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
#include "query.h"
|
2
2
|
|
3
3
|
ID fstrftime, fto_s, fusec;
|
4
|
-
VALUE dtformat, tzformat;
|
4
|
+
VALUE dtformat, tzformat, utf8;
|
5
5
|
|
6
6
|
VALUE query_execute(Query *query) {
|
7
7
|
try {
|
@@ -61,7 +61,7 @@ void query_bind_values(Query *query, VALUE bind_values, std::string driver) {
|
|
61
61
|
else {
|
62
62
|
bind_value = TO_S(bind_value);
|
63
63
|
if (strcmp(rb_enc_get(bind_value)->name, "UTF-8") != 0)
|
64
|
-
bind_value = rb_str_encode(bind_value,
|
64
|
+
bind_value = rb_str_encode(bind_value, utf8, 0, Qnil);
|
65
65
|
query->bind.push_back(dbi::PARAM((unsigned char*)RSTRING_PTR(bind_value), RSTRING_LEN(bind_value)));
|
66
66
|
}
|
67
67
|
}
|
@@ -73,4 +73,9 @@ void init_swift_query() {
|
|
73
73
|
fusec = rb_intern("usec");
|
74
74
|
dtformat = rb_str_new2("%F %T.");
|
75
75
|
tzformat = rb_str_new2("%z");
|
76
|
+
utf8 = rb_str_new2("UTF-8");
|
77
|
+
|
78
|
+
rb_global_variable(&utf8);
|
79
|
+
rb_global_variable(&tzformat);
|
80
|
+
rb_global_variable(&dtformat);
|
76
81
|
}
|
data/swift.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{swift}
|
8
|
-
s.version = "0.7.
|
8
|
+
s.version = "0.7.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Shane Hanna", "Bharanee 'Barney' Rathna"]
|
12
|
-
s.date = %q{2010-09-
|
12
|
+
s.date = %q{2010-09-24}
|
13
13
|
s.description = %q{A rational rudimentary database abstraction.}
|
14
14
|
s.email = ["shane.hanna@gmail.com", "deepfryed@gmail.com"]
|
15
15
|
s.extensions = ["ext/extconf.rb"]
|
data/test/test_adapter.rb
CHANGED
@@ -115,6 +115,11 @@ describe 'Adapter' do
|
|
115
115
|
data = "Sally Arthurton\tsally@local\nJonas Arthurton\tjonas@local\n"
|
116
116
|
assert_equal 2, @db.write('users', %w{name email}, data)
|
117
117
|
end
|
118
|
+
|
119
|
+
it 'writes with no columns specified' do
|
120
|
+
data = "1\tSally Arthurton\tsally@local\t2010-01-01 00:00:00\n"
|
121
|
+
assert_equal 1, @db.write('users', [], data)
|
122
|
+
end
|
118
123
|
end
|
119
124
|
end
|
120
125
|
end
|
data/test/test_scheme.rb
CHANGED
@@ -7,6 +7,7 @@ describe 'scheme' do
|
|
7
7
|
attribute :id, Swift::Type::Integer, serial: true, key: true
|
8
8
|
attribute :name, Swift::Type::String, default: "dave"
|
9
9
|
attribute :age, Swift::Type::Integer, default: 18
|
10
|
+
attribute :height, Swift::Type::Float, default: 172.25
|
10
11
|
attribute :email, Swift::Type::String
|
11
12
|
attribute :verified, Swift::Type::Boolean, default: false
|
12
13
|
attribute :created_at, Swift::Type::Time, default: proc { Time.now }
|
@@ -15,37 +16,38 @@ describe 'scheme' do
|
|
15
16
|
|
16
17
|
describe 'attributes' do
|
17
18
|
it 'defines attributes' do
|
18
|
-
|
19
|
+
user = @user.new
|
19
20
|
%w(id name age email created_at).each do |m|
|
20
|
-
assert
|
21
|
-
assert
|
21
|
+
assert user.respond_to?(m), "responds to m"
|
22
|
+
assert user.respond_to?("#{m}="), "responds to m="
|
22
23
|
end
|
23
24
|
end
|
24
25
|
end
|
25
26
|
|
26
27
|
describe 'instantiation' do
|
27
28
|
it 'returns a new instance with defaults' do
|
28
|
-
|
29
|
-
assert_kind_of @user,
|
30
|
-
assert_kind_of Time,
|
29
|
+
user = @user.new
|
30
|
+
assert_kind_of @user, user
|
31
|
+
assert_kind_of Time, user.created_at
|
31
32
|
|
32
|
-
assert_equal nil,
|
33
|
-
assert_equal 'dave',
|
34
|
-
assert_equal 18,
|
35
|
-
assert_equal
|
36
|
-
assert_equal
|
33
|
+
assert_equal nil, user.id
|
34
|
+
assert_equal 'dave', user.name
|
35
|
+
assert_equal 18, user.age
|
36
|
+
assert_equal 172.25, user.height
|
37
|
+
assert_equal nil, user.email
|
38
|
+
assert_equal false, user.verified
|
37
39
|
end
|
38
40
|
|
39
|
-
it 'returns a new
|
40
|
-
|
41
|
+
it 'returns a new user' do
|
42
|
+
user = @user.new name: 'cary', age: 22, email: 'cary@local'
|
41
43
|
|
42
|
-
assert_kind_of @user,
|
43
|
-
assert_kind_of Time,
|
44
|
+
assert_kind_of @user, user
|
45
|
+
assert_kind_of Time, user.created_at
|
44
46
|
|
45
|
-
assert_equal nil,
|
46
|
-
assert_equal 'cary',
|
47
|
-
assert_equal 22,
|
48
|
-
assert_equal 'cary@local',
|
47
|
+
assert_equal nil, user.id
|
48
|
+
assert_equal 'cary', user.name
|
49
|
+
assert_equal 22, user.age
|
50
|
+
assert_equal 'cary@local', user.email
|
49
51
|
end
|
50
52
|
end
|
51
53
|
end
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 7
|
8
|
-
-
|
9
|
-
version: 0.7.
|
8
|
+
- 1
|
9
|
+
version: 0.7.1
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Shane Hanna
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-09-
|
18
|
+
date: 2010-09-24 00:00:00 +10:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|