hippo 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG CHANGED
@@ -1,3 +1,6 @@
1
+ 0.2.1 - 2012/01/21
2
+ * Fix issue preventing fixed width segments from printing
3
+ properly. (Non set fields on ISA were empty not padded.)
1
4
  0.2.0 - 2012/01/21
2
5
  * Updated segment definitions to differentiate between
3
6
  Integer and Decimal.
data/lib/hippo/field.rb CHANGED
@@ -21,24 +21,31 @@ module Hippo
21
21
  when :decimal then BigDecimal.new(value.to_s)
22
22
  when :date then parse_date(value)
23
23
  when :time then parse_time(value)
24
- else value.to_s
24
+ else value.to_s.strip
25
25
  end
26
26
  end
27
27
 
28
28
  def string_value(value)
29
- return '' if value.nil? || value == ''
29
+ return '' if value.nil? && !required
30
30
 
31
31
  case datatype
32
32
  when :binary then value
33
33
  when :integer then value.to_s.rjust(minimum, '0')
34
- when :decimal then value.to_s('F').sub(/\.0\z/,'').rjust(minimum, '0')
34
+ when :decimal then
35
+ value ||= BigDecimal.new('0')
36
+
37
+ value.to_s('F').sub(/\.0\z/,'').rjust(minimum, '0')
35
38
  when :date
39
+ value ||= Date.today
40
+
36
41
  if maximum == 6
37
42
  value.strftime('%y%m%d')
38
43
  else
39
44
  value.strftime('%Y%m%d')
40
45
  end
41
46
  when :time
47
+ value ||= Time.now
48
+
42
49
  if maximum == 4 || value.sec == 0
43
50
  value.strftime('%H%M')
44
51
  else
@@ -25,6 +25,7 @@ module Hippo::Segments
25
25
  f.maximum = field[:maximum]
26
26
  f.options = field[:options]
27
27
  f.restrictions = field[:restrictions]
28
+ f.required = field[:required] || false
28
29
  f.separator = field[:separator] || @default_separator || :field_separator
29
30
 
30
31
  if @composite_block
data/lib/hippo/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Hippo
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.1"
3
3
  end
@@ -152,4 +152,27 @@ class TestSegmentsBase < MiniTest::Unit::TestCase
152
152
 
153
153
  assert_equal 'TSS*******20120121*231101*2*123.45~', seg.to_s
154
154
  end
155
+
156
+ def test_fixed_width_segment
157
+ isa = Hippo::Segments::ISA.new
158
+
159
+ assert_equal "ISA* *#{' ' * 10}* *#{' ' * 10}* *#{' ' * 15}* *#{' ' * 15}*#{Date.today.strftime('%y%m%d')}*#{Time.now.strftime('%H%M')}* * *#{'0' * 9}* * * ~", isa.to_s
160
+
161
+ isa.AuthorizationInformationQualifier = '00'
162
+ isa.SecurityInformationQualifier = '00'
163
+ isa.InterchangeIdQualifier_01 = 'ZZ'
164
+ isa.InterchangeSenderId = '593208085'
165
+ isa.InterchangeIdQualifier_02 = 'ZZ'
166
+ isa.InterchangeReceiverId = 'OVERRIDE'
167
+ isa.InterchangeDate = Time.now
168
+ isa.InterchangeTime = Time.now
169
+ isa.RepetitionSeparator = Hippo::DEFAULT_REPETITION_SEPARATOR
170
+ isa.InterchangeControlVersionNumber = '00501'
171
+ isa.InterchangeControlNumber = 12345
172
+ isa.AcknowledgmentRequested = '1'
173
+ isa.InterchangeUsageIndicator = 'T'
174
+ isa.ComponentElementSeparator = Hippo::DEFAULT_COMPOSITE_SEPARATOR
175
+
176
+ assert_equal "ISA*00* *00* *ZZ*593208085 *ZZ*OVERRIDE *#{Date.today.strftime('%y%m%d')}*#{Time.now.strftime('%H%M')}*^*00501*000012345*1*T*:~", isa.to_s
177
+ end
155
178
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hippo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -14,7 +14,7 @@ date: 2012-01-21 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: minitest
17
- requirement: &70280435942560 !ruby/object:Gem::Requirement
17
+ requirement: &70214345868980 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: '0'
23
23
  type: :development
24
24
  prerelease: false
25
- version_requirements: *70280435942560
25
+ version_requirements: *70214345868980
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: rake
28
- requirement: &70280435942060 !ruby/object:Gem::Requirement
28
+ requirement: &70214345868480 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ~>
@@ -33,7 +33,7 @@ dependencies:
33
33
  version: 0.9.2
34
34
  type: :development
35
35
  prerelease: false
36
- version_requirements: *70280435942060
36
+ version_requirements: *70214345868480
37
37
  description: HIPAA Transaction Set Generator/Parser
38
38
  email:
39
39
  - robertj@promedicalinc.com