hippo 0.2.0 → 0.2.1

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/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