dbf 2.0.2 → 2.0.3
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/CHANGELOG.md +3 -0
- data/README.md +2 -1
- data/dbf.gemspec +1 -1
- data/lib/dbf/table.rb +1 -1
- data/lib/dbf/version.rb +1 -1
- data/spec/dbf/column_spec.rb +2 -2
- data/spec/dbf/record_spec.rb +13 -8
- data/spec/dbf/table_spec.rb +17 -17
- metadata +4 -4
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -14,8 +14,9 @@ database files
|
|
14
14
|
DBF is tested to work with the following versions of ruby:
|
15
15
|
|
16
16
|
* MRI Ruby 1.8.6, 1.8.7, 1.9.1, 1.9.2 and 1.9.3
|
17
|
-
* JRuby 1.6.
|
17
|
+
* JRuby 1.6.x, 1.7.x
|
18
18
|
* REE 1.8.6, 1.8.7
|
19
|
+
* Rubinius (1.8 mode)
|
19
20
|
|
20
21
|
## Installation
|
21
22
|
|
data/dbf.gemspec
CHANGED
@@ -21,7 +21,7 @@ Gem::Specification.new do |s|
|
|
21
21
|
s.required_rubygems_version = '>= 1.3.0'
|
22
22
|
s.add_dependency 'fastercsv', '~> 1.5.4'
|
23
23
|
|
24
|
-
s.add_development_dependency 'rspec', '~> 2.
|
24
|
+
s.add_development_dependency 'rspec', '~> 2.11.0'
|
25
25
|
s.add_development_dependency 'rake', '~> 0.9.2'
|
26
26
|
|
27
27
|
# if RUBY_VERSION.to_f >= 1.9
|
data/lib/dbf/table.rb
CHANGED
data/lib/dbf/version.rb
CHANGED
data/spec/dbf/column_spec.rb
CHANGED
@@ -106,10 +106,10 @@ describe DBF::Column::Dbase do
|
|
106
106
|
if ruby_supports_mathn?
|
107
107
|
context 'when requiring mathn' do
|
108
108
|
it "casts to DateTime" do
|
109
|
-
|
109
|
+
lambda {
|
110
110
|
require 'mathn'
|
111
111
|
column.type_cast("Nl%\000\300Z\252\003")
|
112
|
-
|
112
|
+
}.call.should == DateTime.parse("2002-10-10T17:04:56+00:00")
|
113
113
|
end
|
114
114
|
end
|
115
115
|
end
|
data/spec/dbf/record_spec.rb
CHANGED
@@ -19,17 +19,22 @@ describe DBF::Record do
|
|
19
19
|
table = DBF::Table.new "#{DB_PATH}/dbase_8b.dbf"
|
20
20
|
table.record(9)
|
21
21
|
end
|
22
|
-
|
23
|
-
|
24
|
-
|
22
|
+
|
23
|
+
describe 'when other does not have attributes' do
|
24
|
+
it 'is false' do
|
25
|
+
(record == mock('other')).should be_false
|
26
|
+
end
|
25
27
|
end
|
26
28
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
29
|
+
describe 'if other attributes match' do
|
30
|
+
it 'is true' do
|
31
|
+
attributes = {:x => 1, :y => 2}
|
32
|
+
record.stub!(:attributes).and_return(attributes)
|
33
|
+
other = mock('object', :attributes => attributes)
|
34
|
+
(record == other).should be_true
|
35
|
+
end
|
32
36
|
end
|
37
|
+
|
33
38
|
end
|
34
39
|
|
35
40
|
describe 'column accessors' do
|
data/spec/dbf/table_spec.rb
CHANGED
@@ -41,7 +41,7 @@ describe DBF::Table do
|
|
41
41
|
end
|
42
42
|
|
43
43
|
describe "#schema" do
|
44
|
-
it "
|
44
|
+
it "matches the test schema fixture" do
|
45
45
|
table = DBF::Table.new "#{DB_PATH}/dbase_83.dbf"
|
46
46
|
control_schema = File.read("#{DB_PATH}/dbase_83_schema.txt")
|
47
47
|
table.schema.should == control_schema
|
@@ -56,7 +56,7 @@ describe DBF::Table do
|
|
56
56
|
end
|
57
57
|
|
58
58
|
describe 'when no path param passed' do
|
59
|
-
it '
|
59
|
+
it 'writes to STDOUT' do
|
60
60
|
begin
|
61
61
|
$stdout = StringIO.new
|
62
62
|
table.to_csv
|
@@ -68,7 +68,7 @@ describe DBF::Table do
|
|
68
68
|
end
|
69
69
|
|
70
70
|
describe 'when path param passed' do
|
71
|
-
it '
|
71
|
+
it 'creates a custom csv file' do
|
72
72
|
table.to_csv('test.csv')
|
73
73
|
File.exists?('test.csv').should be_true
|
74
74
|
end
|
@@ -95,19 +95,19 @@ describe DBF::Table do
|
|
95
95
|
let(:table) { DBF::Table.new "#{DB_PATH}/dbase_83.dbf" }
|
96
96
|
|
97
97
|
describe "with index" do
|
98
|
-
it "
|
98
|
+
it "returns the correct record" do
|
99
99
|
table.find(5).should == table.record(5)
|
100
100
|
end
|
101
101
|
end
|
102
102
|
|
103
103
|
describe 'with array of indexes' do
|
104
|
-
it "
|
104
|
+
it "returns the correct records" do
|
105
105
|
table.find([1, 5, 10]).should == [table.record(1), table.record(5), table.record(10)]
|
106
106
|
end
|
107
107
|
end
|
108
108
|
|
109
109
|
describe "with :all" do
|
110
|
-
it "
|
110
|
+
it "accepts a block" do
|
111
111
|
records = []
|
112
112
|
table.find(:all, :weight => 0.0) do |record|
|
113
113
|
records << record
|
@@ -115,11 +115,11 @@ describe DBF::Table do
|
|
115
115
|
records.should == table.find(:all, :weight => 0.0)
|
116
116
|
end
|
117
117
|
|
118
|
-
it "
|
118
|
+
it "returns all records if options are empty" do
|
119
119
|
table.find(:all).should == table.to_a
|
120
120
|
end
|
121
121
|
|
122
|
-
it "
|
122
|
+
it "returns matching records when used with options" do
|
123
123
|
table.find(:all, "WEIGHT" => 0.0).should == table.select {|r| r["weight"] == 0.0}
|
124
124
|
end
|
125
125
|
|
@@ -131,36 +131,36 @@ describe DBF::Table do
|
|
131
131
|
table.find(:all, "WEIGHT" => 0.0).should_not be_empty
|
132
132
|
end
|
133
133
|
|
134
|
-
it "
|
134
|
+
it "matches symbolized column names" do
|
135
135
|
table.find(:all, :WEIGHT => 0.0).should_not be_empty
|
136
136
|
end
|
137
137
|
|
138
|
-
it "
|
138
|
+
it "matches downcased column names" do
|
139
139
|
table.find(:all, "weight" => 0.0).should_not be_empty
|
140
140
|
end
|
141
141
|
|
142
|
-
it "
|
142
|
+
it "matches symbolized downcased column names" do
|
143
143
|
table.find(:all, :weight => 0.0).should_not be_empty
|
144
144
|
end
|
145
145
|
end
|
146
146
|
|
147
147
|
describe "with :first" do
|
148
|
-
it "
|
148
|
+
it "returns the first record if options are empty" do
|
149
149
|
table.find(:first).should == table.record(0)
|
150
150
|
end
|
151
151
|
|
152
|
-
it "
|
152
|
+
it "returns the first matching record when used with options" do
|
153
153
|
table.find(:first, "CODE" => "C").should == table.record(5)
|
154
154
|
end
|
155
155
|
|
156
|
-
it "
|
156
|
+
it "ANDs multiple search terms" do
|
157
157
|
table.find(:first, "ID" => 30, "IMAGE" => "graphics/00000001/TBC01.jpg").should be_nil
|
158
158
|
end
|
159
159
|
end
|
160
160
|
end
|
161
161
|
|
162
162
|
describe "filename" do
|
163
|
-
it '
|
163
|
+
it 'is dbase_03.dbf' do
|
164
164
|
table = DBF::Table.new "#{DB_PATH}/dbase_03.dbf"
|
165
165
|
table.filename.should == "dbase_03.dbf"
|
166
166
|
end
|
@@ -168,14 +168,14 @@ describe DBF::Table do
|
|
168
168
|
|
169
169
|
describe 'has_memo_file?' do
|
170
170
|
describe 'without a memo file' do
|
171
|
-
it '
|
171
|
+
it 'is false' do
|
172
172
|
table = DBF::Table.new "#{DB_PATH}/dbase_03.dbf"
|
173
173
|
table.has_memo_file?.should be_false
|
174
174
|
end
|
175
175
|
end
|
176
176
|
|
177
177
|
describe 'with a memo file' do
|
178
|
-
it '
|
178
|
+
it 'is true' do
|
179
179
|
table = DBF::Table.new "#{DB_PATH}/dbase_30.dbf"
|
180
180
|
table.has_memo_file?.should be_true
|
181
181
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dbf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.3
|
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-11-
|
12
|
+
date: 2012-11-28 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: fastercsv
|
@@ -34,7 +34,7 @@ dependencies:
|
|
34
34
|
requirements:
|
35
35
|
- - ~>
|
36
36
|
- !ruby/object:Gem::Version
|
37
|
-
version: 2.
|
37
|
+
version: 2.11.0
|
38
38
|
type: :development
|
39
39
|
prerelease: false
|
40
40
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -42,7 +42,7 @@ dependencies:
|
|
42
42
|
requirements:
|
43
43
|
- - ~>
|
44
44
|
- !ruby/object:Gem::Version
|
45
|
-
version: 2.
|
45
|
+
version: 2.11.0
|
46
46
|
- !ruby/object:Gem::Dependency
|
47
47
|
name: rake
|
48
48
|
requirement: !ruby/object:Gem::Requirement
|