tbr 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,32 @@
1
+ describe ServiceSummary do
2
+
3
+ let(:ct) { CallType.new }
4
+ let(:ss) { ServiceSummary.new(DS_RECORD,ct) }
5
+
6
+ describe '#initialize' do
7
+ it "should set instance variables" do
8
+ expect(ss.service_number).to eq TEST_PHONE
9
+ expect(ss.call_type).to eq 'Unknown service type - C5421'
10
+ expect(ss.service_type).to eq 'MobileNet'
11
+ expect(ss.units).to eq 'calls'
12
+ expect(ss.call_count).to eq 67
13
+ expect(ss.start_date).to eq '12/03/2013'
14
+ expect(ss.end_date).to eq '10/04/2013'
15
+ expect(ss.cost).to eq 46.48
16
+ end
17
+
18
+ it "should reject invalid record" do
19
+ expect { ServiceSummary.new("XX",ct) }.to raise_error ArgumentError
20
+ end
21
+ end
22
+
23
+ describe '#to_a' do
24
+ it "should return an array with five elements" do
25
+ expect(ss.to_a.size).to eq 5
26
+ end
27
+
28
+ it "should return the correct result" do
29
+ expect(ss.to_a[4]).to eq '46.48'
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,72 @@
1
+ require_relative 'spec_helper'
2
+
3
+ describe Services do
4
+
5
+ let(:services) { Services.new }
6
+
7
+ before :each do
8
+ services.service ONE
9
+ services.service TWO
10
+ end
11
+
12
+ describe "#size" do
13
+ it "should contain two services" do
14
+ expect(services.size).to eq 2
15
+ end
16
+ end
17
+
18
+ describe "#service" do
19
+ it "should return a Service" do
20
+ service = services.service ONE
21
+ expect(service.class).to eq Service
22
+ end
23
+
24
+ context "no service number" do
25
+ it "shouldn't add nil service number" do
26
+ services.service(nil)
27
+ expect(services.size).to eq 2
28
+ end
29
+
30
+ it "shouldn't add empty service number" do
31
+ services.service('')
32
+ expect(services.size).to eq 2
33
+ end
34
+ end
35
+
36
+ context "pre-existing service number" do
37
+ it "shouldn't add a service" do
38
+ services.service ONE
39
+ expect(services.size).to eq 2
40
+ end
41
+ end
42
+
43
+ context "new service number" do
44
+ it "should add a service" do
45
+ services.service THREE
46
+ expect(services.size).to eq 3
47
+ end
48
+ end
49
+ end
50
+
51
+ describe "#each" do
52
+ it "should return two services" do
53
+ count = 0
54
+ services.each { count += 1}
55
+ expect(count).to eq 2
56
+ end
57
+ end
58
+
59
+ describe "#delete" do
60
+ it "should delete a service" do
61
+ services.delete(ONE)
62
+ expect(services.size).to eq 1
63
+ end
64
+ end
65
+
66
+ describe "#name" do
67
+ it "should return unassigned" do
68
+ expect(services.name).to eq "Unassigned"
69
+ end
70
+ end
71
+
72
+ end
@@ -0,0 +1,19 @@
1
+ require 'pry'
2
+
3
+ DS_RECORD = 'DS,4833936100,20130418,P7978266009,797,3,0418501461,S,D,N,C5421,MobileNet,calls,67,,20130312,20130410,20130410,7281,44823000,USAGE,,,11,0,0,,,,42.25,0,42.25,4.23,46.48,20130410,,,,,,,,,,,'
4
+ DC_RECORD = 'DC,4833936100,20130418,P7978266009,7003,2,0418501461,C,D,C5421,1540,1,53448577,,0,,Ballarat,,20130313,20130313,17:17:39,,,7122,44823000,USAGE,11,9999,0,3.04,0,3.04,0.3,3.34,8.51101E+15,,,,,,,,,,,0'
5
+ TEST_PHONE = '0418501461'
6
+
7
+ OUT_DIR = './spec/data'
8
+ CALL_TYPES = './spec/data/call_types.csv'
9
+ SERVICES = './spec/data/services.csv'
10
+ BILLS = './spec/data/bills.csv'
11
+ EMPTY = './spec/data/empty.csv'
12
+ INVALID = './spec/data/invalid.csv'
13
+ MISSING = './spec/data/missing.csv'
14
+ LOGFILE = '/tmp/tbr.log'
15
+
16
+
17
+ ONE = '1234'
18
+ TWO = '2345'
19
+ THREE = '3456'
@@ -0,0 +1,43 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+
5
+ require 'prawn'
6
+ require 'prawn/table'
7
+
8
+ require 'tbr/version'
9
+ require 'tbr/call_detail'
10
+ require 'tbr/call_type'
11
+ require 'tbr/create_files'
12
+ require 'tbr/group'
13
+ require 'tbr/groups'
14
+ require 'tbr/parse_files'
15
+ require 'tbr/processor'
16
+ require 'tbr/service'
17
+ require 'tbr/services'
18
+ require 'tbr/service_summary'
19
+
20
+ Gem::Specification.new do |spec|
21
+ spec.name = "tbr"
22
+ spec.version = Tbr::VERSION
23
+ spec.authors = ["Brian Collins"]
24
+ spec.email = ["brian.pyrrho@bigpond.com"]
25
+ spec.summary = %q{Telstra Billing Reporter}
26
+ spec.description = %q{Parses Telstra OBS file and produces summary and detail management reports}
27
+ spec.homepage = ""
28
+ spec.license = "MIT"
29
+
30
+ spec.files = `git ls-files -z`.split("\x0")
31
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
32
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
33
+ spec.require_paths = ["lib"]
34
+
35
+ spec.add_dependency "prawn", "~> 2.0"
36
+ spec.add_dependency "prawn-table", "~> 0.2"
37
+
38
+ spec.add_development_dependency "bundler", "~> 1.6"
39
+ spec.add_development_dependency "rake"
40
+ spec.add_development_dependency "rspec"
41
+ spec.add_development_dependency "pry"
42
+ spec.add_development_dependency "pry-nav"
43
+ end
metadata ADDED
@@ -0,0 +1,199 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: tbr
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
+ platform: ruby
6
+ authors:
7
+ - Brian Collins
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-06-14 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: prawn
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '2.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '2.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: prawn-table
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '0.2'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '0.2'
41
+ - !ruby/object:Gem::Dependency
42
+ name: bundler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.6'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.6'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: pry
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: pry-nav
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ description: Parses Telstra OBS file and produces summary and detail management reports
112
+ email:
113
+ - brian.pyrrho@bigpond.com
114
+ executables: []
115
+ extensions: []
116
+ extra_rdoc_files: []
117
+ files:
118
+ - ".gitignore"
119
+ - CHANGELOG.md
120
+ - Gemfile
121
+ - LICENSE.txt
122
+ - README.md
123
+ - Rakefile
124
+ - lib/logo.jpg
125
+ - lib/tbr.rb
126
+ - lib/tbr/call_detail.rb
127
+ - lib/tbr/call_type.rb
128
+ - lib/tbr/create_files.rb
129
+ - lib/tbr/group.rb
130
+ - lib/tbr/groups.rb
131
+ - lib/tbr/parse_files.rb
132
+ - lib/tbr/processor.rb
133
+ - lib/tbr/service.rb
134
+ - lib/tbr/service_summary.rb
135
+ - lib/tbr/services.rb
136
+ - lib/tbr/version.rb
137
+ - r
138
+ - spec/call_detail_spec.rb
139
+ - spec/call_type_spec.rb
140
+ - spec/create_files_spec.rb
141
+ - spec/data/bills.csv
142
+ - spec/data/call_types.csv
143
+ - spec/data/empty.csv
144
+ - spec/data/invalid.csv
145
+ - spec/data/readonly.log
146
+ - spec/data/services.csv
147
+ - spec/data/test_logo.jpg
148
+ - spec/group_spec.rb
149
+ - spec/groups_spec.rb
150
+ - spec/parse_files_spec.rb
151
+ - spec/processor_spec.rb
152
+ - spec/service_spec.rb
153
+ - spec/service_summary_spec.rb
154
+ - spec/services_spec.rb
155
+ - spec/spec_helper.rb
156
+ - tbr.gemspec
157
+ homepage: ''
158
+ licenses:
159
+ - MIT
160
+ metadata: {}
161
+ post_install_message:
162
+ rdoc_options: []
163
+ require_paths:
164
+ - lib
165
+ required_ruby_version: !ruby/object:Gem::Requirement
166
+ requirements:
167
+ - - ">="
168
+ - !ruby/object:Gem::Version
169
+ version: '0'
170
+ required_rubygems_version: !ruby/object:Gem::Requirement
171
+ requirements:
172
+ - - ">="
173
+ - !ruby/object:Gem::Version
174
+ version: '0'
175
+ requirements: []
176
+ rubyforge_project:
177
+ rubygems_version: 2.2.2
178
+ signing_key:
179
+ specification_version: 4
180
+ summary: Telstra Billing Reporter
181
+ test_files:
182
+ - spec/call_detail_spec.rb
183
+ - spec/call_type_spec.rb
184
+ - spec/create_files_spec.rb
185
+ - spec/data/bills.csv
186
+ - spec/data/call_types.csv
187
+ - spec/data/empty.csv
188
+ - spec/data/invalid.csv
189
+ - spec/data/readonly.log
190
+ - spec/data/services.csv
191
+ - spec/data/test_logo.jpg
192
+ - spec/group_spec.rb
193
+ - spec/groups_spec.rb
194
+ - spec/parse_files_spec.rb
195
+ - spec/processor_spec.rb
196
+ - spec/service_spec.rb
197
+ - spec/service_summary_spec.rb
198
+ - spec/services_spec.rb
199
+ - spec/spec_helper.rb