rvista 0.6.2 → 0.6.3

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,7 @@
1
+ v0.6.3 (13th November 2009)
2
+ - Use correct vista date format (dd-mm-yy)
3
+ - return dates as ruby date objects
4
+
1
5
  v0.6.2 (19th August 2009)
2
6
  - don't barf on input files with quotes in them
3
7
 
data/Rakefile CHANGED
@@ -5,9 +5,10 @@ require 'rake/testtask'
5
5
  require "rake/gempackagetask"
6
6
  require "rubygems"
7
7
 
8
- PKG_VERSION = "0.6.2"
8
+ PKG_VERSION = "0.6.3"
9
9
  PKG_NAME = "rvista"
10
10
  PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}"
11
+ RUBY_FORGE_PROJECT = "rbook"
11
12
 
12
13
  CLEAN.include "**/.*.sw*"
13
14
 
@@ -53,6 +54,8 @@ spec = Gem::Specification.new do |spec|
53
54
  '--main' << 'README' << '-q'
54
55
  spec.author = "James Healy"
55
56
  spec.email = "jimmy@deefa.com"
57
+ spec.rubyforge_project = RUBY_FORGE_PROJECT
58
+ spec.add_dependency('chronic')
56
59
  spec.description = <<END_DESC
57
60
  rvista is a small library for reading Vista HDS order files.
58
61
  END_DESC
data/lib/rvista/po.rb CHANGED
@@ -6,9 +6,8 @@ module RVista
6
6
  class PO
7
7
 
8
8
  attr_accessor :sender_id, :receiver_id, :internal_control_number, :po_number
9
- attr_accessor :po_subset_code, :purpose_code, :purpose_desc, :date
10
- attr_accessor :myer_code, :supply_after, :supply_before, :advertised_date
11
- attr_accessor :department, :supplier_ref, :buying_location
9
+ attr_accessor :po_subset_code, :purpose_code, :purpose_desc
10
+ attr_accessor :myer_code, :department, :supplier_ref, :buying_location
12
11
  attr_accessor :buying_location_name, :delivery_location
13
12
  attr_accessor :delivery_location_name, :label_code
14
13
  attr_accessor :items
@@ -16,6 +15,10 @@ module RVista
16
15
  # creates a new RVista::PO object
17
16
  def initialize
18
17
  @items = []
18
+ @date = nil
19
+ @supply_before = nil
20
+ @supply_after = nil
21
+ @advertised_date = nil
19
22
  end
20
23
 
21
24
  # reads a vista text file into memory. input should be a string
@@ -33,6 +36,38 @@ module RVista
33
36
  return self.build_message(data)
34
37
  end
35
38
 
39
+ def date
40
+ vista_string_to_date(@date)
41
+ end
42
+
43
+ def date=(val)
44
+ @date = process_date(val)
45
+ end
46
+
47
+ def supply_after
48
+ vista_string_to_date(@supply_after)
49
+ end
50
+
51
+ def supply_after=(val)
52
+ @supply_after = process_date(val)
53
+ end
54
+
55
+ def supply_before
56
+ vista_string_to_date(@supply_before)
57
+ end
58
+
59
+ def supply_before=(val)
60
+ @supply_before = process_date(val)
61
+ end
62
+
63
+ def advertised_date
64
+ vista_string_to_date(@advertised_date)
65
+ end
66
+
67
+ def advertised_date=(val)
68
+ @advertised_date = process_date(val)
69
+ end
70
+
36
71
  # print a string representation of this order that meets the spec
37
72
  def to_s
38
73
  # message header
@@ -45,11 +80,11 @@ module RVista
45
80
  msg << "#{po_subset_code},"
46
81
  msg << "#{purpose_code},"
47
82
  msg << "#{purpose_desc},"
48
- msg << "#{date},"
83
+ msg << "#{@date},"
49
84
  msg << "#{myer_code},"
50
- msg << "#{supply_after},"
51
- msg << "#{supply_before},"
52
- msg << "#{advertised_date},"
85
+ msg << "#{@supply_after},"
86
+ msg << "#{@supply_before},"
87
+ msg << "#{@advertised_date},"
53
88
  msg << "#{department},"
54
89
  msg << "#{supplier_ref},"
55
90
  msg << "#{buying_location},"
@@ -64,7 +99,6 @@ module RVista
64
99
  # message summary
65
100
  msg << "S,#{@items.size.to_s},,\n"
66
101
 
67
-
68
102
  return msg
69
103
  end
70
104
 
@@ -110,6 +144,25 @@ module RVista
110
144
  # return the results
111
145
  return msg
112
146
  end
147
+
148
+ def vista_string_to_date(str)
149
+ if str.nil? || str.to_s[0,2] == "00" || str.to_s.size != 8
150
+ nil
151
+ else
152
+ year = "20#{str[6,2]}"
153
+ month = str[3,2]
154
+ day = str[0,2]
155
+ Chronic.parse("#{year}-#{month}-#{day}")
156
+ end
157
+ end
158
+
159
+ def process_date(value)
160
+ if value.respond_to?(:strftime)
161
+ value.strftime("%d-%m-%y")
162
+ else
163
+ value
164
+ end
165
+ end
113
166
  end
114
167
 
115
168
  class Message < PO
data/lib/rvista.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  # coding: utf-8
2
2
 
3
- require 'rubygems'
3
+ require 'chronic'
4
4
 
5
5
  # faster csv is distributed with ruby 1.9 as "CSV", so we only
6
6
  # need to load the gem on ruby < 1.9
@@ -1,4 +1,4 @@
1
- H,1111111,2222222,,0000009525908,,00,,060915,,000000,000000,,,,,,1111111,,
1
+ H,1111111,2222222,,0000009525908,,00,,15-09-06,,000000,000000,,,,,,1111111,,
2
2
  D,1,IB,0701180358,DIGGING TO AMERICA,3,0.00,EA,,,43,Y,,
3
3
  D,2,IB,071267344X,THE LAST ENEMY,3,0.00,EA,,,43,Y,,
4
4
  D,3,IB,1841593001,COLLECTED STORIES: DAHL,2,0.00,EA,,,43,Y,,
@@ -79,10 +79,10 @@ class POTest < Test::Unit::TestCase
79
79
  assert_equal msg.po_subset_code, nil
80
80
  assert_equal msg.purpose_code, "00"
81
81
  assert_equal msg.purpose_desc, nil
82
- assert_equal msg.date, "060915"
82
+ assert_equal msg.date, Chronic.parse("2006-09-15")
83
83
  assert_equal msg.myer_code, nil
84
- assert_equal msg.supply_after, "000000"
85
- assert_equal msg.supply_before, "000000"
84
+ assert_equal msg.supply_after, nil
85
+ assert_equal msg.supply_before, nil
86
86
  assert_equal msg.advertised_date, nil
87
87
  assert_equal msg.department, nil
88
88
  assert_equal msg.supplier_ref, nil
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.2
4
+ version: 0.6.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Healy
@@ -9,10 +9,19 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-08-19 00:00:00 +10:00
12
+ date: 2009-11-13 00:00:00 +11:00
13
13
  default_executable:
14
- dependencies: []
15
-
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: chronic
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: "0"
24
+ version:
16
25
  description: " rvista is a small library for reading Vista HDS order files.\n"
17
26
  email: jimmy@deefa.com
18
27
  executables: []
@@ -28,32 +37,32 @@ files:
28
37
  - lib/rvista.rb
29
38
  - lib/rvista/errors.rb
30
39
  - lib/rvista/invoice.rb
31
- - lib/rvista/invoice_line_item.rb
40
+ - lib/rvista/poa_line_item.rb
32
41
  - lib/rvista/po.rb
33
- - lib/rvista/po_line_item.rb
42
+ - lib/rvista/invoice_line_item.rb
34
43
  - lib/rvista/poa.rb
35
- - lib/rvista/poa_line_item.rb
36
- - test/data/invoice/invalid_line.txt
37
- - test/data/invoice/invalid_missing_footer.txt
38
- - test/data/invoice/invalid_missing_header.txt
39
- - test/data/invoice/valid.txt
40
- - test/data/po/invalid_line.txt
41
- - test/data/po/invalid_missing_footer.txt
42
- - test/data/po/invalid_missing_header.txt
43
- - test/data/po/no_delivery_location.txt
44
- - test/data/po/seperate_delivery_location.txt
45
- - test/data/po/valid.txt
46
- - test/data/po/quotes.txt
44
+ - lib/rvista/po_line_item.rb
47
45
  - test/data/poa/invalid_line.txt
48
- - test/data/poa/invalid_missing_footer.txt
49
- - test/data/poa/invalid_missing_header.txt
50
46
  - test/data/poa/valid.txt
51
- - test/unit/invoice_line_item_test.rb
52
- - test/unit/invoice_test.rb
53
- - test/unit/line_item_test.rb
54
- - test/unit/message_test.rb
47
+ - test/data/poa/invalid_missing_header.txt
48
+ - test/data/poa/invalid_missing_footer.txt
49
+ - test/data/po/no_delivery_location.txt
50
+ - test/data/po/quotes.txt
51
+ - test/data/po/invalid_line.txt
52
+ - test/data/po/valid.txt
53
+ - test/data/po/seperate_delivery_location.txt
54
+ - test/data/po/invalid_missing_header.txt
55
+ - test/data/po/invalid_missing_footer.txt
56
+ - test/data/invoice/invalid_line.txt
57
+ - test/data/invoice/valid.txt
58
+ - test/data/invoice/invalid_missing_header.txt
59
+ - test/data/invoice/invalid_missing_footer.txt
55
60
  - test/unit/poa_line_item_test.rb
56
61
  - test/unit/poa_test.rb
62
+ - test/unit/message_test.rb
63
+ - test/unit/line_item_test.rb
64
+ - test/unit/invoice_line_item_test.rb
65
+ - test/unit/invoice_test.rb
57
66
  - Rakefile
58
67
  - README
59
68
  - COPYING
@@ -86,8 +95,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
86
95
  version:
87
96
  requirements: []
88
97
 
89
- rubyforge_project:
90
- rubygems_version: 1.3.4
98
+ rubyforge_project: rbook
99
+ rubygems_version: 1.3.5
91
100
  signing_key:
92
101
  specification_version: 3
93
102
  summary: A small library for reading Vista HDS ecommerce files