hippo 0.0.12 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG CHANGED
@@ -1,3 +1,13 @@
1
+ 0.1.0 - 2012/01/05
2
+ * Add concept of Outputters.
3
+ * Create PDF and HTML outputters.
4
+ * Create PaperClaim outputter for HIPAA_837::L2000A.
5
+ * Refactor parsing so any descendant of TransactionSet::Base is
6
+ able to parse a string representation of itself.
7
+ * Refactor Separator module to use super instead of a custom
8
+ function call to initialize the separators.
9
+ * Fix project so that we do not modify $LOAD_PATH.
10
+ * Only use autoload for Segments and TransactionSets that are optional.
1
11
  0.0.12 - 2011/12/22
2
12
  * Fix a number of parsing errors.
3
13
  * Ensure that we only evaluate the first segment when matching
@@ -36,10 +46,8 @@
36
46
  repetition separators the same.
37
47
  * Respect 'parent's separators when building/initializing components.
38
48
  * Fixed parsing logic to properly handle nested groups.
39
-
40
49
  0.0.5 - 2011/09/16
41
50
  * Add ability to parse transaction sets.
42
-
43
51
  0.0.4
44
52
  * Fix issue when no values are set in any subfield of a composite field.
45
53
  * Add more segment tests.
data/Gemfile CHANGED
@@ -4,8 +4,5 @@ source "http://rubygems.org"
4
4
  gemspec
5
5
 
6
6
  group :development do
7
- gem 'rb-fsevent'
8
- gem 'growl_notify'
9
- gem 'guard-minitest'
10
7
  gem 'pry'
11
8
  end
@@ -0,0 +1,13 @@
1
+ module Hippo::Outputters
2
+ module HTML
3
+ module TransactionSet
4
+ def to_html
5
+ end
6
+ end
7
+
8
+ module Segment
9
+ def to_html
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,7 @@
1
+ module Hippo::Outputters
2
+ module PaperClaim
3
+ def to_claim
4
+
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,13 @@
1
+ module Hippo::Outputters
2
+ module PDF
3
+ module TransactionSet
4
+ def to_pdf
5
+ end
6
+ end
7
+
8
+ module Segment
9
+ def to_pdf
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,3 @@
1
+ require_relative 'outputters/html'
2
+ require_relative 'outputters/pdf'
3
+ require_relative 'outputters/paper_claim'
@@ -0,0 +1,35 @@
1
+ module Hippo
2
+ class Parser
3
+ module Segment
4
+ def parse(input)
5
+ input.gsub!(/[\a\e\f\n\r\t\v]/,'')
6
+ fields = input.split(@field_separator)
7
+
8
+ segment_identifier = fields.shift
9
+
10
+ fields.each_with_index do |value, index|
11
+ field = self.class.fields[index]
12
+
13
+ # if the field is an array that means it is a
14
+ # composite field
15
+ if field.class == Array
16
+ composite_fields = value.split(@composite_separator)
17
+ composite_sequence = field.first.composite_sequence
18
+
19
+ self.values[composite_sequence] = {}
20
+
21
+ composite_fields.each_with_index do |comp_value, comp_index|
22
+ composite_field = field[comp_index]
23
+
24
+ self.values[composite_sequence][composite_field.sequence] = comp_value
25
+ end
26
+ else
27
+ self.values[field.sequence] = value
28
+ end
29
+ end
30
+
31
+ self
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,39 @@
1
+ module Hippo
2
+ class Parser
3
+ module TransactionSet
4
+ attr_accessor :unparsed_data
5
+
6
+ def initialize(options={})
7
+ super
8
+ end
9
+
10
+ def find_first_segment(segments, identifier, reverse = false)
11
+ segments.reverse! if reverse
12
+
13
+ if index = segments.index{|o| o.identifier == identifier}
14
+ segments[index]
15
+ else
16
+ nil
17
+ end
18
+ end
19
+
20
+ def segments
21
+ @segments ||= @unparsed_data.split(@segment_separator).collect do |segment_string|
22
+ segment = Hippo::Segments.const_get(segment_string.split(@field_separator).first).new(:parent => self)
23
+
24
+ segment.parse(segment_string)
25
+ end
26
+ end
27
+
28
+ def read(input)
29
+ @unparsed_data = input.gsub(/[\a\e\f\n\r\t\v]/,'')
30
+ parse_separators(@unparsed_data)
31
+ end
32
+
33
+ def parse(input)
34
+ read(input)
35
+ populate(segments)
36
+ end
37
+ end
38
+ end
39
+ end
data/lib/hippo/parser.rb CHANGED
@@ -1,90 +1,32 @@
1
- require 'hippo'
1
+ require_relative 'parser/segment'
2
+ require_relative 'parser/transaction_set'
2
3
 
3
4
  module Hippo
4
5
  class Parser
5
6
  include Hippo::Separator
7
+ include TransactionSet
6
8
 
7
- attr_accessor :transaction_sets, :raw_data
8
-
9
- def initialize(options={})
10
- setup_separators(options)
11
- end
12
-
13
- def read_string(input)
14
- @raw_data = input
15
- remove_base_control_characters
16
- parse_separators(@raw_data)
17
- end
18
-
19
- def read_file(filename)
20
- @raw_data = File.read(filename)
21
- remove_base_control_characters
22
- parse_separators(@raw_data)
23
- end
24
-
25
- def remove_base_control_characters
26
- @raw_data.gsub!(/[\a\e\f\n\r\t\v]/,'')
27
- end
28
-
29
- def initialize_segment(input)
30
- fields = input.split(@field_separator)
31
-
32
- segment_identifier = fields.shift
33
- segment = Segments.const_get(segment_identifier.upcase).new
34
-
35
- fields.each_with_index do |value, index|
36
- field = segment.class.fields[index]
37
-
38
- # if the field is an array that means it is a
39
- # composite field
40
- if field.class == Array
41
- composite_fields = value.split(@composite_separator)
42
- composite_sequence = field.first.composite_sequence
43
-
44
- segment.values[composite_sequence] = {}
45
-
46
- composite_fields.each_with_index do |comp_value, comp_index|
47
- composite_field = field[comp_index]
48
-
49
- segment.values[composite_sequence][composite_field.sequence] = comp_value
50
- end
51
- else
52
- segment.values[field.sequence] = value
53
- end
54
- end
55
-
56
- segment
9
+ def initialize
10
+ super
57
11
  end
58
12
 
59
- def find_first_segment(segments, identifier, reverse = false)
60
- segments.reverse! if reverse
61
-
62
- if index = segments.index{|o| o.identifier == identifier}
63
- segments[index]
64
- else
65
- nil
66
- end
13
+ def initialize_transaction_set(index)
14
+ {
15
+ :segments => [],
16
+ :ISA => find_first_segment(segments[0,index + 1], 'ISA', true),
17
+ :GS => find_first_segment(segments[0,index + 1], 'GS', true),
18
+ :GE => find_first_segment(segments[index + 1, segments.length - index + 1], 'GE'),
19
+ :IEA => find_first_segment(segments[index + 1, segments.length - index + 1], 'IEA')
20
+ }
67
21
  end
68
22
 
69
- def populate_transaction_sets
23
+ def parse_transaction_sets
70
24
  raw_transaction_sets = []
71
- segments = []
72
25
  inside_transaction = false
73
26
 
74
- @raw_data.split(@segment_separator).each do |segment_string|
75
- next if segment_string.strip.empty?
76
-
77
- segments << initialize_segment(segment_string)
78
- end
79
-
80
27
  segments.each_with_index do |segment, index|
81
-
82
28
  if segment.identifier == 'ST'
83
- raw_transaction_sets << {:segments => [],
84
- :ISA => find_first_segment(segments[0,index + 1], 'ISA', true),
85
- :GS => find_first_segment(segments[0,index + 1], 'GS', true),
86
- :GE => find_first_segment(segments[index + 1,segments.length - index + 1], 'GE'),
87
- :IEA => find_first_segment(segments[index + 1,segments.length - index + 1], 'IEA')}
29
+ raw_transaction_sets << initialize_transaction_set(index)
88
30
 
89
31
  inside_transaction = true
90
32
  end
@@ -94,36 +36,25 @@ module Hippo
94
36
  inside_transaction = false if segment.identifier == 'SE'
95
37
  end
96
38
 
97
- raw_transaction_sets.collect do |transaction|
39
+ raw_transaction_sets
40
+ end
41
+
42
+ def populate_transaction_sets
43
+ parse_transaction_sets.collect do |transaction|
98
44
  transaction_set_id = transaction[:segments].first.ST01
99
45
  transaction_set = Hippo::TransactionSets.constants.select{|c| c.to_s.end_with?(transaction_set_id) }.first
100
-
46
+ binding.pry if transaction_set.nil?
101
47
  Hippo::TransactionSets.const_get(transaction_set)::Base.new(separators.merge(transaction))
102
48
  end
103
49
  end
104
50
 
105
51
  def parse_file(filename)
106
- read_file(filename)
107
- populate_transaction_sets
52
+ parse_string(File.read(filename))
108
53
  end
109
- alias :parse :parse_file
110
54
 
111
55
  def parse_string(input)
112
- read_string(input)
56
+ read(input)
113
57
  populate_transaction_sets
114
58
  end
115
59
  end
116
- end
117
-
118
- if __FILE__ == $0
119
- parser = Hippo::Parser.new
120
- parser.parse(ARGV[0])
121
-
122
- output_string = ''
123
- parser.segments.each do |seg|
124
- output_string += seg.to_s
125
- end
126
-
127
- puts ''
128
- puts output_string
129
- end
60
+ end
@@ -1,6 +1,9 @@
1
1
  module Hippo::Segments
2
2
  class Base
3
3
  include Hippo::Separator
4
+ include Hippo::Parser::Segment
5
+ include Hippo::Outputters::HTML::Segment
6
+ include Hippo::Outputters::PDF::Segment
4
7
 
5
8
  class << self
6
9
  attr_accessor :fields, :identifier, :fixed_width
@@ -62,7 +65,7 @@ module Hippo::Segments
62
65
  def initialize(options = {})
63
66
  @parent = options.delete(:parent)
64
67
 
65
- setup_separators(options)
68
+ super
66
69
  end
67
70
 
68
71
  def values
@@ -1,91 +1,91 @@
1
+ require_relative 'segments/base'
2
+
1
3
  module Hippo
2
4
  module Segments
5
+ autoload_relative :AK1, 'segments/AK1'
6
+ autoload_relative :AK2, 'segments/AK2'
7
+ autoload_relative :AK9, 'segments/AK9'
8
+ autoload_relative :AMT, 'segments/AMT'
9
+ autoload_relative :BHT, 'segments/BHT'
10
+ autoload_relative :BPR, 'segments/BPR'
11
+ autoload_relative :CAS, 'segments/CAS'
12
+ autoload_relative :CL1, 'segments/CL1'
13
+ autoload_relative :CLM, 'segments/CLM'
14
+ autoload_relative :CLP, 'segments/CLP'
15
+ autoload_relative :CN1, 'segments/CN1'
16
+ autoload_relative :CR1, 'segments/CR1'
17
+ autoload_relative :CR2, 'segments/CR2'
18
+ autoload_relative :CR3, 'segments/CR3'
19
+ autoload_relative :CR4, 'segments/CR4'
20
+ autoload_relative :CR5, 'segments/CR5'
21
+ autoload_relative :CR6, 'segments/CR6'
22
+ autoload_relative :CR7, 'segments/CR7'
23
+ autoload_relative :CR8, 'segments/CR8'
24
+ autoload_relative :CRC, 'segments/CRC'
25
+ autoload_relative :CTP, 'segments/CTP'
26
+ autoload_relative :CTX, 'segments/CTX'
27
+ autoload_relative :CUR, 'segments/CUR'
28
+ autoload_relative :DMG, 'segments/DMG'
29
+ autoload_relative :DN1, 'segments/DN1'
30
+ autoload_relative :DN2, 'segments/DN2'
31
+ autoload_relative :DSB, 'segments/DSB'
32
+ autoload_relative :DTM, 'segments/DTM'
33
+ autoload_relative :DTP, 'segments/DTP'
34
+ autoload_relative :FRM, 'segments/FRM'
35
+ autoload_relative :HCP, 'segments/HCP'
36
+ autoload_relative :HI, 'segments/HI'
37
+ autoload_relative :HL, 'segments/HL'
38
+ autoload_relative :HSD, 'segments/HSD'
39
+ autoload_relative :IK3, 'segments/IK3'
40
+ autoload_relative :IK4, 'segments/IK4'
41
+ autoload_relative :IK5, 'segments/IK5'
42
+ autoload_relative :IMM, 'segments/IMM'
43
+ autoload_relative :K3, 'segments/K3'
44
+ autoload_relative :LIN, 'segments/LIN'
45
+ autoload_relative :LQ, 'segments/LQ'
46
+ autoload_relative :LX, 'segments/LX'
47
+ autoload_relative :MEA, 'segments/MEA'
48
+ autoload_relative :MIA, 'segments/MIA'
49
+ autoload_relative :MOA, 'segments/MOA'
50
+ autoload_relative :N1, 'segments/N1'
51
+ autoload_relative :N2, 'segments/N2'
52
+ autoload_relative :N3, 'segments/N3'
53
+ autoload_relative :N4, 'segments/N4'
54
+ autoload_relative :NM1, 'segments/NM1'
55
+ autoload_relative :NTE, 'segments/NTE'
56
+ autoload_relative :OI, 'segments/OI'
57
+ autoload_relative :PAT, 'segments/PAT'
58
+ autoload_relative :PER, 'segments/PER'
59
+ autoload_relative :PLB, 'segments/PLB'
60
+ autoload_relative :PRV, 'segments/PRV'
61
+ autoload_relative :PS1, 'segments/PS1'
62
+ autoload_relative :PWK, 'segments/PWK'
63
+ autoload_relative :QTY, 'segments/QTY'
64
+ autoload_relative :RDM, 'segments/RDM'
65
+ autoload_relative :REF, 'segments/REF'
66
+ autoload_relative :SBR, 'segments/SBR'
67
+ autoload_relative :SE, 'segments/SE'
68
+ autoload_relative :ST, 'segments/ST'
69
+ autoload_relative :STC, 'segments/STC'
70
+ autoload_relative :SV1, 'segments/SV1'
71
+ autoload_relative :SV2, 'segments/SV2'
72
+ autoload_relative :SV3, 'segments/SV3'
73
+ autoload_relative :SV4, 'segments/SV4'
74
+ autoload_relative :SV5, 'segments/SV5'
75
+ autoload_relative :SV6, 'segments/SV6'
76
+ autoload_relative :SV7, 'segments/SV7'
77
+ autoload_relative :SVC, 'segments/SVC'
78
+ autoload_relative :SVD, 'segments/SVD'
79
+ autoload_relative :TOO, 'segments/TOO'
80
+ autoload_relative :TRN, 'segments/TRN'
81
+ autoload_relative :TS2, 'segments/TS2'
82
+ autoload_relative :TS3, 'segments/TS3'
83
+ autoload_relative :UR, 'segments/UR'
3
84
 
4
- autoload :Base, 'hippo/segments/base'
5
- autoload :AK1, 'hippo/segments/AK1'
6
- autoload :AK2, 'hippo/segments/AK2'
7
- autoload :AK9, 'hippo/segments/AK9'
8
- autoload :AMT, 'hippo/segments/AMT'
9
- autoload :BHT, 'hippo/segments/BHT'
10
- autoload :BPR, 'hippo/segments/BPR'
11
- autoload :CAS, 'hippo/segments/CAS'
12
- autoload :CL1, 'hippo/segments/CL1'
13
- autoload :CLM, 'hippo/segments/CLM'
14
- autoload :CLP, 'hippo/segments/CLP'
15
- autoload :CN1, 'hippo/segments/CN1'
16
- autoload :CR1, 'hippo/segments/CR1'
17
- autoload :CR2, 'hippo/segments/CR2'
18
- autoload :CR3, 'hippo/segments/CR3'
19
- autoload :CR4, 'hippo/segments/CR4'
20
- autoload :CR5, 'hippo/segments/CR5'
21
- autoload :CR6, 'hippo/segments/CR6'
22
- autoload :CR7, 'hippo/segments/CR7'
23
- autoload :CR8, 'hippo/segments/CR8'
24
- autoload :CRC, 'hippo/segments/CRC'
25
- autoload :CTP, 'hippo/segments/CTP'
26
- autoload :CTX, 'hippo/segments/CTX'
27
- autoload :CUR, 'hippo/segments/CUR'
28
- autoload :DMG, 'hippo/segments/DMG'
29
- autoload :DN1, 'hippo/segments/DN1'
30
- autoload :DN2, 'hippo/segments/DN2'
31
- autoload :DSB, 'hippo/segments/DSB'
32
- autoload :DTM, 'hippo/segments/DTM'
33
- autoload :DTP, 'hippo/segments/DTP'
34
- autoload :FRM, 'hippo/segments/FRM'
35
- autoload :HCP, 'hippo/segments/HCP'
36
- autoload :HI, 'hippo/segments/HI'
37
- autoload :HL, 'hippo/segments/HL'
38
- autoload :HSD, 'hippo/segments/HSD'
39
- autoload :IK3, 'hippo/segments/IK3'
40
- autoload :IK4, 'hippo/segments/IK4'
41
- autoload :IK5, 'hippo/segments/IK5'
42
- autoload :IMM, 'hippo/segments/IMM'
43
- autoload :K3, 'hippo/segments/K3'
44
- autoload :LIN, 'hippo/segments/LIN'
45
- autoload :LQ, 'hippo/segments/LQ'
46
- autoload :LX, 'hippo/segments/LX'
47
- autoload :MEA, 'hippo/segments/MEA'
48
- autoload :MIA, 'hippo/segments/MIA'
49
- autoload :MOA, 'hippo/segments/MOA'
50
- autoload :N1, 'hippo/segments/N1'
51
- autoload :N2, 'hippo/segments/N2'
52
- autoload :N3, 'hippo/segments/N3'
53
- autoload :N4, 'hippo/segments/N4'
54
- autoload :NM1, 'hippo/segments/NM1'
55
- autoload :NTE, 'hippo/segments/NTE'
56
- autoload :OI, 'hippo/segments/OI'
57
- autoload :PAT, 'hippo/segments/PAT'
58
- autoload :PER, 'hippo/segments/PER'
59
- autoload :PLB, 'hippo/segments/PLB'
60
- autoload :PRV, 'hippo/segments/PRV'
61
- autoload :PS1, 'hippo/segments/PS1'
62
- autoload :PWK, 'hippo/segments/PWK'
63
- autoload :QTY, 'hippo/segments/QTY'
64
- autoload :RDM, 'hippo/segments/RDM'
65
- autoload :REF, 'hippo/segments/REF'
66
- autoload :SBR, 'hippo/segments/SBR'
67
- autoload :SE, 'hippo/segments/SE'
68
- autoload :ST, 'hippo/segments/ST'
69
- autoload :STC, 'hippo/segments/STC'
70
- autoload :SV1, 'hippo/segments/SV1'
71
- autoload :SV2, 'hippo/segments/SV2'
72
- autoload :SV3, 'hippo/segments/SV3'
73
- autoload :SV4, 'hippo/segments/SV4'
74
- autoload :SV5, 'hippo/segments/SV5'
75
- autoload :SV6, 'hippo/segments/SV6'
76
- autoload :SV7, 'hippo/segments/SV7'
77
- autoload :SVC, 'hippo/segments/SVC'
78
- autoload :SVD, 'hippo/segments/SVD'
79
- autoload :TOO, 'hippo/segments/TOO'
80
- autoload :TRN, 'hippo/segments/TRN'
81
- autoload :TS2, 'hippo/segments/TS2'
82
- autoload :TS3, 'hippo/segments/TS3'
83
- autoload :UR, 'hippo/segments/UR'
84
-
85
- autoload :ISA, 'hippo/segments/ISA'
86
- autoload :GS, 'hippo/segments/GS'
87
- autoload :GE, 'hippo/segments/GE'
88
- autoload :IEA, 'hippo/segments/IEA'
89
- autoload :TA1, 'hippo/segments/TA1'
85
+ autoload_relative :ISA, 'segments/ISA'
86
+ autoload_relative :GS, 'segments/GS'
87
+ autoload_relative :GE, 'segments/GE'
88
+ autoload_relative :IEA, 'segments/IEA'
89
+ autoload_relative :TA1, 'segments/TA1'
90
90
  end
91
91
  end
@@ -1,8 +1,13 @@
1
1
  module Hippo
2
+ DEFAULT_FIELD_SEPARATOR = '*'
3
+ DEFAULT_COMPOSITE_SEPARATOR = ':'
4
+ DEFAULT_SEGMENT_SEPARATOR = '~'
5
+ DEFAULT_REPETITION_SEPARATOR = '^'
6
+
2
7
  module Separator
3
8
  attr_accessor :field_separator, :composite_separator, :repetition_separator, :segment_separator
4
9
 
5
- def setup_separators(options = {})
10
+ def initialize(options = {})
6
11
  [:field_separator, :repetition_separator, :composite_separator, :segment_separator].each do |sym|
7
12
  value = options[sym] || parent_or_default_separator(sym)
8
13
 
@@ -20,10 +25,10 @@ module Hippo
20
25
 
21
26
  def parse_separators(input)
22
27
  if input =~ /\AISA/
23
- @field_separator = input[3]
24
- @repetition_separator = input[82]
25
- @composite_separator = input[104]
26
- @segment_separator = input[105]
28
+ @field_separator = input[3,1]
29
+ @repetition_separator = input[82,1]
30
+ @composite_separator = input[104,1]
31
+ @segment_separator = input[105,1]
27
32
  end
28
33
  end
29
34
 
@@ -1,21 +1,19 @@
1
1
  module Hippo::TransactionSets
2
2
  module HIPAA_276
3
-
4
- autoload :Base, 'hippo/transaction_sets/HIPAA_276/base'
5
- autoload :L2000A, 'hippo/transaction_sets/HIPAA_276/L2000A'
6
- autoload :L2000B, 'hippo/transaction_sets/HIPAA_276/L2000B'
7
- autoload :L2000C, 'hippo/transaction_sets/HIPAA_276/L2000C'
8
- autoload :L2000D, 'hippo/transaction_sets/HIPAA_276/L2000D'
9
- autoload :L2000E, 'hippo/transaction_sets/HIPAA_276/L2000E'
10
- autoload :L2100A, 'hippo/transaction_sets/HIPAA_276/L2100A'
11
- autoload :L2100B, 'hippo/transaction_sets/HIPAA_276/L2100B'
12
- autoload :L2100C, 'hippo/transaction_sets/HIPAA_276/L2100C'
13
- autoload :L2100D, 'hippo/transaction_sets/HIPAA_276/L2100D'
14
- autoload :L2100E, 'hippo/transaction_sets/HIPAA_276/L2100E'
15
- autoload :L2200D, 'hippo/transaction_sets/HIPAA_276/L2200D'
16
- autoload :L2200E, 'hippo/transaction_sets/HIPAA_276/L2200E'
17
- autoload :L2210D, 'hippo/transaction_sets/HIPAA_276/L2210D'
18
- autoload :L2210E, 'hippo/transaction_sets/HIPAA_276/L2210E'
19
-
3
+ autoload_relative :Base, 'HIPAA_276/base'
4
+ autoload_relative :L2000A, 'HIPAA_276/L2000A'
5
+ autoload_relative :L2000B, 'HIPAA_276/L2000B'
6
+ autoload_relative :L2000C, 'HIPAA_276/L2000C'
7
+ autoload_relative :L2000D, 'HIPAA_276/L2000D'
8
+ autoload_relative :L2000E, 'HIPAA_276/L2000E'
9
+ autoload_relative :L2100A, 'HIPAA_276/L2100A'
10
+ autoload_relative :L2100B, 'HIPAA_276/L2100B'
11
+ autoload_relative :L2100C, 'HIPAA_276/L2100C'
12
+ autoload_relative :L2100D, 'HIPAA_276/L2100D'
13
+ autoload_relative :L2100E, 'HIPAA_276/L2100E'
14
+ autoload_relative :L2200D, 'HIPAA_276/L2200D'
15
+ autoload_relative :L2200E, 'HIPAA_276/L2200E'
16
+ autoload_relative :L2210D, 'HIPAA_276/L2210D'
17
+ autoload_relative :L2210E, 'HIPAA_276/L2210E'
20
18
  end
21
19
  end
@@ -1,24 +1,22 @@
1
1
  module Hippo::TransactionSets
2
2
  module HIPAA_277
3
-
4
- autoload :Base, 'hippo/transaction_sets/HIPAA_277/base'
5
- autoload :L2000A, 'hippo/transaction_sets/HIPAA_277/L2000A'
6
- autoload :L2000B, 'hippo/transaction_sets/HIPAA_277/L2000B'
7
- autoload :L2000C, 'hippo/transaction_sets/HIPAA_277/L2000C'
8
- autoload :L2000D, 'hippo/transaction_sets/HIPAA_277/L2000D'
9
- autoload :L2000E, 'hippo/transaction_sets/HIPAA_277/L2000E'
10
- autoload :L2100A, 'hippo/transaction_sets/HIPAA_277/L2100A'
11
- autoload :L2100B, 'hippo/transaction_sets/HIPAA_277/L2100B'
12
- autoload :L2100C, 'hippo/transaction_sets/HIPAA_277/L2100C'
13
- autoload :L2100D, 'hippo/transaction_sets/HIPAA_277/L2100D'
14
- autoload :L2100E, 'hippo/transaction_sets/HIPAA_277/L2100E'
15
- autoload :L2200A, 'hippo/transaction_sets/HIPAA_277/L2200A'
16
- autoload :L2200B, 'hippo/transaction_sets/HIPAA_277/L2200B'
17
- autoload :L2200C, 'hippo/transaction_sets/HIPAA_277/L2200C'
18
- autoload :L2200D, 'hippo/transaction_sets/HIPAA_277/L2200D'
19
- autoload :L2200E, 'hippo/transaction_sets/HIPAA_277/L2200E'
20
- autoload :L2220D, 'hippo/transaction_sets/HIPAA_277/L2220D'
21
- autoload :L2220E, 'hippo/transaction_sets/HIPAA_277/L2220E'
22
-
3
+ autoload_relative :Base, 'HIPAA_277/base'
4
+ autoload_relative :L2000A, 'HIPAA_277/L2000A'
5
+ autoload_relative :L2000B, 'HIPAA_277/L2000B'
6
+ autoload_relative :L2000C, 'HIPAA_277/L2000C'
7
+ autoload_relative :L2000D, 'HIPAA_277/L2000D'
8
+ autoload_relative :L2000E, 'HIPAA_277/L2000E'
9
+ autoload_relative :L2100A, 'HIPAA_277/L2100A'
10
+ autoload_relative :L2100B, 'HIPAA_277/L2100B'
11
+ autoload_relative :L2100C, 'HIPAA_277/L2100C'
12
+ autoload_relative :L2100D, 'HIPAA_277/L2100D'
13
+ autoload_relative :L2100E, 'HIPAA_277/L2100E'
14
+ autoload_relative :L2200A, 'HIPAA_277/L2200A'
15
+ autoload_relative :L2200B, 'HIPAA_277/L2200B'
16
+ autoload_relative :L2200C, 'HIPAA_277/L2200C'
17
+ autoload_relative :L2200D, 'HIPAA_277/L2200D'
18
+ autoload_relative :L2200E, 'HIPAA_277/L2200E'
19
+ autoload_relative :L2220D, 'HIPAA_277/L2220D'
20
+ autoload_relative :L2220E, 'HIPAA_277/L2220E'
23
21
  end
24
22
  end
@@ -1,12 +1,10 @@
1
1
  module Hippo::TransactionSets
2
2
  module HIPAA_835
3
-
4
- autoload :Base, 'hippo/transaction_sets/HIPAA_835/base'
5
- autoload :L1000A, 'hippo/transaction_sets/HIPAA_835/L1000A'
6
- autoload :L1000B, 'hippo/transaction_sets/HIPAA_835/L1000B'
7
- autoload :L2000, 'hippo/transaction_sets/HIPAA_835/L2000'
8
- autoload :L2100, 'hippo/transaction_sets/HIPAA_835/L2100'
9
- autoload :L2110, 'hippo/transaction_sets/HIPAA_835/L2110'
10
-
3
+ autoload_relative :Base, 'HIPAA_835/base'
4
+ autoload_relative :L1000A, 'HIPAA_835/L1000A'
5
+ autoload_relative :L1000B, 'HIPAA_835/L1000B'
6
+ autoload_relative :L2000, 'HIPAA_835/L2000'
7
+ autoload_relative :L2100, 'HIPAA_835/L2100'
8
+ autoload_relative :L2110, 'HIPAA_835/L2110'
11
9
  end
12
10
  end
@@ -2,6 +2,8 @@ module Hippo::TransactionSets
2
2
  module HIPAA_837
3
3
 
4
4
  class L2000A < Hippo::TransactionSets::Base
5
+ include Hippo::Outputters::PaperClaim
6
+
5
7
  loop_name 'L2000A' #Billing Provider Hierarchical Level
6
8
 
7
9
  #Billing Provider Hierarchical Level
@@ -2,7 +2,6 @@ module Hippo::TransactionSets
2
2
  module HIPAA_837
3
3
 
4
4
  class Base < Hippo::TransactionSets::Base
5
-
6
5
  #Transaction Set Header
7
6
  segment Hippo::Segments::ST,
8
7
  :name => 'Transaction Set Header',
@@ -1,45 +1,43 @@
1
1
  module Hippo::TransactionSets
2
2
  module HIPAA_837
3
-
4
- autoload :Base, 'hippo/transaction_sets/HIPAA_837/base'
5
- autoload :L1000A, 'hippo/transaction_sets/HIPAA_837/L1000A'
6
- autoload :L1000B, 'hippo/transaction_sets/HIPAA_837/L1000B'
7
- autoload :L2000A, 'hippo/transaction_sets/HIPAA_837/L2000A'
8
- autoload :L2000B, 'hippo/transaction_sets/HIPAA_837/L2000B'
9
- autoload :L2000C, 'hippo/transaction_sets/HIPAA_837/L2000C'
10
- autoload :L2010AA, 'hippo/transaction_sets/HIPAA_837/L2010AA'
11
- autoload :L2010AB, 'hippo/transaction_sets/HIPAA_837/L2010AB'
12
- autoload :L2010AC, 'hippo/transaction_sets/HIPAA_837/L2010AC'
13
- autoload :L2010BA, 'hippo/transaction_sets/HIPAA_837/L2010BA'
14
- autoload :L2010BB, 'hippo/transaction_sets/HIPAA_837/L2010BB'
15
- autoload :L2010CA, 'hippo/transaction_sets/HIPAA_837/L2010CA'
16
- autoload :L2300, 'hippo/transaction_sets/HIPAA_837/L2300'
17
- autoload :L2310A, 'hippo/transaction_sets/HIPAA_837/L2310A'
18
- autoload :L2310B, 'hippo/transaction_sets/HIPAA_837/L2310B'
19
- autoload :L2310C, 'hippo/transaction_sets/HIPAA_837/L2310C'
20
- autoload :L2310D, 'hippo/transaction_sets/HIPAA_837/L2310D'
21
- autoload :L2310E, 'hippo/transaction_sets/HIPAA_837/L2310E'
22
- autoload :L2310F, 'hippo/transaction_sets/HIPAA_837/L2310F'
23
- autoload :L2320, 'hippo/transaction_sets/HIPAA_837/L2320'
24
- autoload :L2330A, 'hippo/transaction_sets/HIPAA_837/L2330A'
25
- autoload :L2330B, 'hippo/transaction_sets/HIPAA_837/L2330B'
26
- autoload :L2330C, 'hippo/transaction_sets/HIPAA_837/L2330C'
27
- autoload :L2330D, 'hippo/transaction_sets/HIPAA_837/L2330D'
28
- autoload :L2330E, 'hippo/transaction_sets/HIPAA_837/L2330E'
29
- autoload :L2330F, 'hippo/transaction_sets/HIPAA_837/L2330F'
30
- autoload :L2330G, 'hippo/transaction_sets/HIPAA_837/L2330G'
31
- autoload :L2400, 'hippo/transaction_sets/HIPAA_837/L2400'
32
- autoload :L2410, 'hippo/transaction_sets/HIPAA_837/L2410'
33
- autoload :L2420A, 'hippo/transaction_sets/HIPAA_837/L2420A'
34
- autoload :L2420B, 'hippo/transaction_sets/HIPAA_837/L2420B'
35
- autoload :L2420C, 'hippo/transaction_sets/HIPAA_837/L2420C'
36
- autoload :L2420D, 'hippo/transaction_sets/HIPAA_837/L2420D'
37
- autoload :L2420E, 'hippo/transaction_sets/HIPAA_837/L2420E'
38
- autoload :L2420F, 'hippo/transaction_sets/HIPAA_837/L2420F'
39
- autoload :L2420G, 'hippo/transaction_sets/HIPAA_837/L2420G'
40
- autoload :L2420H, 'hippo/transaction_sets/HIPAA_837/L2420H'
41
- autoload :L2430, 'hippo/transaction_sets/HIPAA_837/L2430'
42
- autoload :L2440, 'hippo/transaction_sets/HIPAA_837/L2440'
43
-
3
+ autoload_relative :Base, 'HIPAA_837/base'
4
+ autoload_relative :L1000A, 'HIPAA_837/L1000A'
5
+ autoload_relative :L1000B, 'HIPAA_837/L1000B'
6
+ autoload_relative :L2000A, 'HIPAA_837/L2000A'
7
+ autoload_relative :L2000B, 'HIPAA_837/L2000B'
8
+ autoload_relative :L2000C, 'HIPAA_837/L2000C'
9
+ autoload_relative :L2010AA, 'HIPAA_837/L2010AA'
10
+ autoload_relative :L2010AB, 'HIPAA_837/L2010AB'
11
+ autoload_relative :L2010AC, 'HIPAA_837/L2010AC'
12
+ autoload_relative :L2010BA, 'HIPAA_837/L2010BA'
13
+ autoload_relative :L2010BB, 'HIPAA_837/L2010BB'
14
+ autoload_relative :L2010CA, 'HIPAA_837/L2010CA'
15
+ autoload_relative :L2300, 'HIPAA_837/L2300'
16
+ autoload_relative :L2310A, 'HIPAA_837/L2310A'
17
+ autoload_relative :L2310B, 'HIPAA_837/L2310B'
18
+ autoload_relative :L2310C, 'HIPAA_837/L2310C'
19
+ autoload_relative :L2310D, 'HIPAA_837/L2310D'
20
+ autoload_relative :L2310E, 'HIPAA_837/L2310E'
21
+ autoload_relative :L2310F, 'HIPAA_837/L2310F'
22
+ autoload_relative :L2320, 'HIPAA_837/L2320'
23
+ autoload_relative :L2330A, 'HIPAA_837/L2330A'
24
+ autoload_relative :L2330B, 'HIPAA_837/L2330B'
25
+ autoload_relative :L2330C, 'HIPAA_837/L2330C'
26
+ autoload_relative :L2330D, 'HIPAA_837/L2330D'
27
+ autoload_relative :L2330E, 'HIPAA_837/L2330E'
28
+ autoload_relative :L2330F, 'HIPAA_837/L2330F'
29
+ autoload_relative :L2330G, 'HIPAA_837/L2330G'
30
+ autoload_relative :L2400, 'HIPAA_837/L2400'
31
+ autoload_relative :L2410, 'HIPAA_837/L2410'
32
+ autoload_relative :L2420A, 'HIPAA_837/L2420A'
33
+ autoload_relative :L2420B, 'HIPAA_837/L2420B'
34
+ autoload_relative :L2420C, 'HIPAA_837/L2420C'
35
+ autoload_relative :L2420D, 'HIPAA_837/L2420D'
36
+ autoload_relative :L2420E, 'HIPAA_837/L2420E'
37
+ autoload_relative :L2420F, 'HIPAA_837/L2420F'
38
+ autoload_relative :L2420G, 'HIPAA_837/L2420G'
39
+ autoload_relative :L2420H, 'HIPAA_837/L2420H'
40
+ autoload_relative :L2430, 'HIPAA_837/L2430'
41
+ autoload_relative :L2440, 'HIPAA_837/L2440'
44
42
  end
45
43
  end
@@ -1,10 +1,8 @@
1
1
  module Hippo::TransactionSets
2
2
  module HIPAA_999
3
-
4
- autoload :Base, 'hippo/transaction_sets/HIPAA_999/base'
5
- autoload :L2000AK2, 'hippo/transaction_sets/HIPAA_999/L2000AK2'
6
- autoload :L2100AK2, 'hippo/transaction_sets/HIPAA_999/L2100AK2'
7
- autoload :L2110AK2, 'hippo/transaction_sets/HIPAA_999/L2110AK2'
8
-
3
+ autoload_relative :Base, 'HIPAA_999/base'
4
+ autoload_relative :L2000AK2, 'HIPAA_999/L2000AK2'
5
+ autoload_relative :L2100AK2, 'HIPAA_999/L2100AK2'
6
+ autoload_relative :L2110AK2, 'HIPAA_999/L2110AK2'
9
7
  end
10
8
  end
@@ -1,6 +1,9 @@
1
1
  module Hippo::TransactionSets
2
2
  class Base
3
3
  include Hippo::Separator
4
+ include Hippo::Parser::TransactionSet
5
+ include Hippo::Outputters::HTML::TransactionSet
6
+ include Hippo::Outputters::PDF::TransactionSet
4
7
 
5
8
  class << self
6
9
  attr_accessor :components, :identifier
@@ -29,7 +32,7 @@ module Hippo::TransactionSets
29
32
  @GE = options[:GE]
30
33
  @IEA = options[:IEA]
31
34
 
32
- setup_separators(options)
35
+ super
33
36
 
34
37
  populate(options[:segments]) if options[:segments]
35
38
  end
@@ -1,13 +1,13 @@
1
+ require_relative 'transaction_sets/base'
2
+ require_relative 'transaction_sets/component'
3
+ require_relative 'transaction_sets/repeating_component'
4
+
1
5
  module Hippo
2
6
  module TransactionSets
3
-
4
- autoload :Base, 'hippo/transaction_sets/base'
5
- autoload :Component, 'hippo/transaction_sets/component'
6
- autoload :RepeatingComponent, 'hippo/transaction_sets/repeating_component'
7
- autoload :HIPAA_276, 'hippo/transaction_sets/HIPAA_276'
8
- autoload :HIPAA_277, 'hippo/transaction_sets/HIPAA_277'
9
- autoload :HIPAA_835, 'hippo/transaction_sets/HIPAA_835'
10
- autoload :HIPAA_837, 'hippo/transaction_sets/HIPAA_837'
11
- autoload :HIPAA_999, 'hippo/transaction_sets/HIPAA_999'
7
+ autoload_relative :HIPAA_276, 'transaction_sets/HIPAA_276'
8
+ autoload_relative :HIPAA_277, 'transaction_sets/HIPAA_277'
9
+ autoload_relative :HIPAA_835, 'transaction_sets/HIPAA_835'
10
+ autoload_relative :HIPAA_837, 'transaction_sets/HIPAA_837'
11
+ autoload_relative :HIPAA_999, 'transaction_sets/HIPAA_999'
12
12
  end
13
13
  end
@@ -0,0 +1,37 @@
1
+ # encoding: utf-8
2
+
3
+ # This is the source code for require_relative, a Ruby gem that backports that
4
+ # particular feature to Ruby 1.8.
5
+ #
6
+ # Please check out the [README](https://github.com/steveklabnik/require_relative/blob/master/README.md)
7
+ # for more information on how to build your own copy of the gem, as well as
8
+ # contribute fixes.
9
+
10
+ # require\_relative has no effect on Ruby 1.9 (or other versions that provide Kernel#require_relative
11
+ # out of the box)
12
+ unless Object.new.respond_to?(:require_relative, true)
13
+ # Yep, you're looking at it! This gem is pretty small, and for good reason.
14
+ # There's not much to do! We use split to find the filename that we're
15
+ # looking to require, raise a LoadError if it's called in a context (like eval)
16
+ # that it shouldn't be, and then require it via regular old require.
17
+ #
18
+ # Now, in 1.9, "." is totally removed from the $LOAD_PATH. We don't do that
19
+ # here, because that would break a lot of other code! You're still vulnerable
20
+ # to the security hole that caused this change to happen in the first place.
21
+ # You will be able to use this gem to transition the code you write over to
22
+ # the 1.9 syntax, though.
23
+ def require_relative(relative_feature)
24
+
25
+ file = caller.first.split(/:\d/,2).first
26
+
27
+ raise LoadError, "require_relative is called in #{$1}" if /\A\((.*)\)/ =~ file
28
+
29
+ require File.expand_path(relative_feature, File.dirname(file))
30
+ end
31
+ end
32
+
33
+ def autoload_relative(symbol, relative_path)
34
+ file = caller.first.split(/:\d/,2).first
35
+
36
+ autoload symbol, File.expand_path(relative_path, File.dirname(file))
37
+ end
data/lib/hippo/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Hippo
2
- VERSION = "0.0.12"
2
+ VERSION = "0.1.0"
3
3
  end
data/lib/hippo.rb CHANGED
@@ -1,18 +1,10 @@
1
- libdir = File.dirname(__FILE__)
2
- $LOAD_PATH.unshift(libdir) unless $LOAD_PATH.include?(libdir)
1
+ require File.expand_path('hippo/utilities', File.dirname(__FILE__))
3
2
 
4
- module Hippo
5
- autoload :Exceptions, 'hippo/exceptions'
6
- autoload :Separator, 'hippo/separator'
7
- autoload :Segments, 'hippo/segments'
8
- autoload :TransactionSets, 'hippo/transaction_sets'
9
- autoload :Field, 'hippo/field'
10
- autoload :CompositeField, 'hippo/composite_field'
11
- autoload :Parser, 'hippo/parser'
12
- autoload :CodeLists, 'hippo/code_lists'
13
-
14
- DEFAULT_FIELD_SEPARATOR = '*'
15
- DEFAULT_COMPOSITE_SEPARATOR = ':'
16
- DEFAULT_SEGMENT_SEPARATOR = '~'
17
- DEFAULT_REPETITION_SEPARATOR = '^'
18
- end
3
+ require_relative 'hippo/exceptions'
4
+ require_relative 'hippo/separator'
5
+ require_relative 'hippo/field'
6
+ require_relative 'hippo/parser'
7
+ require_relative 'hippo/outputters'
8
+ require_relative 'hippo/segments'
9
+ require_relative 'hippo/transaction_sets'
10
+ require_relative 'hippo/code_lists'
data/test/test_parser.rb CHANGED
@@ -6,7 +6,7 @@ class TestParser < MiniTest::Unit::TestCase
6
6
  end
7
7
 
8
8
  def test_parse_returns_array_of_transaction_sets
9
- transaction_sets = @parser.parse('samples/005010X221A1_business_scenario_1.edi')
9
+ transaction_sets = @parser.parse_file('samples/005010X221A1_business_scenario_1.edi')
10
10
 
11
11
  assert_instance_of Array, transaction_sets
12
12
 
@@ -37,11 +37,11 @@ class TestParser < MiniTest::Unit::TestCase
37
37
 
38
38
  ts_result = @parser.parse_string(ts.to_s).first
39
39
 
40
- assert_equal ts.values.inspect, ts_result.values.inspect
40
+ assert_equal ts.values.to_s, ts_result.values.to_s
41
41
  end
42
42
 
43
43
  def test_reads_separators_from_isa
44
- @parser.parse('samples/005010X231A1_01.edi')
44
+ @parser.parse_file('samples/005010X231A1_01.edi')
45
45
 
46
46
  assert_equal '*', @parser.field_separator
47
47
  assert_equal '^', @parser.repetition_separator
@@ -49,7 +49,7 @@ class TestParser < MiniTest::Unit::TestCase
49
49
  assert_equal '~', @parser.segment_separator
50
50
 
51
51
  @parser = Hippo::Parser.new
52
- transaction_set = @parser.parse('samples/005010X231A1_02.edi')
52
+ transaction_set = @parser.parse_file('samples/005010X231A1_02.edi')
53
53
 
54
54
  assert_equal '!', @parser.field_separator
55
55
  assert_equal '@', @parser.repetition_separator
@@ -60,7 +60,7 @@ class TestParser < MiniTest::Unit::TestCase
60
60
  end
61
61
 
62
62
  def test_adds_enveloping_to_transaction_set
63
- transaction_set = @parser.parse('samples/005010X231A1_01.edi').first
63
+ transaction_set = @parser.parse_file('samples/005010X231A1_01.edi').first
64
64
 
65
65
  assert_equal '445289179', transaction_set.ISA.ISA13
66
66
  assert_equal '1', transaction_set.GS.GS06
@@ -81,6 +81,20 @@ class TestParser < MiniTest::Unit::TestCase
81
81
  ts.SE
82
82
 
83
83
  # ST*Test~TSS*Blah*Bar1*Baz1~TSS*Blah*Bar2*Baz2~TSS*Blah*Bar3*Baz3~TSS*Blah*Bar4*Baz4~TSS*Blah*Bar5*Baz5~TCS*Blah**Preset Field 7~TSS*Last Standalone Segment*Boo~SE**Test
84
- assert_equal ts.values.inspect, @parser.parse_string(ts.to_s).first.values.inspect
84
+ assert_equal ts.values.to_s, @parser.parse_string(ts.to_s).first.values.to_s
85
+ end
86
+
87
+ def test_parses_partial_transaction_set
88
+ ts_01 = Hippo::TransactionSets::Test::Base.new
89
+ ts_01.L0002 do |l0002|
90
+ l0002.TCS.Field2 = 'SubBarBlah'
91
+ l0002.TSS.Field2 = 'SubBarRepeater'
92
+ end
93
+
94
+ # TCS*:SubBarBlah**Foo2~TSS*Last Segment*SubBarRepeater~
95
+ ts_02 = Hippo::TransactionSets::Test::L0002.new
96
+ ts_02.parse(ts_01.to_s)
97
+
98
+ assert_equal ts_01.L0002.values.to_s, ts_02.values.to_s
85
99
  end
86
100
  end
metadata CHANGED
@@ -1,46 +1,64 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: hippo
3
- version: !ruby/object:Gem::Version
4
- version: 0.0.12
3
+ version: !ruby/object:Gem::Version
4
+ hash: 27
5
5
  prerelease:
6
+ segments:
7
+ - 0
8
+ - 1
9
+ - 0
10
+ version: 0.1.0
6
11
  platform: ruby
7
- authors:
12
+ authors:
8
13
  - Robert Jackson
9
14
  - Jon Jackson
10
15
  autorequire:
11
16
  bindir: bin
12
17
  cert_chain: []
13
- date: 2011-12-22 00:00:00.000000000 Z
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
18
+
19
+ date: 2012-01-05 00:00:00 -05:00
20
+ default_executable:
21
+ dependencies:
22
+ - !ruby/object:Gem::Dependency
16
23
  name: minitest
17
- requirement: &70300927203040 !ruby/object:Gem::Requirement
24
+ prerelease: false
25
+ requirement: &id001 !ruby/object:Gem::Requirement
18
26
  none: false
19
- requirements:
20
- - - ! '>='
21
- - !ruby/object:Gem::Version
22
- version: '0'
27
+ requirements:
28
+ - - ">="
29
+ - !ruby/object:Gem::Version
30
+ hash: 3
31
+ segments:
32
+ - 0
33
+ version: "0"
23
34
  type: :development
24
- prerelease: false
25
- version_requirements: *70300927203040
26
- - !ruby/object:Gem::Dependency
35
+ version_requirements: *id001
36
+ - !ruby/object:Gem::Dependency
27
37
  name: rake
28
- requirement: &70300927202060 !ruby/object:Gem::Requirement
38
+ prerelease: false
39
+ requirement: &id002 !ruby/object:Gem::Requirement
29
40
  none: false
30
- requirements:
41
+ requirements:
31
42
  - - ~>
32
- - !ruby/object:Gem::Version
43
+ - !ruby/object:Gem::Version
44
+ hash: 63
45
+ segments:
46
+ - 0
47
+ - 9
48
+ - 2
33
49
  version: 0.9.2
34
50
  type: :development
35
- prerelease: false
36
- version_requirements: *70300927202060
51
+ version_requirements: *id002
37
52
  description: HIPAA Transaction Set Generator/Parser
38
- email:
53
+ email:
39
54
  - robertj@promedicalinc.com
40
55
  executables: []
56
+
41
57
  extensions: []
58
+
42
59
  extra_rdoc_files: []
43
- files:
60
+
61
+ files:
44
62
  - .gitignore
45
63
  - CHANGELOG
46
64
  - Gemfile
@@ -59,8 +77,13 @@ files:
59
77
  - lib/hippo/code_lists/taxonomy_codes.rb
60
78
  - lib/hippo/exceptions.rb
61
79
  - lib/hippo/field.rb
62
- - lib/hippo/loop.rb
80
+ - lib/hippo/outputters.rb
81
+ - lib/hippo/outputters/html.rb
82
+ - lib/hippo/outputters/paper_claim.rb
83
+ - lib/hippo/outputters/pdf.rb
63
84
  - lib/hippo/parser.rb
85
+ - lib/hippo/parser/segment.rb
86
+ - lib/hippo/parser/transaction_set.rb
64
87
  - lib/hippo/segments.rb
65
88
  - lib/hippo/segments/AK1.rb
66
89
  - lib/hippo/segments/AK2.rb
@@ -242,6 +265,7 @@ files:
242
265
  - lib/hippo/transaction_sets/base.rb
243
266
  - lib/hippo/transaction_sets/component.rb
244
267
  - lib/hippo/transaction_sets/repeating_component.rb
268
+ - lib/hippo/utilities.rb
245
269
  - lib/hippo/version.rb
246
270
  - samples/005010X221A1_business_scenario_1.edi
247
271
  - samples/005010X221A1_tmhp_example.edi
@@ -255,31 +279,41 @@ files:
255
279
  - test/test_parser.rb
256
280
  - test/test_segments_base.rb
257
281
  - test/test_transaction_sets_base.rb
282
+ has_rdoc: true
258
283
  homepage: http://github.com/promedical/hippo
259
284
  licenses: []
285
+
260
286
  post_install_message:
261
287
  rdoc_options: []
262
- require_paths:
288
+
289
+ require_paths:
263
290
  - lib
264
- required_ruby_version: !ruby/object:Gem::Requirement
291
+ required_ruby_version: !ruby/object:Gem::Requirement
265
292
  none: false
266
- requirements:
267
- - - ! '>='
268
- - !ruby/object:Gem::Version
269
- version: '0'
270
- required_rubygems_version: !ruby/object:Gem::Requirement
293
+ requirements:
294
+ - - ">="
295
+ - !ruby/object:Gem::Version
296
+ hash: 3
297
+ segments:
298
+ - 0
299
+ version: "0"
300
+ required_rubygems_version: !ruby/object:Gem::Requirement
271
301
  none: false
272
- requirements:
273
- - - ! '>='
274
- - !ruby/object:Gem::Version
275
- version: '0'
302
+ requirements:
303
+ - - ">="
304
+ - !ruby/object:Gem::Version
305
+ hash: 3
306
+ segments:
307
+ - 0
308
+ version: "0"
276
309
  requirements: []
310
+
277
311
  rubyforge_project: hippo
278
- rubygems_version: 1.8.11
312
+ rubygems_version: 1.6.2
279
313
  signing_key:
280
314
  specification_version: 3
281
315
  summary: HIPAA Transaction Set Generator/Parser
282
- test_files:
316
+ test_files:
283
317
  - test/test_helper.rb
284
318
  - test/test_hipaa_835.rb
285
319
  - test/test_hipaa_837.rb
data/lib/hippo/loop.rb DELETED
File without changes