rbase-ff 0.9 → 0.9.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.
- checksums.yaml +4 -4
- data/README.md +27 -5
- data/README.md~ +52 -0
- data/lib/rbase/builder.rb +1 -1
- data/lib/rbase/columns.rb +1 -1
- data/lib/rbase/record.rb +6 -2
- data/lib/rbase/table.rb +6 -1
- data/lib/rbase.rb +5 -8
- data/rbase.gemspec +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c9eb6abf1497f3b0c96a94d0193e0001d0a2613e
|
4
|
+
data.tar.gz: 14008e5e4c8db6fd58e34c8ab6a33ae4445d4e3f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 56bee3cab28f813a227c009940a7d14cec5f48f67a9969d4a967d86d327bd0b422ff6e100a9b92d4af8a0058ebda490e779c01107bc416353c0e2c7a03026dfa
|
7
|
+
data.tar.gz: 2fff2c4048bb5e3d5cb3a3d432ef124796ef5bbcdbc7cd93a18384db393e77fbba73309ede0960aa941e6b1f69f51a7c1a9ff413631c9f6dde0e523faa7af6c4
|
data/README.md
CHANGED
@@ -1,10 +1,20 @@
|
|
1
|
-
rbase
|
2
|
-
|
1
|
+
rbase-ff
|
2
|
+
========
|
3
3
|
|
4
|
-
|
4
|
+
ChangeLog
|
5
|
+
* 2018-04-14 Reading was broken due to relying on offset data in record data, which may be inaccurate.
|
6
|
+
* 2018-04-14 No longer necessary to require 'date' separately
|
7
|
+
* 2018-04-14 Added [] method to record; you can now do record[:field_name] instead of record.field_name
|
5
8
|
|
6
|
-
|
7
|
-
|
9
|
+
|
10
|
+
=======
|
11
|
+
|
12
|
+
rbase gem (working with dbf files) for ruby 1.9.3+ (iconv removed, some fixes)
|
13
|
+
|
14
|
+
I have copied this gem, made some minor changes, and pushed it to rubygems for public installation. There are many forks of this on github, but no one has bothered to push it to rubygems that I can find. This version is found on rubygems.org as rbase-ff. I will continue to maintain this version and keep the rubygems version updated from here. -- Tom L.
|
15
|
+
|
16
|
+
How to write a DBF
|
17
|
+
==================
|
8
18
|
|
9
19
|
```ruby
|
10
20
|
require 'rubygems'
|
@@ -25,3 +35,15 @@ RBase::Table.open 'people' do |t|
|
|
25
35
|
t.create name: 'People-4', birthdate: Date.new(2020,1,2), active: true, tax: 8.2
|
26
36
|
end
|
27
37
|
```
|
38
|
+
|
39
|
+
How to read a DBF
|
40
|
+
=================
|
41
|
+
|
42
|
+
```ruby
|
43
|
+
RBase::Table.open 'people'.each do |record|
|
44
|
+
puts record.name
|
45
|
+
puts record.birthdate
|
46
|
+
puts record.active
|
47
|
+
puts record.tax
|
48
|
+
end
|
49
|
+
```
|
data/README.md~
ADDED
@@ -0,0 +1,52 @@
|
|
1
|
+
rbase-ff
|
2
|
+
========
|
3
|
+
|
4
|
+
ChangeLog
|
5
|
+
* 2018-04-14 Reading was broken due to relying on offset data in record data, which may be inaccurate.
|
6
|
+
<<<<<<< HEAD
|
7
|
+
* 2018-04-14 No longer necessary to require 'date' separately
|
8
|
+
* 2018-04-14 Added [] method to record; you can now do record[:field_name]
|
9
|
+
instead of record.field_name
|
10
|
+
|
11
|
+
|
12
|
+
=======
|
13
|
+
|
14
|
+
>>>>>>> 026944151965b8526adbfb15c064be25f13268fd
|
15
|
+
rbase gem (working with dbf files) for ruby 1.9.3+ (iconv removed, some fixes)
|
16
|
+
|
17
|
+
I have copied this gem, made some minor changes, and pushed it to rubygems for public installation. There are many forks of this on github, but no one has bothered to push it to rubygems that I can find. This version is found on rubygems.org as rbase-ff. I will continue to maintain this version and keep the rubygems version updated from here. -- Tom L.
|
18
|
+
|
19
|
+
How to write a DBF
|
20
|
+
==================
|
21
|
+
|
22
|
+
```ruby
|
23
|
+
require 'rubygems'
|
24
|
+
require "date"
|
25
|
+
require "rbase"
|
26
|
+
|
27
|
+
RBase.create_table 'people' do |t|
|
28
|
+
t.column :name, :string, :size => 30
|
29
|
+
t.column :birthdate, :date
|
30
|
+
t.column :active, :boolean
|
31
|
+
t.column :tax, :integer, :size => 10, :decimal => 2
|
32
|
+
end
|
33
|
+
|
34
|
+
RBase::Table.open 'people' do |t|
|
35
|
+
t.create name: 'People-1', birthdate: Date.new(2017,1,2), active: true, tax: 5.2
|
36
|
+
t.create name: 'People-2', birthdate: Date.new(2018,1,2), active: true, tax: 6.2
|
37
|
+
t.create name: 'People-3', birthdate: Date.new(2019,1,2), active: true, tax: 7.2
|
38
|
+
t.create name: 'People-4', birthdate: Date.new(2020,1,2), active: true, tax: 8.2
|
39
|
+
end
|
40
|
+
```
|
41
|
+
|
42
|
+
How to read a DBF
|
43
|
+
=================
|
44
|
+
|
45
|
+
```ruby
|
46
|
+
RBase::Table.open 'people'.each do |record|
|
47
|
+
puts record.name
|
48
|
+
puts record.birthdate
|
49
|
+
puts record.active
|
50
|
+
puts record.tax
|
51
|
+
end
|
52
|
+
```
|
data/lib/rbase/builder.rb
CHANGED
@@ -23,7 +23,7 @@ module RBase
|
|
23
23
|
# For documentation on column parameters see RBase::Schema.column documentation.
|
24
24
|
#
|
25
25
|
def self.create_table(name, options = {})
|
26
|
-
options[:language] ||=
|
26
|
+
options[:language] ||= LANGUAGE_US_DOS
|
27
27
|
|
28
28
|
schema = Schema.new
|
29
29
|
yield schema if block_given?
|
data/lib/rbase/columns.rb
CHANGED
data/lib/rbase/record.rb
CHANGED
@@ -36,7 +36,7 @@ module RBase
|
|
36
36
|
# puts user.birth_date
|
37
37
|
#
|
38
38
|
class Record
|
39
|
-
attr_reader :table, :index
|
39
|
+
attr_reader :table, :index, :values_changed
|
40
40
|
|
41
41
|
def initialize(table, attributes = {})
|
42
42
|
@table = table
|
@@ -85,7 +85,11 @@ module RBase
|
|
85
85
|
c.instance_variable_set("@data", @data)
|
86
86
|
c
|
87
87
|
end
|
88
|
-
|
88
|
+
|
89
|
+
def [](name)
|
90
|
+
get_value(name)
|
91
|
+
end
|
92
|
+
|
89
93
|
def method_missing(sym, *args)
|
90
94
|
name = sym.to_s
|
91
95
|
if /=$/ =~ name && args.size == 1
|
data/lib/rbase/table.rb
CHANGED
@@ -191,10 +191,15 @@ module RBase
|
|
191
191
|
@name_to_columns = {}
|
192
192
|
column_options = {}
|
193
193
|
column_options[:encoding] = options[:encoding] if options[:encoding]
|
194
|
+
offset = 1
|
195
|
+
size = 0
|
194
196
|
while true do
|
197
|
+
offset += size
|
195
198
|
column_data = @file.read(32)
|
199
|
+
puts ">>#{column_data}<<"
|
196
200
|
break if column_data[0, 1] == "\x0d"
|
197
|
-
name, type,
|
201
|
+
name, type, junk, size, decimal = *column_data.unpack('@0a11aLCC')
|
202
|
+
puts "name #{name}, offset #{offset}"
|
198
203
|
name = name.strip
|
199
204
|
@columns << Columns::Column.column_for(type).new(name, options.merge(:offset => offset, :size => size, :decimal => decimal))
|
200
205
|
@name_to_columns[name.upcase.to_sym] = @columns.last
|
data/lib/rbase.rb
CHANGED
@@ -1,8 +1,5 @@
|
|
1
|
-
require '
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
require 'rbase/record'
|
7
|
-
require 'rbase/schema_dumper'
|
8
|
-
require 'rbase/builder'
|
1
|
+
require 'date' unless defined? Date
|
2
|
+
files = Dir.glob('rbase/*.rb')
|
3
|
+
files.each do |file|
|
4
|
+
require_relative file
|
5
|
+
end
|
data/rbase.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rbase-ff
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 0.9.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Maxim Kulkin, Leonardo Augusto Pires, Tom Lahti
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-04-
|
11
|
+
date: 2018-04-14 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description:
|
14
14
|
email: maxim.kulkin@gmail.com, leonardo.pires@gmail.com, uidzip@gmail.com
|
@@ -17,6 +17,7 @@ extensions: []
|
|
17
17
|
extra_rdoc_files: []
|
18
18
|
files:
|
19
19
|
- README.md
|
20
|
+
- README.md~
|
20
21
|
- lib/rbase.rb
|
21
22
|
- lib/rbase/builder.rb
|
22
23
|
- lib/rbase/columns.rb
|