Skip to content

Commit b040ba4

Browse files
author
Matthew Knight
committed
Merge pull request #8 from irandom/set-encoding
Add encoding as an argument to constructor
2 parents 596bcc7 + 24e565c commit b040ba4

File tree

5 files changed

+63
-60
lines changed

5 files changed

+63
-60
lines changed

Cakefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
fs = require 'fs'
22

33
{print} = require 'sys'
4-
{spawn} = require 'child_process'
4+
{exec} = require 'child_process'
55

66
build = (callback) ->
7-
coffee = spawn 'coffee', ['-c', '-o', 'lib', 'src']
7+
coffee = exec 'coffee -c -o lib src'
88
coffee.stderr.on 'data', (data) ->
99
process.stderr.write data.toString()
1010
coffee.stdout.on 'data', (data) ->

lib/header.js

Lines changed: 22 additions & 24 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/parser.js

Lines changed: 31 additions & 30 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "node-dbf",
3-
"version": "0.1.0",
3+
"version": "0.1.1",
44
"description": "An efficient dBase DBF file parser written in pure JavaScript",
55
"main": "./lib/parser.js",
66
"repository": {
@@ -15,7 +15,10 @@
1515
"devDependencies": {
1616
"coffee-script": ">=1.3.3"
1717
},
18+
"dependencies": {
19+
"iconv-lite": ">=0.2.11"
20+
},
1821
"scripts": {
1922
"prepublish": "cake build"
2023
}
21-
}
24+
}

src/parser.coffee

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
{EventEmitter} = require 'events'
22
Header = require './header'
33
fs = require 'fs'
4+
iconv = require 'iconv-lite'
45

56
class Parser extends EventEmitter
67

7-
constructor: (@filename) ->
8+
constructor: (@filename, @encoding = 'utf-8') ->
89

910
parse: =>
1011
@emit 'start', @
@@ -41,7 +42,7 @@ class Parser extends EventEmitter
4142
return record
4243

4344
parseField: (field, buffer) =>
44-
value = (buffer.toString 'utf-8').replace /^\x20+|\x20+$/g, ''
45+
value = (iconv.decode buffer, @encoding).trim()
4546

4647
if field.type is 'N' then value = parseInt value, 10
4748

0 commit comments

Comments
 (0)