rvista 0.6.2 → 0.6.3

Sign up to get free protection for your applications and to get access to all the features.
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