hflr 1.0.1 → 1.0.2
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.
- 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
|