dbf 4.0.1 → 4.1.4

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.
Files changed (75) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +9 -0
  3. data/Gemfile +3 -0
  4. data/Gemfile.lock +68 -54
  5. data/Guardfile +1 -1
  6. data/LICENSE +1 -1
  7. data/README.md +115 -20
  8. data/bin/dbf +1 -1
  9. data/dbf.gemspec +1 -0
  10. data/docs/CNAME +1 -0
  11. data/docs/DBF.html +200 -0
  12. data/docs/DBF/Column.html +947 -0
  13. data/docs/DBF/Column/LengthError.html +124 -0
  14. data/docs/DBF/Column/NameError.html +124 -0
  15. data/docs/DBF/ColumnType.html +115 -0
  16. data/docs/DBF/ColumnType/Base.html +389 -0
  17. data/docs/DBF/ColumnType/Boolean.html +238 -0
  18. data/docs/DBF/ColumnType/Currency.html +238 -0
  19. data/docs/DBF/ColumnType/Date.html +242 -0
  20. data/docs/DBF/ColumnType/DateTime.html +246 -0
  21. data/docs/DBF/ColumnType/Double.html +238 -0
  22. data/docs/DBF/ColumnType/Float.html +238 -0
  23. data/docs/DBF/ColumnType/General.html +238 -0
  24. data/docs/DBF/ColumnType/Memo.html +246 -0
  25. data/docs/DBF/ColumnType/Nil.html +238 -0
  26. data/docs/DBF/ColumnType/Number.html +242 -0
  27. data/docs/DBF/ColumnType/SignedLong.html +238 -0
  28. data/docs/DBF/ColumnType/String.html +240 -0
  29. data/docs/DBF/Database.html +126 -0
  30. data/docs/DBF/Database/Foxpro.html +653 -0
  31. data/docs/DBF/Database/Table.html +346 -0
  32. data/docs/DBF/FileNotFoundError.html +124 -0
  33. data/docs/DBF/Header.html +723 -0
  34. data/docs/DBF/Memo.html +117 -0
  35. data/docs/DBF/Memo/Base.html +485 -0
  36. data/docs/DBF/Memo/Dbase3.html +242 -0
  37. data/docs/DBF/Memo/Dbase4.html +230 -0
  38. data/docs/DBF/Memo/Foxpro.html +268 -0
  39. data/docs/DBF/NoColumnsDefined.html +124 -0
  40. data/docs/DBF/Record.html +773 -0
  41. data/docs/DBF/Schema.html +980 -0
  42. data/docs/DBF/Table.html +1571 -0
  43. data/docs/_index.html +415 -0
  44. data/docs/class_list.html +51 -0
  45. data/docs/css/common.css +1 -0
  46. data/docs/css/full_list.css +58 -0
  47. data/docs/css/style.css +497 -0
  48. data/docs/file.README.html +359 -0
  49. data/docs/file_list.html +56 -0
  50. data/docs/frames.html +17 -0
  51. data/docs/index.html +359 -0
  52. data/docs/js/app.js +314 -0
  53. data/docs/js/full_list.js +216 -0
  54. data/docs/js/jquery.js +4 -0
  55. data/docs/method_list.html +675 -0
  56. data/docs/top-level-namespace.html +110 -0
  57. data/lib/dbf/column.rb +5 -4
  58. data/lib/dbf/column_type.rb +29 -8
  59. data/lib/dbf/database/foxpro.rb +7 -2
  60. data/lib/dbf/header.rb +11 -3
  61. data/lib/dbf/record.rb +5 -5
  62. data/lib/dbf/schema.rb +4 -3
  63. data/lib/dbf/table.rb +32 -12
  64. data/lib/dbf/version.rb +1 -1
  65. data/spec/dbf/column_spec.rb +17 -17
  66. data/spec/dbf/{database_spec.rb → database/foxpro_spec.rb} +0 -0
  67. data/spec/dbf/file_formats_spec.rb +22 -6
  68. data/spec/dbf/record_spec.rb +2 -2
  69. data/spec/dbf/table_spec.rb +8 -0
  70. data/spec/fixtures/dbase_02.dbf +0 -0
  71. data/spec/fixtures/polygon.dbf +0 -0
  72. data/spec/spec_helper.rb +0 -2
  73. metadata +59 -12
  74. data/docs/supported_encodings.csv +0 -60
  75. data/docs/supported_types.markdown +0 -53
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 05e4dd29c786ddbbfe219160fdf25170ef1045ddfaaa581d4f3186343fb5617f
4
- data.tar.gz: a97677ab9355e999d6de833fb171db446e5f03f076ddb65e28378e1cfde88840
3
+ metadata.gz: 1e13cdcff478be551912e81540faf312f80bc06aad078c23bf4e8ca681728d23
4
+ data.tar.gz: 15b6bba855219ac12c1468295e19b5bb392f288a68994deedb46f6051f01ffbc
5
5
  SHA512:
6
- metadata.gz: b39d4780cc6fc6c0b5793c765186176ed711568652c32ab36714a725e849cf236391a4aa681606d8fdcc25b6590cadfcb6bfe0e108ee4cab5077d881675b73c5
7
- data.tar.gz: f041b858997396063d8a5bb51ada8c5616559ba98b160e78a860a8a7b939bdc254d3efa64e24e7d621ed829819697b4a881c80e8c94bc9a619d2a5e18f1ab669
6
+ metadata.gz: 489d153412565c166c2718c27560d9675dc7b3785ed7c8151863ef3bc7ca0825599cc5ef5c6af13fc2d92df7ace56f0d3bfe0ed82c6235b7669fd9f22c0b17d8
7
+ data.tar.gz: 2b7aadeece74fd8fb33d9dc5b1f3096d399a709dea15b33b5a74960d6bb701c4cc649a5214fd16fd51534b1d5c3fff0e82a0ebcab7633137b832be916c5c827a
data/CHANGELOG.md CHANGED
@@ -1,3 +1,12 @@
1
+ # 4.1.4
2
+ - Add full support for FoxBase files
3
+
4
+ # 4.1.3
5
+ - Raise DBF::NoColumnsDefined error when attempting to read records if no columns are defined
6
+
7
+ # 4.1.1
8
+ - Add required_ruby_version to gemspec
9
+
1
10
  # 4.1.0
2
11
  - Return Time instead of DateTime
3
12
 
data/Gemfile CHANGED
@@ -4,11 +4,14 @@ source 'https://rubygems.org'
4
4
  group :development, :test do
5
5
  gem 'awesome_print'
6
6
  gem 'byebug'
7
+ gem 'e2mmap'
7
8
  gem 'guard'
8
9
  gem 'guard-rspec'
9
10
  gem 'irb'
10
11
  gem 'rake'
11
12
  gem 'rspec'
12
13
  gem 'rubocop'
14
+ gem 'rubocop-performance'
13
15
  gem 'rubocop-rspec'
16
+ gem 'yard'
14
17
  end
data/Gemfile.lock CHANGED
@@ -1,25 +1,26 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- dbf (4.0.0)
4
+ dbf (4.1.3)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
8
8
  specs:
9
- ast (2.4.0)
10
- awesome_print (1.8.0)
11
- byebug (10.0.2)
12
- coderay (1.1.2)
13
- diff-lcs (1.3)
14
- ffi (1.9.25)
15
- formatador (0.2.5)
16
- guard (2.14.2)
9
+ ast (2.4.2)
10
+ awesome_print (1.9.2)
11
+ byebug (11.1.3)
12
+ coderay (1.1.3)
13
+ diff-lcs (1.4.4)
14
+ e2mmap (0.1.0)
15
+ ffi (1.15.3)
16
+ formatador (0.3.0)
17
+ guard (2.18.0)
17
18
  formatador (>= 0.2.4)
18
19
  listen (>= 2.7, < 4.0)
19
20
  lumberjack (>= 1.0.12, < 2.0)
20
21
  nenv (~> 0.1)
21
22
  notiffany (~> 0.0)
22
- pry (>= 0.9.12)
23
+ pry (>= 0.13.0)
23
24
  shellany (~> 0.0)
24
25
  thor (>= 0.18.1)
25
26
  guard-compat (1.2.1)
@@ -27,73 +28,86 @@ GEM
27
28
  guard (~> 2.1)
28
29
  guard-compat (~> 1.1)
29
30
  rspec (>= 2.99.0, < 4.0)
30
- irb (1.0.0)
31
- jaro_winkler (1.5.1)
32
- listen (3.1.5)
33
- rb-fsevent (~> 0.9, >= 0.9.4)
34
- rb-inotify (~> 0.9, >= 0.9.7)
35
- ruby_dep (~> 1.2)
36
- lumberjack (1.0.13)
37
- method_source (0.9.0)
31
+ io-console (0.5.9)
32
+ irb (1.3.6)
33
+ reline (>= 0.2.5)
34
+ listen (3.6.0)
35
+ rb-fsevent (~> 0.10, >= 0.10.3)
36
+ rb-inotify (~> 0.9, >= 0.9.10)
37
+ lumberjack (1.2.8)
38
+ method_source (1.0.0)
38
39
  nenv (0.3.0)
39
- notiffany (0.1.1)
40
+ notiffany (0.1.3)
40
41
  nenv (~> 0.1)
41
42
  shellany (~> 0.0)
42
- parallel (1.12.1)
43
- parser (2.5.1.2)
44
- ast (~> 2.4.0)
45
- powerpack (0.1.2)
46
- pry (0.11.3)
47
- coderay (~> 1.1.0)
48
- method_source (~> 0.9.0)
43
+ parallel (1.20.1)
44
+ parser (3.0.2.0)
45
+ ast (~> 2.4.1)
46
+ pry (0.14.1)
47
+ coderay (~> 1.1)
48
+ method_source (~> 1.0)
49
49
  rainbow (3.0.0)
50
- rake (12.3.1)
51
- rb-fsevent (0.10.3)
52
- rb-inotify (0.9.10)
53
- ffi (>= 0.5.0, < 2)
54
- rspec (3.8.0)
55
- rspec-core (~> 3.8.0)
56
- rspec-expectations (~> 3.8.0)
57
- rspec-mocks (~> 3.8.0)
58
- rspec-core (3.8.0)
59
- rspec-support (~> 3.8.0)
60
- rspec-expectations (3.8.2)
50
+ rake (13.0.6)
51
+ rb-fsevent (0.11.0)
52
+ rb-inotify (0.10.1)
53
+ ffi (~> 1.0)
54
+ regexp_parser (2.1.1)
55
+ reline (0.2.6)
56
+ io-console (~> 0.5)
57
+ rexml (3.2.5)
58
+ rspec (3.10.0)
59
+ rspec-core (~> 3.10.0)
60
+ rspec-expectations (~> 3.10.0)
61
+ rspec-mocks (~> 3.10.0)
62
+ rspec-core (3.10.1)
63
+ rspec-support (~> 3.10.0)
64
+ rspec-expectations (3.10.1)
61
65
  diff-lcs (>= 1.2.0, < 2.0)
62
- rspec-support (~> 3.8.0)
63
- rspec-mocks (3.8.0)
66
+ rspec-support (~> 3.10.0)
67
+ rspec-mocks (3.10.2)
64
68
  diff-lcs (>= 1.2.0, < 2.0)
65
- rspec-support (~> 3.8.0)
66
- rspec-support (3.8.0)
67
- rubocop (0.59.2)
68
- jaro_winkler (~> 1.5.1)
69
+ rspec-support (~> 3.10.0)
70
+ rspec-support (3.10.2)
71
+ rubocop (1.18.4)
69
72
  parallel (~> 1.10)
70
- parser (>= 2.5, != 2.5.1.1)
71
- powerpack (~> 0.1)
73
+ parser (>= 3.0.0.0)
72
74
  rainbow (>= 2.2.2, < 4.0)
75
+ regexp_parser (>= 1.8, < 3.0)
76
+ rexml
77
+ rubocop-ast (>= 1.8.0, < 2.0)
73
78
  ruby-progressbar (~> 1.7)
74
- unicode-display_width (~> 1.0, >= 1.0.1)
75
- rubocop-rspec (1.30.0)
76
- rubocop (>= 0.58.0)
77
- ruby-progressbar (1.10.0)
78
- ruby_dep (1.5.0)
79
+ unicode-display_width (>= 1.4.0, < 3.0)
80
+ rubocop-ast (1.9.0)
81
+ parser (>= 3.0.1.1)
82
+ rubocop-performance (1.11.4)
83
+ rubocop (>= 1.7.0, < 2.0)
84
+ rubocop-ast (>= 0.4.0)
85
+ rubocop-rspec (2.4.0)
86
+ rubocop (~> 1.0)
87
+ rubocop-ast (>= 1.1.0)
88
+ ruby-progressbar (1.11.0)
79
89
  shellany (0.0.1)
80
- thor (0.20.0)
81
- unicode-display_width (1.4.0)
90
+ thor (1.1.0)
91
+ unicode-display_width (2.0.0)
92
+ yard (0.9.26)
82
93
 
83
94
  PLATFORMS
84
- ruby
95
+ x86_64-darwin-19
85
96
 
86
97
  DEPENDENCIES
87
98
  awesome_print
88
99
  byebug
89
100
  dbf!
101
+ e2mmap
90
102
  guard
91
103
  guard-rspec
92
104
  irb
93
105
  rake
94
106
  rspec
95
107
  rubocop
108
+ rubocop-performance
96
109
  rubocop-rspec
110
+ yard
97
111
 
98
112
  BUNDLED WITH
99
- 2.0.0
113
+ 2.2.15
data/Guardfile CHANGED
@@ -6,6 +6,6 @@ guard :rspec, cmd: 'bundle exec rspec' do
6
6
  # watch(%r{^lib/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
7
7
  watch(%r{^lib/(.+)\.rb$}) { 'spec' }
8
8
  watch('spec/spec_helper.rb') { 'spec' }
9
- watch(/spec\/fixtures\/(.+)/) { 'spec' }
9
+ watch(%r{spec/fixtures/(.+)}) { 'spec' }
10
10
  watch('Guardfile') { 'spec' }
11
11
  end
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2006-2019 Keith Morrison <keithm@infused.org>
1
+ Copyright (c) 2006-2021 Keith Morrison <keithm@infused.org>
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/README.md CHANGED
@@ -1,30 +1,32 @@
1
1
  # DBF
2
- [![Version](http://img.shields.io/gem/v/dbf.svg?style=flat)](https://rubygems.org/gems/dbf)
3
- [![Build Status](http://img.shields.io/travis/infused/dbf/master.svg?style=flat)](http://travis-ci.org/infused/dbf)
4
- [![Code Quality](http://img.shields.io/codeclimate/maintainability/infused/dbf.svg?style=flat)](https://codeclimate.com/github/infused/dbf)
5
- [![Code Coverage](http://img.shields.io/codeclimate/c/infused/dbf.svg?style=flat)](https://codeclimate.com/github/infused/dbf)
2
+ [![Version](https://img.shields.io/gem/v/dbf.svg?style=flat)](https://rubygems.org/gems/dbf)
3
+ [![Build Status](https://img.shields.io/travis/infused/dbf/master.svg?style=flat)](https://travis-ci.com/infused/dbf)
4
+ [![Code Quality](https://img.shields.io/codeclimate/maintainability/infused/dbf.svg?style=flat)](https://codeclimate.com/github/infused/dbf)
5
+ [![Code Coverage](https://img.shields.io/codeclimate/c/infused/dbf.svg?style=flat)](https://codeclimate.com/github/infused/dbf)
6
6
  [![Total Downloads](https://img.shields.io/gem/dt/dbf.svg)](https://rubygems.org/gems/dbf/)
7
7
  [![License](https://img.shields.io/github/license/infused/dbf.svg)](https://github.com/infused/dbf)
8
8
 
9
9
  DBF is a small fast library for reading dBase, xBase, Clipper and FoxPro
10
10
  database files
11
11
 
12
- * Project page: <http://github.com/infused/dbf>
13
- * API Documentation: <http://rubydoc.info/github/infused/dbf/>
14
- * Report bugs: <http://github.com/infused/dbf/issues>
12
+ * Project page: <https://github.com/infused/dbf>
13
+ * API Documentation: <https://dbf.infused.org>
14
+ * Report bugs: <https://github.com/infused/dbf/issues>
15
15
  * Questions: Email <mailto:keithm@infused.org> and put DBF somewhere in the
16
16
  subject line
17
17
  * Change log: <https://github.com/infused/dbf/blob/master/CHANGELOG.md>
18
18
 
19
- NOTE: Beginninf with version 4 we have dropped support for Ruby 2.0, 2.1, 2.2, and 2.3. If you need support for these older Rubies, please use 3.0.x (https://github.com/infused.org/dbf/tree/3_stable)
19
+ NOTE: Beginning with version 4 we have dropped support for Ruby 2.0, 2.1, 2.2, and 2.3. If you need support for these older Rubies,
20
+ please use 3.0.x (https://github.com/infused.org/dbf/tree/3_stable)
20
21
 
21
- NOTE: Beginning with version 3 we have dropped support for Ruby 1.8 and 1.9. If you need support for older Rubies, please use 2.0.x (https://github.com/infused/dbf/tree/2_stable)
22
+ NOTE: Beginning with version 3 we have dropped support for Ruby 1.8 and 1.9. If you need support for older Rubies,
23
+ please use 2.0.x (https://github.com/infused/dbf/tree/2_stable)
22
24
 
23
25
  ## Compatibility
24
26
 
25
27
  DBF is tested to work with the following versions of Ruby:
26
28
 
27
- * Ruby 2.4.x, 2.5.x, 2.6.x
29
+ * Ruby 2.4.x, 2.5.x, 2.6.x, 2.7.x, 3.0.x, TruffleRuby
28
30
 
29
31
  ## Installation
30
32
 
@@ -95,7 +97,7 @@ Get a hash of all attributes. The keys are the original column names.
95
97
 
96
98
  ```ruby
97
99
  widget.attributes
98
- # => {"Name" => "Thing1", "SlotNumber" => 1}
100
+ # => {"Name" => "Thing1 | SlotNumber" => 1}
99
101
  ```
100
102
 
101
103
  Search for records using a simple hash format. Multiple search criteria are
@@ -146,9 +148,67 @@ data. Try using the 'Russion OEM' encoding:
146
148
  table = DBF::Table.new('dbf/books.dbf', nil, 'cp866')
147
149
  ```
148
150
 
149
- See
150
- [doc/supported_encodings.csv](docs/supported_encodings.csv)
151
- for a full list of supported encodings.
151
+ | Code Page | Encoding | Description |
152
+ | --------- | -------- | ----------- |
153
+ | 01 | cp437 | U.S. MS–DOS |
154
+ | 02 | cp850 | International MS–DOS |
155
+ | 03 | cp1252 | Windows ANSI |
156
+ | 08 | cp865 | Danish OEM |
157
+ | 09 | cp437 | Dutch OEM |
158
+ | 0a | cp850 | Dutch OEM* |
159
+ | 0b | cp437 | Finnish OEM |
160
+ | 0d | cp437 | French OEM |
161
+ | 0e | cp850 | French OEM* |
162
+ | 0f | cp437 | German OEM |
163
+ | 10 | cp850 | German OEM* |
164
+ | 11 | cp437 | Italian OEM |
165
+ | 12 | cp850 | Italian OEM* |
166
+ | 13 | cp932 | Japanese Shift-JIS |
167
+ | 14 | cp850 | Spanish OEM* |
168
+ | 15 | cp437 | Swedish OEM |
169
+ | 16 | cp850 | Swedish OEM* |
170
+ | 17 | cp865 | Norwegian OEM |
171
+ | 18 | cp437 | Spanish OEM |
172
+ | 19 | cp437 | English OEM (Britain) |
173
+ | 1a | cp850 | English OEM (Britain)* |
174
+ | 1b | cp437 | English OEM (U.S.) |
175
+ | 1c | cp863 | French OEM (Canada) |
176
+ | 1d | cp850 | French OEM* |
177
+ | 1f | cp852 | Czech OEM |
178
+ | 22 | cp852 | Hungarian OEM |
179
+ | 23 | cp852 | Polish OEM |
180
+ | 24 | cp860 | Portuguese OEM |
181
+ | 25 | cp850 | Portuguese OEM* |
182
+ | 26 | cp866 | Russian OEM |
183
+ | 37 | cp850 | English OEM (U.S.)* |
184
+ | 40 | cp852 | Romanian OEM |
185
+ | 4d | cp936 | Chinese GBK (PRC) |
186
+ | 4e | cp949 | Korean (ANSI/OEM) |
187
+ | 4f | cp950 | Chinese Big5 (Taiwan) |
188
+ | 50 | cp874 | Thai (ANSI/OEM) |
189
+ | 57 | cp1252 | ANSI |
190
+ | 58 | cp1252 | Western European ANSI |
191
+ | 59 | cp1252 | Spanish ANSI |
192
+ | 64 | cp852 | Eastern European MS–DOS |
193
+ | 65 | cp866 | Russian MS–DOS |
194
+ | 66 | cp865 | Nordic MS–DOS |
195
+ | 67 | cp861 | Icelandic MS–DOS |
196
+ | 6a | cp737 | Greek MS–DOS (437G) |
197
+ | 6b | cp857 | Turkish MS–DOS |
198
+ | 6c | cp863 | French–Canadian MS–DOS |
199
+ | 78 | cp950 | Taiwan Big 5 |
200
+ | 79 | cp949 | Hangul (Wansung) |
201
+ | 7a | cp936 | PRC GBK |
202
+ | 7b | cp932 | Japanese Shift-JIS |
203
+ | 7c | cp874 | Thai Windows/MS–DOS |
204
+ | 86 | cp737 | Greek OEM |
205
+ | 87 | cp852 | Slovenian OEM |
206
+ | 88 | cp857 | Turkish OEM |
207
+ | c8 | cp1250 | Eastern European Windows |
208
+ | c9 | cp1251 | Russian Windows |
209
+ | ca | cp1254 | Turkish Windows |
210
+ | cb | cp1253 | Greek Windows |
211
+ | cc | cp1257 | Baltic Windows |
152
212
 
153
213
  ## Migrating to ActiveRecord
154
214
 
@@ -209,7 +269,7 @@ Sequel.migration do
209
269
  end
210
270
  ```
211
271
 
212
- If you have initalized the DBF::Table with raw data, you will need to set the
272
+ If you have initialized the DBF::Table with raw data, you will need to set the
213
273
  exported table name manually:
214
274
 
215
275
  ```ruby
@@ -227,7 +287,7 @@ A small command-line utility called dbf is installed along with the gem.
227
287
  -s = print summary information
228
288
  -a = create an ActiveRecord::Schema
229
289
  -r = create a Sequel Migration
230
- -c = dump data in CSV format
290
+ -c = export as CSV
231
291
 
232
292
  Create an executable ActiveRecord schema:
233
293
 
@@ -262,9 +322,44 @@ supported. If you have insight into how any of the unsupported data types are
262
322
  implemented, please give me a shout. FoxBase/dBase II files are not supported
263
323
  at this time.
264
324
 
265
- See
266
- [doc/supported_types.markdown](docs/supported_types.markdown)
267
- for a full list of supported column types.
325
+ ### Supported data types by dBase version
326
+
327
+ | Version | Description | C | N | L | D | M | F | B | G | P | Y | T | I | V | X | @ | O | + |
328
+ |---------|-----------------------------------|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
329
+ | 02 | FoxBase | Y | Y | Y | Y | - | - | - | - | - | - | - | - | - | - | - | - | - |
330
+ | 03 | dBase III without memo file | Y | Y | Y | Y | - | - | - | - | - | - | - | - | - | - | - | - | - |
331
+ | 04 | dBase IV without memo file | Y | Y | Y | Y | - | - | - | - | - | - | - | - | - | - | - | - | - |
332
+ | 05 | dBase V without memo file | Y | Y | Y | Y | - | - | - | - | - | - | - | - | - | - | - | - | - |
333
+ | 07 | Visual Objects 1.x | Y | Y | Y | Y | - | - | - | - | - | - | - | - | - | - | - | - | - |
334
+ | 30 | Visual FoxPro | Y | Y | Y | Y | Y | Y | Y | Y | N | Y | N | Y | N | N | N | N | - |
335
+ | 31 | Visual FoxPro with AutoIncrement | Y | Y | Y | Y | Y | Y | Y | Y | N | Y | N | Y | N | N | N | N | N |
336
+ | 7b | dBase IV with memo file | Y | Y | Y | Y | Y | Y | - | - | - | - | - | - | - | - | - | - | - |
337
+ | 83 | dBase III with memo file | Y | Y | Y | Y | Y | - | - | - | - | - | - | - | - | - | - | - | - |
338
+ | 87 | Visual Objects 1.x with memo file | Y | Y | Y | Y | Y | - | - | - | - | - | - | - | - | - | - | - | - |
339
+ | 8b | dBase IV with memo file | Y | Y | Y | Y | Y | - | - | - | - | - | - | - | - | N | - | - | - |
340
+ | 8e | dBase IV with SQL table | Y | Y | Y | Y | Y | - | - | - | - | - | - | - | - | N | - | - | - |
341
+ | f5 | FoxPro with memo file | Y | Y | Y | Y | Y | Y | Y | Y | N | Y | N | Y | N | N | N | N | N |
342
+ | fb | FoxPro without memo file | Y | Y | Y | Y | - | Y | Y | Y | N | Y | N | Y | N | N | N | N | N |
343
+
344
+ Data type descriptions
345
+
346
+ * C = Character
347
+ * N = Number
348
+ * L = Logical
349
+ * D = Date
350
+ * M = Memo
351
+ * F = Float
352
+ * B = Binary
353
+ * G = General
354
+ * P = Picture
355
+ * Y = Currency
356
+ * T = DateTime
357
+ * I = Integer
358
+ * V = VariField
359
+ * X = SQL compat
360
+ * @ = Timestamp
361
+ * O = Double
362
+ * + = Autoincrement
268
363
 
269
364
  ## Limitations
270
365
 
@@ -273,7 +368,7 @@ for a full list of supported column types.
273
368
 
274
369
  ## License
275
370
 
276
- Copyright (c) 2006-2019 Keith Morrison <<keithm@infused.org>>
371
+ Copyright (c) 2006-2021 Keith Morrison <<keithm@infused.org>>
277
372
 
278
373
  Permission is hereby granted, free of charge, to any person
279
374
  obtaining a copy of this software and associated documentation
data/bin/dbf CHANGED
@@ -16,7 +16,7 @@ elsif params['h']
16
16
  puts ' -s = print summary information'
17
17
  puts ' -a = create an ActiveRecord::Schema'
18
18
  puts ' -r = create a Sequel migration'
19
- puts ' -c = create a CSV file'
19
+ puts ' -c = export as CSV'
20
20
  else
21
21
 
22
22
  filename = ARGV.shift
data/dbf.gemspec CHANGED
@@ -19,4 +19,5 @@ Gem::Specification.new do |s|
19
19
  s.test_files = Dir.glob('spec/**/*_spec.rb')
20
20
  s.require_paths = ['lib']
21
21
  s.required_rubygems_version = Gem::Requirement.new('>= 1.3.0')
22
+ s.required_ruby_version = Gem::Requirement.new('>= 2.4.0')
22
23
  end
data/docs/CNAME ADDED
@@ -0,0 +1 @@
1
+ dbf.infused.org
data/docs/DBF.html ADDED
@@ -0,0 +1,200 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>
7
+ Module: DBF
8
+
9
+ &mdash; Documentation by YARD 0.9.26
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="css/style.css" type="text/css" />
14
+
15
+ <link rel="stylesheet" href="css/common.css" type="text/css" />
16
+
17
+ <script type="text/javascript">
18
+ pathId = "DBF";
19
+ relpath = '';
20
+ </script>
21
+
22
+
23
+ <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
24
+
25
+ <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
26
+
27
+
28
+ </head>
29
+ <body>
30
+ <div class="nav_wrap">
31
+ <iframe id="nav" src="class_list.html?1"></iframe>
32
+ <div id="resizer"></div>
33
+ </div>
34
+
35
+ <div id="main" tabindex="-1">
36
+ <div id="header">
37
+ <div id="menu">
38
+
39
+ <a href="_index.html">Index (D)</a> &raquo;
40
+
41
+
42
+ <span class="title">DBF</span>
43
+
44
+ </div>
45
+
46
+ <div id="search">
47
+
48
+ <a class="full_list_link" id="class_list_link"
49
+ href="class_list.html">
50
+
51
+ <svg width="24" height="24">
52
+ <rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
53
+ <rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
54
+ <rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
55
+ </svg>
56
+ </a>
57
+
58
+ </div>
59
+ <div class="clear"></div>
60
+ </div>
61
+
62
+ <div id="content"><h1>Module: DBF
63
+
64
+
65
+
66
+ </h1>
67
+ <div class="box_info">
68
+
69
+
70
+
71
+
72
+
73
+
74
+
75
+
76
+
77
+
78
+
79
+ <dl>
80
+ <dt>Defined in:</dt>
81
+ <dd>lib/dbf/table.rb<span class="defines">,<br />
82
+ lib/dbf/column.rb,<br /> lib/dbf/header.rb,<br /> lib/dbf/record.rb,<br /> lib/dbf/schema.rb,<br /> lib/dbf/version.rb,<br /> lib/dbf/encodings.rb,<br /> lib/dbf/memo/base.rb,<br /> lib/dbf/column_type.rb,<br /> lib/dbf/memo/dbase3.rb,<br /> lib/dbf/memo/dbase4.rb,<br /> lib/dbf/memo/foxpro.rb,<br /> lib/dbf/database/foxpro.rb</span>
83
+ </dd>
84
+ </dl>
85
+
86
+ </div>
87
+
88
+ <h2>Defined Under Namespace</h2>
89
+ <p class="children">
90
+
91
+
92
+ <strong class="modules">Modules:</strong> <span class='object_link'><a href="DBF/ColumnType.html" title="DBF::ColumnType (module)">ColumnType</a></span>, <span class='object_link'><a href="DBF/Database.html" title="DBF::Database (module)">Database</a></span>, <span class='object_link'><a href="DBF/Memo.html" title="DBF::Memo (module)">Memo</a></span>, <span class='object_link'><a href="DBF/Schema.html" title="DBF::Schema (module)">Schema</a></span>
93
+
94
+
95
+
96
+ <strong class="classes">Classes:</strong> <span class='object_link'><a href="DBF/Column.html" title="DBF::Column (class)">Column</a></span>, <span class='object_link'><a href="DBF/FileNotFoundError.html" title="DBF::FileNotFoundError (class)">FileNotFoundError</a></span>, <span class='object_link'><a href="DBF/Header.html" title="DBF::Header (class)">Header</a></span>, <span class='object_link'><a href="DBF/NoColumnsDefined.html" title="DBF::NoColumnsDefined (class)">NoColumnsDefined</a></span>, <span class='object_link'><a href="DBF/Record.html" title="DBF::Record (class)">Record</a></span>, <span class='object_link'><a href="DBF/Table.html" title="DBF::Table (class)">Table</a></span>
97
+
98
+
99
+ </p>
100
+
101
+
102
+ <h2>
103
+ Constant Summary
104
+ <small><a href="#" class="constants_summary_toggle">collapse</a></small>
105
+ </h2>
106
+
107
+ <dl class="constants">
108
+
109
+ <dt id="VERSION-constant" class="">VERSION =
110
+
111
+ </dt>
112
+ <dd><pre class="code"><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>4.1.3</span><span class='tstring_end'>&#39;</span></span><span class='period'>.</span><span class='id identifier rubyid_freeze'>freeze</span></pre></dd>
113
+
114
+ <dt id="ENCODINGS-constant" class="">ENCODINGS =
115
+
116
+ </dt>
117
+ <dd><pre class="code"><span class='lbrace'>{</span>
118
+ <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>01</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cp437</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='comment'># U.S. MS-DOS
119
+ </span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>02</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cp850</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='comment'># International MS-DOS
120
+ </span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>03</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cp1252</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='comment'># Windows ANSI
121
+ </span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>08</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cp865</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='comment'># Danish OEM
122
+ </span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>09</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cp437</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='comment'># Dutch OEM
123
+ </span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>0a</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cp850</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='comment'># Dutch OEM*
124
+ </span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>0b</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cp437</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='comment'># Finnish OEM
125
+ </span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>0d</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cp437</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='comment'># French OEM
126
+ </span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>0e</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cp850</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='comment'># French OEM*
127
+ </span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>0f</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cp437</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='comment'># German OEM
128
+ </span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>10</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cp850</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='comment'># German OEM*
129
+ </span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>11</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cp437</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='comment'># Italian OEM
130
+ </span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>12</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cp850</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='comment'># Italian OEM*
131
+ </span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>13</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cp932</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='comment'># Japanese Shift-JIS
132
+ </span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>14</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cp850</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='comment'># Spanish OEM*
133
+ </span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>15</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cp437</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='comment'># Swedish OEM
134
+ </span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>16</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cp850</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='comment'># Swedish OEM*
135
+ </span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>17</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cp865</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='comment'># Norwegian OEM
136
+ </span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>18</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cp437</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='comment'># Spanish OEM
137
+ </span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>19</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cp437</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='comment'># English OEM (Britain)
138
+ </span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>1a</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cp850</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='comment'># English OEM (Britain)*
139
+ </span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>1b</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cp437</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='comment'># English OEM (U.S.)
140
+ </span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>1c</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cp863</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='comment'># French OEM (Canada)
141
+ </span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>1d</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cp850</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='comment'># French OEM*
142
+ </span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>1f</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cp852</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='comment'># Czech OEM
143
+ </span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>22</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cp852</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='comment'># Hungarian OEM
144
+ </span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>23</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cp852</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='comment'># Polish OEM
145
+ </span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>24</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cp860</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='comment'># Portuguese OEM
146
+ </span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>25</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cp850</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='comment'># Portuguese OEM*
147
+ </span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>26</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cp866</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='comment'># Russian OEM
148
+ </span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>37</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cp850</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='comment'># English OEM (U.S.)*
149
+ </span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>40</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cp852</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='comment'># Romanian OEM
150
+ </span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>4d</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cp936</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='comment'># Chinese GBK (PRC)
151
+ </span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>4e</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cp949</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='comment'># Korean (ANSI/OEM)
152
+ </span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>4f</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cp950</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='comment'># Chinese Big5 (Taiwan)
153
+ </span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>50</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cp874</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='comment'># Thai (ANSI/OEM)
154
+ </span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>57</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cp1252</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='comment'># ANSI
155
+ </span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>58</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cp1252</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='comment'># Western European ANSI
156
+ </span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>59</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cp1252</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='comment'># Spanish ANSI
157
+ </span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>64</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cp852</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='comment'># Eastern European MS-DOS
158
+ </span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>65</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cp866</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='comment'># Russian MS-DOS
159
+ </span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>66</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cp865</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='comment'># Nordic MS-DOS
160
+ </span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>67</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cp861</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='comment'># Icelandic MS-DOS
161
+ </span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>6a</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cp737</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='comment'># Greek MS-DOS (437G)
162
+ </span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>6b</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cp857</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='comment'># Turkish MS-DOS
163
+ </span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>6c</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cp863</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='comment'># French-Canadian MS-DOS
164
+ </span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>78</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cp950</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='comment'># Taiwan Big 5
165
+ </span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>79</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cp949</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='comment'># Hangul (Wansung)
166
+ </span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>7a</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cp936</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='comment'># PRC GBK
167
+ </span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>7b</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cp932</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='comment'># Japanese Shift-JIS
168
+ </span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>7c</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cp874</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='comment'># Thai Windows/MS-DOS
169
+ </span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>86</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cp737</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='comment'># Greek OEM
170
+ </span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>87</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cp852</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='comment'># Slovenian OEM
171
+ </span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>88</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cp857</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='comment'># Turkish OEM
172
+ </span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>c8</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cp1250</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='comment'># Eastern European Windows
173
+ </span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>c9</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cp1251</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='comment'># Russian Windows
174
+ </span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>ca</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cp1254</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='comment'># Turkish Windows
175
+ </span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cb</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cp1253</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='comment'># Greek Windows
176
+ </span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cc</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>cp1257</span><span class='tstring_end'>&#39;</span></span> <span class='comment'># Baltic Windows
177
+ </span><span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_freeze'>freeze</span></pre></dd>
178
+
179
+ </dl>
180
+
181
+
182
+
183
+
184
+
185
+
186
+
187
+
188
+
189
+
190
+ </div>
191
+
192
+ <div id="footer">
193
+ Generated on Sun Aug 8 16:19:08 2021 by
194
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
195
+ 0.9.26 (ruby-3.0.1).
196
+ </div>
197
+
198
+ </div>
199
+ </body>
200
+ </html>