dbf 4.0.1 → 4.1.4

Sign up to get free protection for your applications and to get access to all the features.
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>