haecksler 0.0.1 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7fac756e6245151603f1454fb9384c64cbe57ed0
4
- data.tar.gz: 3429e573e1d61c725bdc051273ca7337e166eb9e
3
+ metadata.gz: ef7da91bbe042a45d61a61b11579f91eb125fed8
4
+ data.tar.gz: 5cfd1b2d02724b17bf30d57e0ea8f58469397524
5
5
  SHA512:
6
- metadata.gz: 3a4acbbd1ae9b6ac447d0fa18675617e84392f64a2b6d0b9f24d6499fe6b5d4376d236b59de1af87094c1aab05d48203f673172525ee56d3f48952418d407e47
7
- data.tar.gz: 8afb2a948a53866943cccb6f201d6850ae947f43d4584903af9f4c8c86b73c6aba57f64d9251a0a62033965972cddef6990e10399e88c34ea439ddef2d34a0fb
6
+ metadata.gz: 9bf0313818a703122678602106f1f69b0038066405e7257a6b0027c3057f63ab0beddc912101043e5f6f8e06a5c5d081807e44ea7f28b15a6daf428405eab152
7
+ data.tar.gz: a2db4eb25f38c413fdf75984ca5879d810cd1a90ff3e52d19ec24c3b5beb7c8d6efc438672c3026794d8377ed00b5756b89db73f89572fe00ef9e4986b28e255
@@ -1,5 +1,13 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 2.1.1
4
- - 2.0.0
5
- - jruby-head
3
+ - 2.1.1
4
+ - 2.0.0
5
+ - jruby-head
6
+ deploy:
7
+ provider: rubygems
8
+ api_key:
9
+ secure: Dd0l16iSFErUc9ClkPfStyqMKFY1PpA1qX5+59kTwF6+3srgNiDLzlLnxxAj7ESNS5JCRSbt0URWIotRApNTz0qAdPww5radc+9y6iDtRU7OGh1N3aFJZDtYv+0gs0dzm5tQjrPBwePQOLnzN5x/3iHv9Ei1avk3cqQwoWPrhIg=
10
+ gem: haecksler
11
+ on:
12
+ tags: true
13
+ repo: falti/haecksler
data/README.md CHANGED
@@ -5,7 +5,12 @@
5
5
  [![Dependency Status](https://gemnasium.com/falti/haecksler.svg)](https://gemnasium.com/falti/haecksler)
6
6
 
7
7
 
8
- TODO: Write a gem description
8
+ Read fixed-length files:
9
+
10
+ ```
11
+ 01A Name 20130101SKIPA
12
+ ```
13
+ Support lazy processing so it's possible to read very large files as well.
9
14
 
10
15
  ## Installation
11
16
 
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
20
20
 
21
- spec.add_development_dependency "bundler", "~> 1.5.3"
21
+ spec.add_development_dependency "bundler", "~> 1.6"
22
22
  spec.add_development_dependency "rake"
23
23
  spec.add_development_dependency "rspec", '~> 2.14'
24
24
  end
@@ -39,6 +39,8 @@ module Haecksler
39
39
 
40
40
  parsed.value = begin
41
41
  case type
42
+ when :nil
43
+ nil
42
44
  when :string
43
45
  String(string_value).rstrip
44
46
  when :integer
@@ -22,6 +22,11 @@ module Haecksler
22
22
  @row << _column(name, size, type, date_format)
23
23
  end
24
24
 
25
+ def skip(size)
26
+ l = @row.columns.length
27
+ @row << _column("___skip#{l}", size, :nil, nil)
28
+ end
29
+
25
30
  def header_trap(&proc)
26
31
  @header_check = proc
27
32
  end
@@ -1,3 +1,3 @@
1
1
  module Haecksler
2
- VERSION = "0.0.1"
2
+ VERSION = "0.1.0"
3
3
  end
@@ -86,5 +86,15 @@ module Haecksler
86
86
 
87
87
  end
88
88
 
89
+ describe "Nil row" do
90
+ subject do
91
+ Column.new(name: "Nil", size: 3, type: :nil)
92
+ end
93
+
94
+ it "should handle nil column" do
95
+ expect(subject.parse("XXX").value).to eq nil
96
+ end
97
+ end
98
+
89
99
  end
90
100
  end
@@ -82,6 +82,28 @@ module Haecksler
82
82
 
83
83
  end
84
84
 
85
+ it "should skip certain values" do
86
+ data_with_skip = [
87
+ "01FrankXXX20080305XXXA",
88
+ "02Sam XXX20091205XXXB"
89
+ ]
90
+ result = Haecksler.chop(data_with_skip) do |h|
91
+ h.column "Id", 2, :integer
92
+ h.column "Name", 5, :string
93
+ h.skip 3
94
+ h.column "Date", 8, :date
95
+ h.skip 3
96
+ h.column "Letter", 1, :string
97
+ end
98
+
99
+ first = result.first
100
+ expect(first["Id"]).to eq 1
101
+ expect(first["Name"]).to eq "Frank"
102
+ expect(first["Date"]).to eq Date.new(2008,3,5)
103
+ expect(first["Letter"]).to eq "A"
104
+
105
+ end
106
+
85
107
 
86
108
  end
87
109
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: haecksler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Frank Falkenberg
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-08 00:00:00.000000000 Z
11
+ date: 2014-05-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ~>
18
18
  - !ruby/object:Gem::Version
19
- version: 1.5.3
19
+ version: '1.6'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ~>
25
25
  - !ruby/object:Gem::Version
26
- version: 1.5.3
26
+ version: '1.6'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement