hflr 1.0.1 → 1.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/hflr.gemspec +1 -1
- data/lib/hflr/fl_record_file.rb +2 -8
- data/lib/hflr/record_template.rb +4 -0
- metadata +5 -11
data/hflr.gemspec
CHANGED
data/lib/hflr/fl_record_file.rb
CHANGED
@@ -1,9 +1,6 @@
|
|
1
1
|
#require File.expand_path(File.dirname(__FILE__) + '/record_template')
|
2
2
|
|
3
3
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
4
|
class FLRFile
|
8
5
|
|
9
6
|
include Enumerable
|
@@ -15,8 +12,7 @@ class FLRFile
|
|
15
12
|
# {:type1=>[:var1=>1..5,:var2=>7..8],:type2=>[:var1=>1..1,:var2=>3..4]}
|
16
13
|
if record_layouts.values.first.is_a? Hash
|
17
14
|
record_layouts = create_layouts(record_layouts)
|
18
|
-
end
|
19
|
-
|
15
|
+
end
|
20
16
|
@line_number = 0
|
21
17
|
@file = source
|
22
18
|
@record_type_labels=record_types
|
@@ -45,7 +41,6 @@ end
|
|
45
41
|
|
46
42
|
def build_record(line)
|
47
43
|
return nil if line.nil?
|
48
|
-
|
49
44
|
record_type = line_type(line)
|
50
45
|
raise "Unknown record type at line #{@line_number.to_s}" if record_type == :unknown
|
51
46
|
return @record_template[record_type].build_record(line.chomp)
|
@@ -117,8 +112,7 @@ new_layout = {}
|
|
117
112
|
layout.each_pair do |record_type,vars|
|
118
113
|
|
119
114
|
new_layout[record_type] = []
|
120
|
-
new_vars = vars.each_pair do |var_name, range|
|
121
|
-
|
115
|
+
new_vars = vars.each_pair do |var_name, range|
|
122
116
|
new_layout[record_type] << var_class.new(var_name.to_s,range.first, range.last - range.first + 1)
|
123
117
|
end
|
124
118
|
new_layout[record_type].sort!{|a,b| a.start<=>b.start}
|
data/lib/hflr/record_template.rb
CHANGED
@@ -121,7 +121,11 @@ def self.create_template_class(record_type, record_type_label, layout, first_col
|
|
121
121
|
if record.is_a?(Array) or record.is_a?(Struct) then
|
122
122
|
fields = []
|
123
123
|
@field_widths.each_with_index do |width, i|
|
124
|
+
begin
|
124
125
|
fields << right_format(record[i], width)
|
126
|
+
rescue Exception=>msg
|
127
|
+
raise "Output format problem for #{record.members[i].to_s} #{msg.to_s}"
|
128
|
+
end
|
125
129
|
end
|
126
130
|
return fields
|
127
131
|
else
|
metadata
CHANGED
@@ -1,12 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hflr
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
prerelease:
|
5
|
-
|
6
|
-
- 1
|
7
|
-
- 0
|
8
|
-
- 1
|
9
|
-
version: 1.0.1
|
4
|
+
prerelease:
|
5
|
+
version: 1.0.2
|
10
6
|
platform: ruby
|
11
7
|
authors:
|
12
8
|
- Colin Davis
|
@@ -64,23 +60,21 @@ rdoc_options: []
|
|
64
60
|
require_paths:
|
65
61
|
- lib
|
66
62
|
required_ruby_version: !ruby/object:Gem::Requirement
|
63
|
+
none: false
|
67
64
|
requirements:
|
68
65
|
- - ">="
|
69
66
|
- !ruby/object:Gem::Version
|
70
|
-
segments:
|
71
|
-
- 0
|
72
67
|
version: "0"
|
73
68
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
69
|
+
none: false
|
74
70
|
requirements:
|
75
71
|
- - ">="
|
76
72
|
- !ruby/object:Gem::Version
|
77
|
-
segments:
|
78
|
-
- 0
|
79
73
|
version: "0"
|
80
74
|
requirements: []
|
81
75
|
|
82
76
|
rubyforge_project:
|
83
|
-
rubygems_version: 1.
|
77
|
+
rubygems_version: 1.5.1
|
84
78
|
signing_key:
|
85
79
|
specification_version: 3
|
86
80
|
summary: HFLR -- Hierarchical Fixed Length Records Allows you to read and write files of fixed width records when the file contains one or more than one type of record
|