haecksler 0.0.1 → 0.1.0

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