iso8583 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
data/AUTHORS CHANGED
@@ -1,2 +1,3 @@
1
1
  Tim Becker (tim@kuriositaet.de)
2
2
  Slava Kravchenko (cordawyn@gmail.com)
3
+ Tonni Aagesen (https://github.com/ta)
data/README CHANGED
@@ -1,4 +1,3 @@
1
-
2
1
  = ISO 8583 Financial Messaging for Ruby
3
2
 
4
3
  This package currently contains code for coding an decoding ISO 8583
@@ -18,7 +17,7 @@ You can install the +iso8583+ package by executing:
18
17
 
19
18
  == Source
20
19
 
21
- The source is most readily available on github[http://github.com/cordawyn/8583].
20
+ The source is most readily available on github[http://github.com/a2800276/8583].
22
21
 
23
22
  == Mailing List
24
23
 
data/Rakefile CHANGED
@@ -1,5 +1,5 @@
1
- require "rake/rdoctask"
2
- require "rake/gempackagetask"
1
+ require "rdoc/task"
2
+ require "rubygems/package_task"
3
3
  require "rake/testtask"
4
4
  require "rake/clean"
5
5
  require "rubygems"
@@ -9,7 +9,7 @@ require "rubygems"
9
9
 
10
10
  SHORTNAME = "iso8583" # this should be the rubyforge project name
11
11
  DESC = "Ruby implementation of ISO 8583 financial messaging"
12
- PKG_VERSION = "0.1.3"
12
+ PKG_VERSION = "0.1.4"
13
13
  LONG_DESC = <<END_DESC
14
14
  Ruby implementation of ISO 8583 financial messaging
15
15
  END_DESC
@@ -88,7 +88,7 @@ end
88
88
 
89
89
  # Adding a new GemPackageTask adds a task named `package`, which generates
90
90
  # packages as gems, tarball and zip archives.
91
- Rake::GemPackageTask.new(spec) do |pkg|
91
+ Gem::PackageTask.new(spec) do |pkg|
92
92
  pkg.need_zip = true
93
93
  pkg.need_tar_gz = true
94
94
  end
@@ -120,7 +120,7 @@ end
120
120
 
121
121
  Rake::TestTask.new do |t|
122
122
  t.libs << "test"
123
- t.libs << "lib"
123
+ t.libs << "."
124
124
  t.ruby_opts = ["-rubygems"]
125
125
  t.test_files = FileList["test/*.rb"]
126
126
  t.verbose = true
data/lib/8583.rb CHANGED
@@ -1,12 +1,5 @@
1
1
  $:.unshift(File.dirname(__FILE__)) unless
2
2
  $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
3
3
 
4
- module ISO8583
5
- require "8583/field"
6
- require "8583/codec"
7
- require "8583/fields"
8
- require "8583/exception"
9
- require "8583/bitmap"
10
- require "8583/message"
11
- require "8583/util"
12
- end
4
+ # DEPRECATED
5
+ require 'iso8583'
data/lib/iso8583.rb CHANGED
@@ -1,5 +1,12 @@
1
1
  $:.unshift(File.dirname(__FILE__)) unless
2
2
  $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
3
3
 
4
-
5
- require '8583'
4
+ module ISO8583
5
+ require "iso8583/field"
6
+ require "iso8583/codec"
7
+ require "iso8583/fields"
8
+ require "iso8583/exception"
9
+ require "iso8583/bitmap"
10
+ require "iso8583/message"
11
+ require "iso8583/util"
12
+ end
File without changes
File without changes
@@ -45,6 +45,8 @@ module ISO8583
45
45
  # [+ASCII_Number+] encodes either a Number or String representation of
46
46
  # a number to the ASCII represenation of the number,
47
47
  # decodes ASCII numerals to a number
48
+ # [+A_Codec+] passes through ASCII string checking they conform to [A-Za-z]
49
+ # during encoding, no validity check during decoding.
48
50
  # [+AN_Codec+] passes through ASCII string checking they conform to [A-Za-z0-9]
49
51
  # during encoding, no validity check during decoding.
50
52
  # [+ANP_Codec+] passes through ASCII string checking they conform to [A-Za-z0-9 ]
@@ -109,6 +111,13 @@ module ISO8583
109
111
  d = encoded.unpack("H*")[0].to_i
110
112
  }
111
113
 
114
+ A_Codec = Codec.new
115
+ A_Codec.encoder = lambda{|str|
116
+ raise ISO8583Exception.new("Invalid value: #{str} must be [A-Za-z]") unless str =~ /^[A-Za-z]*$/
117
+ str
118
+ }
119
+ A_Codec.decoder = PASS_THROUGH_DECODER
120
+
112
121
  AN_Codec = Codec.new
113
122
  AN_Codec.encoder = lambda{|str|
114
123
  raise ISO8583Exception.new("Invalid value: #{str} must be [A-Za-y0-9]") unless str =~ /^[A-Za-z0-9]*$/
File without changes
File without changes
@@ -20,10 +20,13 @@ module ISO8583
20
20
  # [+LLVAR_N+] two byte variable length ASCII numeral, payload ASCII numerals
21
21
  # [+LLLVAR_N+] three byte variable length ASCII numeral, payload ASCII numerals
22
22
  # [+LLVAR_Z+] two byte variable length ASCII numeral, payload Track2 data
23
+ # [+LLVAR_AN+] two byte variable length ASCII numeral, payload ASCII
23
24
  # [+LLVAR_ANS+] two byte variable length ASCII numeral, payload ASCII+special
25
+ # [+LLLVAR_AN+] three byte variable length ASCII numeral, payload ASCII
24
26
  # [+LLLVAR_ANS+] three byte variable length ASCII numeral, payload ASCII+special
25
27
  # [+LLVAR_B+] Two byte variable length binary payload
26
28
  # [+LLLVAR_B+] Three byte variable length binary payload
29
+ # [+A+] fixed length letters, represented in ASCII
27
30
  # [+N+] fixed lengh numerals, repesented in ASCII, padding right justified using zeros
28
31
  # [+AN+] fixed lengh ASCII [A-Za-z0-9], padding left justified using spaces.
29
32
  # [+ANP+] fixed lengh ASCII [A-Za-z0-9] and space, padding left, spaces
@@ -70,11 +73,21 @@ module ISO8583
70
73
  LLVAR_Z.length = LL
71
74
  LLVAR_Z.codec = Track2
72
75
 
76
+ # Two byte variable length ASCII numeral, payload ASCII, fixed length, zeropadded (right)
77
+ LLVAR_AN = Field.new
78
+ LLVAR_AN.length = LL
79
+ LLVAR_AN.codec = AN_Codec
80
+
73
81
  # Two byte variable length ASCII numeral, payload ASCII+special
74
82
  LLVAR_ANS = Field.new
75
83
  LLVAR_ANS.length = LL
76
84
  LLVAR_ANS.codec = ANS_Codec
77
85
 
86
+ # Three byte variable length ASCII numeral, payload ASCII, fixed length, zeropadded (right)
87
+ LLLVAR_AN = Field.new
88
+ LLLVAR_AN.length = LLL
89
+ LLLVAR_AN.codec = AN_Codec
90
+
78
91
  # Three byte variable length ASCII numeral, payload ASCII+special
79
92
  LLLVAR_ANS = Field.new
80
93
  LLLVAR_ANS.length = LLL
@@ -105,6 +118,10 @@ module ISO8583
105
118
  sprintf "%-#{len}s", val
106
119
  }
107
120
 
121
+ # Fixed length ASCII letters [A-Za-z]
122
+ A = Field.new
123
+ A.codec = A_Codec
124
+
108
125
  # Fixed lengh ASCII [A-Za-z0-9], padding left justified using spaces.
109
126
  AN = Field.new
110
127
  AN.codec = AN_Codec
File without changes
File without changes
@@ -0,0 +1,4 @@
1
+ # -*- mode: ruby; encoding: utf-8; tab-width: 2; indent-tabs-mode: nil -*-
2
+ module ISO8583
3
+ VERSION = "0.1.3"
4
+ end
data/test/message_test.rb CHANGED
@@ -1,5 +1,5 @@
1
- require 'lib/8583'
2
- require 'lib/8583/berlin'
1
+ require 'lib/iso8583'
2
+ require 'lib/iso8583/berlin'
3
3
  require 'test/unit'
4
4
 
5
5
  include ISO8583
data/test/test_codec.rb CHANGED
@@ -62,6 +62,14 @@ class FieldTest < Test::Unit::TestCase
62
62
  assert_equal "0912", YYMMCodec.encode("0912")
63
63
  end
64
64
 
65
+ def test_A_Codec
66
+ assert_raise(ISO8583Exception) {
67
+ dt = A_Codec.encode "!!!"
68
+ }
69
+ assert_equal "bla", AN_Codec.encode("bla")
70
+ assert_equal "bla", AN_Codec.decode("bla")
71
+ end
72
+
65
73
  def test_AN_Codec
66
74
  assert_raise(ISO8583Exception) {
67
75
  dt = AN_Codec.encode "!!!"
data/test/test_fields.rb CHANGED
@@ -41,6 +41,39 @@ class FieldTest < Test::Unit::TestCase
41
41
  assert_equal "3456", rest
42
42
  end
43
43
 
44
+ def test_LLVAR_AN
45
+ value, rest = LLVAR_AN.parse "03123ABC"
46
+ assert_equal "123", value
47
+ assert_equal "ABC", rest
48
+
49
+ value, rest = LLLVAR_AN.parse "006123ABC"
50
+ assert_equal "123ABC", value
51
+ assert_equal "", rest
52
+ assert_raise(ISO8583ParseException) {
53
+ l,rest = LLLVAR_AN.parse "12"
54
+ }
55
+ assert_raise(ISO8583ParseException) {
56
+ l,rest = LLVAR_AN.parse "12123"
57
+ }
58
+
59
+ enc = LLVAR_AN.encode "123A"
60
+ assert_equal "04123A", enc
61
+
62
+ enc = LLVAR_AN.encode "123ABC123ABC"
63
+ assert_equal "12123ABC123ABC", enc
64
+
65
+ assert_raise(ISO8583Exception) {
66
+ enc = LLVAR_AN.encode "1234 ABCD"
67
+ }
68
+
69
+ enc = LLLVAR_AN.encode "123ABC123ABC"
70
+ assert_equal "012123ABC123ABC", enc
71
+
72
+ assert_raise(ISO8583Exception) {
73
+ enc = LLLVAR_AN.encode "1234 ABCD"
74
+ }
75
+ end
76
+
44
77
  def test_LLVAR_N
45
78
  value, rest = LLVAR_N.parse "021234"
46
79
  assert_equal 12, value
@@ -98,6 +131,22 @@ class FieldTest < Test::Unit::TestCase
98
131
  }
99
132
  end
100
133
 
134
+ def test_A
135
+ fld = A.dup
136
+ fld.length = 3
137
+ value, rest = fld.parse "abcd"
138
+ assert_equal "abc", value
139
+ assert_equal "d", rest
140
+
141
+ assert_raise(ISO8583ParseException) {
142
+ fld.parse "ab"
143
+ }
144
+
145
+ assert_raise(ISO8583Exception) {
146
+ fld.encode "abcdef"
147
+ }
148
+ end
149
+
101
150
  def test_AN
102
151
  fld = AN.dup
103
152
  fld.length = 3
@@ -1,5 +1,5 @@
1
- require 'lib/8583'
2
- require 'lib/8583/berlin'
1
+ require 'lib/iso8583'
2
+ require 'lib/iso8583/berlin'
3
3
  require 'test/unit'
4
4
 
5
5
  include ISO8583
metadata CHANGED
@@ -1,7 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: iso8583
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 1
8
+ - 4
9
+ version: 0.1.4
5
10
  platform: ruby
6
11
  authors:
7
12
  - Tim Becker
@@ -10,7 +15,7 @@ autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
17
 
13
- date: 2010-09-29 00:00:00 +02:00
18
+ date: 2012-10-30 00:00:00 +01:00
14
19
  default_executable:
15
20
  dependencies: []
16
21
 
@@ -27,21 +32,22 @@ extensions: []
27
32
  extra_rdoc_files: []
28
33
 
29
34
  files:
30
- - lib/8583/berlin.rb
31
- - lib/8583/bitmap.rb
32
- - lib/8583/codec.rb
33
- - lib/8583/exception.rb
34
- - lib/8583/field.rb
35
- - lib/8583/fields.rb
36
- - lib/8583/message.rb
37
- - lib/8583/util.rb
38
35
  - lib/8583.rb
36
+ - lib/iso8583/berlin.rb
37
+ - lib/iso8583/bitmap.rb
38
+ - lib/iso8583/codec.rb
39
+ - lib/iso8583/exception.rb
40
+ - lib/iso8583/field.rb
41
+ - lib/iso8583/fields.rb
42
+ - lib/iso8583/message.rb
43
+ - lib/iso8583/util.rb
44
+ - lib/iso8583/version.rb
39
45
  - lib/iso8583.rb
40
46
  - AUTHORS
41
47
  - CHANGELOG
42
48
  - LICENSE
43
- - Rakefile
44
49
  - README
50
+ - Rakefile
45
51
  - TODO
46
52
  - test/BitmapTests.rb
47
53
  - test/message_test.rb
@@ -62,18 +68,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
62
68
  requirements:
63
69
  - - ">="
64
70
  - !ruby/object:Gem::Version
71
+ segments:
72
+ - 0
65
73
  version: "0"
66
- version:
67
74
  required_rubygems_version: !ruby/object:Gem::Requirement
68
75
  requirements:
69
76
  - - ">="
70
77
  - !ruby/object:Gem::Version
78
+ segments:
79
+ - 0
71
80
  version: "0"
72
- version:
73
81
  requirements:
74
82
  - none
75
83
  rubyforge_project: iso8583
76
- rubygems_version: 1.3.5
84
+ rubygems_version: 1.3.6
77
85
  signing_key:
78
86
  specification_version: 3
79
87
  summary: "iso8583: Ruby implementation of ISO 8583 financial messaging"