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.
@@ -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: []