rvista 0.6.1 → 0.6.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/CHANGELOG CHANGED
@@ -1,3 +1,6 @@
1
+ v0.6.2 (19th August 2009)
2
+ - don't barf on input files with quotes in them
3
+
1
4
  v0.6.1 (17th June 2009)
2
5
  - improve return values from RVista::POALineItem#status_text
3
6
 
data/Rakefile CHANGED
@@ -5,7 +5,7 @@ require 'rake/testtask'
5
5
  require "rake/gempackagetask"
6
6
  require "rubygems"
7
7
 
8
- PKG_VERSION = "0.6.1"
8
+ PKG_VERSION = "0.6.2"
9
9
  PKG_NAME = "rvista"
10
10
  PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}"
11
11
 
@@ -19,14 +19,14 @@ module RVista
19
19
  # that specifies the file path
20
20
  def self.load_from_file(input)
21
21
  raise InvalidFileError, 'Invalid file' unless File.exist?(input)
22
- data = FasterCSV.read(input)
22
+ data = FasterCSV.read(input, :quote_char => "`")
23
23
  return self.build_message(data)
24
24
  end
25
25
 
26
26
  # creates a RVista::Invoice object from a string. Input should
27
27
  # be a complete vista file as a string
28
28
  def self.load_from_string(input)
29
- data = FasterCSV.parse(input)
29
+ data = FasterCSV.parse(input, :quote_char => "`")
30
30
  return self.build_message(data)
31
31
  end
32
32
 
data/lib/rvista/po.rb CHANGED
@@ -22,14 +22,14 @@ module RVista
22
22
  # that specifies the file path
23
23
  def self.load_from_file(input)
24
24
  raise InvalidFileError, 'Invalid file' unless File.exist?(input)
25
- data = FasterCSV.read(input)
25
+ data = FasterCSV.read(input, :quote_char => "`")
26
26
  return self.build_message(data)
27
27
  end
28
28
 
29
29
  # creates a RVista::Message object from a string. Input should
30
30
  # be a complete vista file as a string
31
31
  def self.load_from_string(input)
32
- data = FasterCSV.parse(input)
32
+ data = FasterCSV.parse(input, :quote_char => "`")
33
33
  return self.build_message(data)
34
34
  end
35
35
 
data/lib/rvista/poa.rb CHANGED
@@ -19,14 +19,14 @@ module RVista
19
19
  # that specifies the file path
20
20
  def self.load_from_file(input)
21
21
  raise InvalidFileError, 'Invalid file' unless File.exist?(input)
22
- data = FasterCSV.read(input)
22
+ data = FasterCSV.read(input, :quote_char => "`")
23
23
  return self.build_message(data)
24
24
  end
25
25
 
26
26
  # creates a RVista::POA object from a string. Input should
27
27
  # be a complete vista file as a string
28
28
  def self.load_from_string(input)
29
- data = FasterCSV.parse(input)
29
+ data = FasterCSV.parse(input, :quote_char => "`")
30
30
  return self.build_message(data)
31
31
  end
32
32
 
@@ -0,0 +1,13 @@
1
+ H,9027378,9013725,,16742,,00,,090819,,000000,000000,,,,,,9027378,,,
2
+ D,1,EN,9780486264035,Little Zoo Animals Coloring Bo,1,0.00,EA,,,40000,Y,,
3
+ D,2,EN,9780517228678,Vampire Stories,1,0.00,EA,,,40000,Y,,
4
+ D,3,EN,9780566087721,Project Management : 9Th Editi,1,0.00,EA,,,40000,Y,,
5
+ D,4,EN,9780566087981,Understanding and Managing Ris,1,0.00,EA,,,40000,Y,,
6
+ D,5,EN,9780754645986,Safety at the Sharp End : Trai,1,0.00,EA,,,40000,Y,,
7
+ D,6,EN,9780754651772,After Sibelius : Studies in Fi,1,0.00,EA,,,40000,Y,,
8
+ D,7,EN,9780754658115,The Counts of Laval : Culture ,1,0.00,EA,,,40000,Y,,
9
+ D,8,EN,9780827230262,Unveiling the Secret Life of B,1,0.00,EA,,,40000,Y,,
10
+ D,9,EN,9781426700187,Noah's Very Big Boat,1,0.00,EA,,,40000,Y,,
11
+ D,10,EN,9781426700231,The Cool Cat: A Modern "Tail",1,0.00,EA,,,40000,Y,,
12
+ D,11,EN,9781921421259,The Climate Caper,4,0.00,EA,,,40000,Y,,
13
+ S,11,,
@@ -6,6 +6,7 @@ require 'rvista'
6
6
  class POTest < Test::Unit::TestCase
7
7
 
8
8
  VALID = File.dirname(__FILE__) + "/../data/po/valid.txt"
9
+ VALID_QUOTES = File.dirname(__FILE__) + "/../data/po/quotes.txt"
9
10
  INVALID_MISSING_HEADER = File.dirname(__FILE__) + "/../data/po/invalid_missing_header.txt"
10
11
  INVALID_MISSING_FOOTER = File.dirname(__FILE__) + "/../data/po/invalid_missing_footer.txt"
11
12
  INVALID_LINE = File.dirname(__FILE__) + "/../data/po/invalid_line.txt"
@@ -18,7 +19,6 @@ class POTest < Test::Unit::TestCase
18
19
  assert_equal msg.items.size, 38
19
20
 
20
21
  validate_msg(msg)
21
-
22
22
  end
23
23
 
24
24
  # ensure the load_from_file method works as expected
@@ -26,14 +26,23 @@ class POTest < Test::Unit::TestCase
26
26
  msg = RVista::PO.load_from_string(File.read(VALID))
27
27
  assert_kind_of RVista::PO, msg
28
28
  assert_equal msg.items.size, 38
29
-
29
+
30
30
  validate_msg(msg)
31
31
  end
32
32
 
33
+ # ensure files that (probably incorrectly) contain quotes can be
34
+ # parsed.
35
+ #
36
+ def test_files_with_quotes
37
+ msg = RVista::PO.load_from_string(File.read(VALID_QUOTES))
38
+ assert_kind_of RVista::PO, msg
39
+ assert_equal msg.items.size, 11
40
+ end
41
+
33
42
  # ensure the load_from_file method throws the correct exceptions
34
43
  # when it encounters a problem
35
44
  def test_product_validation
36
-
45
+
37
46
  assert_raise(RVista::InvalidFileError) {
38
47
  msg = RVista::PO.load_from_file(INVALID_MISSING_HEADER)
39
48
  }
@@ -41,7 +50,7 @@ class POTest < Test::Unit::TestCase
41
50
  assert_raise(RVista::InvalidFileError) {
42
51
  msg = RVista::PO.load_from_file(INVALID_MISSING_FOOTER)
43
52
  }
44
-
53
+
45
54
  assert_raise(RVista::InvalidLineItemError) {
46
55
  msg = RVista::PO.load_from_file(INVALID_LINE)
47
56
  }
@@ -63,7 +63,7 @@ class POALineItemTest < Test::Unit::TestCase
63
63
 
64
64
  def test_status_text
65
65
  item = RVista::POALineItem.load_from_array(@row)
66
- assert_equal item.status_text, "Shipped as ordered"
66
+ assert_equal "Accepted: Title Shipped As Ordered", item.status_text
67
67
  end
68
68
 
69
69
  def test_to_s
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rvista
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.1
4
+ version: 0.6.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Healy
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-06-17 00:00:00 +10:00
12
+ date: 2009-08-19 00:00:00 +10:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
@@ -43,6 +43,7 @@ files:
43
43
  - test/data/po/no_delivery_location.txt
44
44
  - test/data/po/seperate_delivery_location.txt
45
45
  - test/data/po/valid.txt
46
+ - test/data/po/quotes.txt
46
47
  - test/data/poa/invalid_line.txt
47
48
  - test/data/poa/invalid_missing_footer.txt
48
49
  - test/data/poa/invalid_missing_header.txt