ecometry 0.0.0
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/.document +5 -0
- data/Gemfile +14 -0
- data/LICENSE.txt +20 -0
- data/README.rdoc +9 -0
- data/Rakefile +44 -0
- data/VERSION +1 -0
- data/ecometry.gemspec +62 -0
- data/lib/ecometry.rb +94 -0
- data/lib/layout.rb +2374 -0
- data/test/helper.rb +15 -0
- data/test/test_ecometry.rb +143 -0
- metadata +116 -0
data/test/helper.rb
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'bundler'
|
3
|
+
begin
|
4
|
+
Bundler.setup(:default, :development)
|
5
|
+
rescue Bundler::BundlerError => e
|
6
|
+
$stderr.puts e.message
|
7
|
+
$stderr.puts "Run `bundle install` to install missing gems"
|
8
|
+
exit e.status_code
|
9
|
+
end
|
10
|
+
require 'minitest/spec'
|
11
|
+
require 'minitest/autorun'
|
12
|
+
|
13
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
14
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
15
|
+
require 'ecometry'
|
@@ -0,0 +1,143 @@
|
|
1
|
+
#require 'helper'
|
2
|
+
|
3
|
+
require 'minitest/spec'
|
4
|
+
require 'minitest/autorun'
|
5
|
+
|
6
|
+
require_relative '../lib/ecometry'
|
7
|
+
|
8
|
+
#
|
9
|
+
# NOTE
|
10
|
+
# contain sub fields
|
11
|
+
# tf17_coupon_info, tf18_gift_cert_info
|
12
|
+
#
|
13
|
+
|
14
|
+
describe Ecometry do
|
15
|
+
before do
|
16
|
+
@ecometry = Ecometry.new
|
17
|
+
@record = (1..320).map{' '}.join
|
18
|
+
end
|
19
|
+
|
20
|
+
describe "format serializer" do
|
21
|
+
it "understands X(n)" do
|
22
|
+
format = @ecometry.format_factory "X(4)"
|
23
|
+
format.must_equal( { :justified => :left, :filler => ' ', :width => 4 })
|
24
|
+
end
|
25
|
+
|
26
|
+
it "understands 9(n)" do
|
27
|
+
format = @ecometry.format_factory "9(4)"
|
28
|
+
format.must_equal( { :justified => :right, :filler => '0', :width => 4 })
|
29
|
+
end
|
30
|
+
|
31
|
+
it "understands 9(n)v9(n)" do
|
32
|
+
format = @ecometry.format_factory "9(4)v9(2)"
|
33
|
+
format.must_equal( { :justified => :right, :filler => '0', :width => 6 })
|
34
|
+
end
|
35
|
+
|
36
|
+
it "understands 9(n)v99" do
|
37
|
+
format = @ecometry.format_factory "9(5)v99"
|
38
|
+
format.must_equal( { :justified => :right, :filler => '0', :width => 6 })
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
it "converts" do
|
43
|
+
@ecometry.to_tapemacs( :tf00_record_type => '00' ).must_equal "00"
|
44
|
+
|
45
|
+
@ecometry.to_tapemacs( :tf00_batch_date => '041212' ).must_equal "041212"
|
46
|
+
|
47
|
+
@ecometry.to_tapemacs( :tf00_batch_number => '2' ).must_equal "00000002"
|
48
|
+
end
|
49
|
+
|
50
|
+
it "inserts a field into it's place in a record" do
|
51
|
+
fields = {
|
52
|
+
:tf00_record_type => '00',
|
53
|
+
:tf00_batch_number => '2'
|
54
|
+
}
|
55
|
+
|
56
|
+
result = @ecometry.insert fields, @record
|
57
|
+
result.must_equal "00 00000002 "
|
58
|
+
|
59
|
+
end
|
60
|
+
|
61
|
+
it "converts Record Type 00 (Batch Heder)" do
|
62
|
+
batch_header = {
|
63
|
+
:tf00_record_type => '00',
|
64
|
+
:tf00_batch_date => '040912',
|
65
|
+
:tf00_batch_number => '12345678',
|
66
|
+
:tf00_record_count => '5',
|
67
|
+
:tf00_club_order_type => '?',
|
68
|
+
}
|
69
|
+
|
70
|
+
result = @ecometry.insert batch_header, @record
|
71
|
+
result.must_equal "000409121234567800000005? "
|
72
|
+
end
|
73
|
+
|
74
|
+
it "converts Record Type 10" do
|
75
|
+
fields = {
|
76
|
+
:tf10_rec_type => '10',
|
77
|
+
:tf10_order_no => '2030919',
|
78
|
+
:tf10_source_offer => '188732',
|
79
|
+
:tf10_mail_date => '03/21/11',
|
80
|
+
:tf10_pay_method => 'MC',
|
81
|
+
:tf10_fname => 'THOMAS',
|
82
|
+
:tf10_lname => 'HOLTZ',
|
83
|
+
:tf10_street => '17130 RIDGE CANYON DR.',
|
84
|
+
:tf10_city => 'RIVERSIDE',
|
85
|
+
:tf10_state => 'CA',
|
86
|
+
:tf10_zip_code => '92506',
|
87
|
+
:tf10_day_phone => '9517800471'
|
88
|
+
}
|
89
|
+
|
90
|
+
result = @ecometry.insert fields, @record
|
91
|
+
|
92
|
+
result.must_equal "10 2030919188732 03/21/11MCTHOMAS HOLTZ 17130 RIDGE CANYON DR. RIVERSIDE CA92506 9517800471 "
|
93
|
+
end
|
94
|
+
|
95
|
+
it "converts Record Type 15" do
|
96
|
+
fields ={
|
97
|
+
:tf15_rec_type => '15',
|
98
|
+
:tf15_order_no => '2030919',
|
99
|
+
:tf15_purchase_ord => '302030919',
|
100
|
+
:tf15_entered_by => 'JSCBATCH',
|
101
|
+
:tf15_so_flag => 'N',
|
102
|
+
:tf15_order_xref => '302030919'
|
103
|
+
}
|
104
|
+
|
105
|
+
result = @ecometry.insert fields, @record
|
106
|
+
|
107
|
+
result.must_equal "15 2030919 302030919 JSCBATCH N 302030919 "
|
108
|
+
end
|
109
|
+
|
110
|
+
it "converts Record Type 20" do
|
111
|
+
fields = {
|
112
|
+
:tf20_rec_type => '20',
|
113
|
+
:tf20_order_no => '2030919',
|
114
|
+
:tf20_cc_type => 'VI',
|
115
|
+
:tf20_cc_card_no => '4111111111111111',
|
116
|
+
:tf20_exp_month => '10',
|
117
|
+
:tf20_exp_year => '12'
|
118
|
+
}
|
119
|
+
|
120
|
+
result = @ecometry.insert fields, @record
|
121
|
+
|
122
|
+
result.must_equal "20 2030919VI4111111111111111 1210 "
|
123
|
+
|
124
|
+
end
|
125
|
+
|
126
|
+
it "converts Record Type 40" do
|
127
|
+
fields = {
|
128
|
+
:tf40_rec_type => '40',
|
129
|
+
:tf40_order_no => '2030919',
|
130
|
+
:tf40_quantity => '5',
|
131
|
+
:tf40_item_no => 'GE13',
|
132
|
+
:tf40_tax_amt => '0',
|
133
|
+
:tf40_tax_exem => 'N',
|
134
|
+
:tf40_ship_meth => '24',
|
135
|
+
:tf40_p_h_amt => '0',
|
136
|
+
:tf40_price => '1959',
|
137
|
+
:tf40_overide_price => 'Y'
|
138
|
+
}
|
139
|
+
|
140
|
+
result = @ecometry.insert fields, @record
|
141
|
+
result.must_equal "40 2030919 0005 GE13 0000000 N240000000000001959 Y "
|
142
|
+
end
|
143
|
+
end
|
metadata
ADDED
@@ -0,0 +1,116 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: ecometry
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.0
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Brian
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-04-10 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: minitest
|
16
|
+
requirement: &69829994274700 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :development
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *69829994274700
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: rdoc
|
27
|
+
requirement: &69829994293300 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ~>
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '3.12'
|
33
|
+
type: :development
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *69829994293300
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: bundler
|
38
|
+
requirement: &69829994292820 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
44
|
+
type: :development
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *69829994292820
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: jeweler
|
49
|
+
requirement: &69829994292340 !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ~>
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 1.8.3
|
55
|
+
type: :development
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: *69829994292340
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: simplecov
|
60
|
+
requirement: &69829994291860 !ruby/object:Gem::Requirement
|
61
|
+
none: false
|
62
|
+
requirements:
|
63
|
+
- - ! '>='
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: '0'
|
66
|
+
type: :development
|
67
|
+
prerelease: false
|
68
|
+
version_requirements: *69829994291860
|
69
|
+
description: Tool for creating Ecometry batch files
|
70
|
+
email: brian@brianjolly.com
|
71
|
+
executables: []
|
72
|
+
extensions: []
|
73
|
+
extra_rdoc_files:
|
74
|
+
- LICENSE.txt
|
75
|
+
- README.rdoc
|
76
|
+
files:
|
77
|
+
- .document
|
78
|
+
- Gemfile
|
79
|
+
- LICENSE.txt
|
80
|
+
- README.rdoc
|
81
|
+
- Rakefile
|
82
|
+
- VERSION
|
83
|
+
- ecometry.gemspec
|
84
|
+
- lib/ecometry.rb
|
85
|
+
- lib/layout.rb
|
86
|
+
- test/helper.rb
|
87
|
+
- test/test_ecometry.rb
|
88
|
+
homepage: http://github.com/brianjolly/ecometry
|
89
|
+
licenses:
|
90
|
+
- MIT
|
91
|
+
post_install_message:
|
92
|
+
rdoc_options: []
|
93
|
+
require_paths:
|
94
|
+
- lib
|
95
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
96
|
+
none: false
|
97
|
+
requirements:
|
98
|
+
- - ! '>='
|
99
|
+
- !ruby/object:Gem::Version
|
100
|
+
version: '0'
|
101
|
+
segments:
|
102
|
+
- 0
|
103
|
+
hash: 4239159454842619625
|
104
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
110
|
+
requirements: []
|
111
|
+
rubyforge_project:
|
112
|
+
rubygems_version: 1.8.10
|
113
|
+
signing_key:
|
114
|
+
specification_version: 3
|
115
|
+
summary: Tool for creating Ecometry batch files
|
116
|
+
test_files: []
|