embratel 0.0.2 → 1.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/.rvmrc +1 -0
- data/Gemfile.lock +1 -4
- data/README.org +13 -12
- data/embratel.gemspec +12 -11
- data/lib/embratel.rb +10 -3
- data/lib/embratel/call.rb +2 -4
- data/lib/embratel/phone_bill.rb +2 -4
- data/test/embratel/call_test.rb +8 -16
- data/test/test_helper.rb +0 -1
- metadata +9 -48
data/.rvmrc
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
rvm 1.9.2@bell --create
|
data/Gemfile.lock
CHANGED
@@ -1,13 +1,11 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
embratel (0.0.
|
5
|
-
fastercsv (= 1.5.3)
|
4
|
+
embratel (0.0.2)
|
6
5
|
|
7
6
|
GEM
|
8
7
|
remote: http://rubygems.org/
|
9
8
|
specs:
|
10
|
-
fastercsv (1.5.3)
|
11
9
|
rake (0.8.7)
|
12
10
|
|
13
11
|
PLATFORMS
|
@@ -16,5 +14,4 @@ PLATFORMS
|
|
16
14
|
DEPENDENCIES
|
17
15
|
bundler (>= 1.0.0)
|
18
16
|
embratel!
|
19
|
-
fastercsv (= 1.5.3)
|
20
17
|
rake (= 0.8.7)
|
data/README.org
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
* embratel
|
2
2
|
** Instalando
|
3
3
|
#+BEGIN_SRC
|
4
|
-
gem install embratel
|
4
|
+
$ gem install embratel
|
5
5
|
#+END_SRC
|
6
6
|
Você precisa ter o ruby e o rubygems instalados.
|
7
7
|
|
@@ -25,13 +25,14 @@ Embratel::Call
|
|
25
25
|
|
26
26
|
*** Com o arquivo da fatura você pode
|
27
27
|
#+BEGIN_SRC
|
28
|
-
|
28
|
+
# Instancie uma fatura.
|
29
|
+
>> phone_bill = Embratel::PhoneBill.new("/path/to/fatura.csv")
|
29
30
|
|
30
|
-
# array com todas as ligações da fatura (
|
31
|
-
phone_bill.calls
|
31
|
+
# PhoneBill#calls retorna um array com todas as ligações da fatura (objetos Embratel::Call).
|
32
|
+
>> phone_bill.calls
|
32
33
|
|
33
|
-
# custo total da fatura
|
34
|
-
phone_bill.total
|
34
|
+
# PhoneBill#total retorna o custo total da fatura.
|
35
|
+
>> phone_bill.total
|
35
36
|
#+END_SRC
|
36
37
|
|
37
38
|
*** attr_accessors disponíveis para objetos Embratel::Call
|
@@ -55,23 +56,23 @@ cost
|
|
55
56
|
** Para rodar os testes
|
56
57
|
*** Pegue o código
|
57
58
|
#+BEGIN_SRC
|
58
|
-
git clone git://github.com/murilasso/embratel.git
|
59
|
-
cd embratel
|
59
|
+
$ git clone git://github.com/murilasso/embratel.git
|
60
|
+
$ cd embratel
|
60
61
|
#+END_SRC
|
61
62
|
|
62
63
|
*** Instale o bundler e as dependências (se já não estiverem instaladas)
|
63
64
|
#+BEGIN_SRC
|
64
|
-
gem install bundler
|
65
|
-
bundle install
|
65
|
+
$ gem install bundler
|
66
|
+
$ bundle install
|
66
67
|
#+END_SRC
|
67
68
|
|
68
69
|
*** Rode os testes
|
69
70
|
#+BEGIN_SRC
|
70
|
-
rake test
|
71
|
+
$ rake test
|
71
72
|
#+END_SRC
|
72
73
|
|
73
74
|
** Autor
|
74
|
-
[[http://
|
75
|
+
[[http://murilopereira.com][Murilo Pereira]]
|
75
76
|
|
76
77
|
** Licença
|
77
78
|
Distribuído sob a [[http://github.com/murilasso/embratel/blob/master/MIT-LICENSE][licença MIT]].
|
data/embratel.gemspec
CHANGED
@@ -1,22 +1,23 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
-
|
2
|
+
|
3
|
+
require File.expand_path('../lib/embratel', __FILE__)
|
3
4
|
|
4
5
|
Gem::Specification.new do |s|
|
5
|
-
s.name =
|
6
|
+
s.name = 'embratel'
|
6
7
|
s.version = Embratel::VERSION
|
7
8
|
s.platform = Gem::Platform::RUBY
|
8
|
-
s.
|
9
|
-
s.email =
|
10
|
-
s.homepage =
|
11
|
-
s.summary = "
|
9
|
+
s.author = 'Murilo Pereira'
|
10
|
+
s.email = 'murilo@murilopereira.com'
|
11
|
+
s.homepage = 'https://github.com/murilasso/embratel'
|
12
|
+
s.summary = "Easily extract data from Embratel's phone bill files."
|
12
13
|
|
13
|
-
s.required_rubygems_version =
|
14
|
-
s.rubyforge_project =
|
14
|
+
s.required_rubygems_version = '>= 1.3.6'
|
15
|
+
s.rubyforge_project = 'embratel'
|
15
16
|
|
16
|
-
s.add_development_dependency
|
17
|
-
s.add_development_dependency
|
17
|
+
s.add_development_dependency 'bundler', '>= 1.0.0'
|
18
|
+
s.add_development_dependency 'rake', '0.8.7'
|
18
19
|
|
19
|
-
s.add_dependency
|
20
|
+
s.add_dependency('fastercsv', '1.5.3') if RUBY_VERSION < '1.9'
|
20
21
|
|
21
22
|
s.files = `git ls-files`.split("\n")
|
22
23
|
s.require_path = 'lib'
|
data/lib/embratel.rb
CHANGED
@@ -1,8 +1,15 @@
|
|
1
|
-
|
2
|
-
require '
|
1
|
+
if RUBY_VERSION < '1.9'
|
2
|
+
require 'fastercsv'
|
3
|
+
CSV = FasterCSV
|
4
|
+
else
|
5
|
+
require 'csv'
|
6
|
+
end
|
7
|
+
|
8
|
+
require 'embratel/call.rb'
|
9
|
+
require 'embratel/phone_bill.rb'
|
3
10
|
|
4
11
|
module Embratel
|
5
|
-
VERSION =
|
12
|
+
VERSION = '1.0.0'
|
6
13
|
|
7
14
|
class InvalidPhoneBillFileError < StandardError; end
|
8
15
|
end
|
data/lib/embratel/call.rb
CHANGED
@@ -2,8 +2,7 @@ module Embratel
|
|
2
2
|
class Call
|
3
3
|
NUMBER_CALLED_REGEXP = /^\d{10}$/
|
4
4
|
COST_REGEXP = /^\d*(\.\d+)?$/
|
5
|
-
FIELDS = %w[
|
6
|
-
id
|
5
|
+
FIELDS = %w[id
|
7
6
|
caller
|
8
7
|
description
|
9
8
|
date
|
@@ -16,8 +15,7 @@ module Embratel
|
|
16
15
|
country
|
17
16
|
quantity
|
18
17
|
unit
|
19
|
-
cost
|
20
|
-
]
|
18
|
+
cost]
|
21
19
|
|
22
20
|
FIELDS.each { |field| attr_accessor field.to_sym }
|
23
21
|
|
data/lib/embratel/phone_bill.rb
CHANGED
@@ -1,15 +1,13 @@
|
|
1
|
-
require 'fastercsv'
|
2
|
-
|
3
1
|
module Embratel
|
4
2
|
class PhoneBill
|
5
3
|
def initialize(path)
|
6
4
|
begin
|
7
|
-
@csv =
|
5
|
+
@csv = CSV.read(path, { :skip_blanks => true })
|
8
6
|
rescue Errno::ENOENT
|
9
7
|
raise
|
10
8
|
rescue Errno::EISDIR
|
11
9
|
raise
|
12
|
-
rescue
|
10
|
+
rescue CSV::MalformedCSVError
|
13
11
|
raise
|
14
12
|
else
|
15
13
|
raise InvalidPhoneBillFileError if (invalid_rows? || non_csv?(path))
|
data/test/embratel/call_test.rb
CHANGED
@@ -2,8 +2,7 @@ require 'test_helper'
|
|
2
2
|
|
3
3
|
class CallTest < Test::Unit::TestCase
|
4
4
|
def row_with_a_missing_field
|
5
|
-
[
|
6
|
-
'1',
|
5
|
+
['1',
|
7
6
|
'1634125644-FRANQUIA 01',
|
8
7
|
'04 - LIGACOES DDD PARA CELULARES',
|
9
8
|
'11/08/10 A 99/99/99',
|
@@ -15,13 +14,11 @@ class CallTest < Test::Unit::TestCase
|
|
15
14
|
'',
|
16
15
|
'500',
|
17
16
|
'MIN',
|
18
|
-
'0.73'
|
19
|
-
]
|
17
|
+
'0.73']
|
20
18
|
end
|
21
19
|
|
22
20
|
def row_with_invalid_number_called
|
23
|
-
[
|
24
|
-
'1',
|
21
|
+
['1',
|
25
22
|
'1634125644-FRANQUIA 01',
|
26
23
|
'04 - LIGACOES DDD PARA CELULARES',
|
27
24
|
'11/08/10 A 99/99/99',
|
@@ -34,13 +31,11 @@ class CallTest < Test::Unit::TestCase
|
|
34
31
|
'',
|
35
32
|
'500',
|
36
33
|
'MIN',
|
37
|
-
'0.73'
|
38
|
-
]
|
34
|
+
'0.73']
|
39
35
|
end
|
40
36
|
|
41
37
|
def row_with_invalid_cost
|
42
|
-
[
|
43
|
-
'1',
|
38
|
+
['1',
|
44
39
|
'1634125644-FRANQUIA 01',
|
45
40
|
'04 - LIGACOES DDD PARA CELULARES',
|
46
41
|
'11/08/10 A 99/99/99',
|
@@ -53,13 +48,11 @@ class CallTest < Test::Unit::TestCase
|
|
53
48
|
'',
|
54
49
|
'500',
|
55
50
|
'MIN',
|
56
|
-
'.73'
|
57
|
-
]
|
51
|
+
'.73']
|
58
52
|
end
|
59
53
|
|
60
54
|
def valid_row
|
61
|
-
[
|
62
|
-
'1',
|
55
|
+
['1',
|
63
56
|
'1634125644-FRANQUIA 01',
|
64
57
|
'04 - LIGACOES DDD PARA CELULARES',
|
65
58
|
'11/08/10 A 99/99/99',
|
@@ -72,8 +65,7 @@ class CallTest < Test::Unit::TestCase
|
|
72
65
|
'',
|
73
66
|
'500',
|
74
67
|
'MIN',
|
75
|
-
'0.73'
|
76
|
-
]
|
68
|
+
'0.73']
|
77
69
|
end
|
78
70
|
|
79
71
|
def test_call_instantiated_with_a_row_with_a_missing_field
|
data/test/test_helper.rb
CHANGED
metadata
CHANGED
@@ -1,21 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: embratel
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 0
|
9
|
-
- 2
|
10
|
-
version: 0.0.2
|
4
|
+
prerelease:
|
5
|
+
version: 1.0.0
|
11
6
|
platform: ruby
|
12
7
|
authors:
|
13
|
-
- Murilo
|
8
|
+
- Murilo Pereira
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
12
|
|
18
|
-
date:
|
13
|
+
date: 2011-03-20 00:00:00 -03:00
|
19
14
|
default_executable:
|
20
15
|
dependencies:
|
21
16
|
- !ruby/object:Gem::Dependency
|
@@ -26,11 +21,6 @@ dependencies:
|
|
26
21
|
requirements:
|
27
22
|
- - ">="
|
28
23
|
- !ruby/object:Gem::Version
|
29
|
-
hash: 23
|
30
|
-
segments:
|
31
|
-
- 1
|
32
|
-
- 0
|
33
|
-
- 0
|
34
24
|
version: 1.0.0
|
35
25
|
type: :development
|
36
26
|
version_requirements: *id001
|
@@ -42,33 +32,11 @@ dependencies:
|
|
42
32
|
requirements:
|
43
33
|
- - "="
|
44
34
|
- !ruby/object:Gem::Version
|
45
|
-
hash: 49
|
46
|
-
segments:
|
47
|
-
- 0
|
48
|
-
- 8
|
49
|
-
- 7
|
50
35
|
version: 0.8.7
|
51
36
|
type: :development
|
52
37
|
version_requirements: *id002
|
53
|
-
- !ruby/object:Gem::Dependency
|
54
|
-
name: fastercsv
|
55
|
-
prerelease: false
|
56
|
-
requirement: &id003 !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
|
-
requirements:
|
59
|
-
- - "="
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
hash: 5
|
62
|
-
segments:
|
63
|
-
- 1
|
64
|
-
- 5
|
65
|
-
- 3
|
66
|
-
version: 1.5.3
|
67
|
-
type: :runtime
|
68
|
-
version_requirements: *id003
|
69
38
|
description:
|
70
|
-
email:
|
71
|
-
- murilo.soares3@gmail.com
|
39
|
+
email: murilo@murilopereira.com
|
72
40
|
executables: []
|
73
41
|
|
74
42
|
extensions: []
|
@@ -77,6 +45,7 @@ extra_rdoc_files: []
|
|
77
45
|
|
78
46
|
files:
|
79
47
|
- .gitignore
|
48
|
+
- .rvmrc
|
80
49
|
- Gemfile
|
81
50
|
- Gemfile.lock
|
82
51
|
- MIT-LICENSE
|
@@ -94,7 +63,7 @@ files:
|
|
94
63
|
- test/fixtures/valid_phone_bill_file.csv
|
95
64
|
- test/test_helper.rb
|
96
65
|
has_rdoc: true
|
97
|
-
homepage:
|
66
|
+
homepage: https://github.com/murilasso/embratel
|
98
67
|
licenses: []
|
99
68
|
|
100
69
|
post_install_message:
|
@@ -107,27 +76,19 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
107
76
|
requirements:
|
108
77
|
- - ">="
|
109
78
|
- !ruby/object:Gem::Version
|
110
|
-
hash: 3
|
111
|
-
segments:
|
112
|
-
- 0
|
113
79
|
version: "0"
|
114
80
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
115
81
|
none: false
|
116
82
|
requirements:
|
117
83
|
- - ">="
|
118
84
|
- !ruby/object:Gem::Version
|
119
|
-
hash: 23
|
120
|
-
segments:
|
121
|
-
- 1
|
122
|
-
- 3
|
123
|
-
- 6
|
124
85
|
version: 1.3.6
|
125
86
|
requirements: []
|
126
87
|
|
127
88
|
rubyforge_project: embratel
|
128
|
-
rubygems_version: 1.
|
89
|
+
rubygems_version: 1.6.2
|
129
90
|
signing_key:
|
130
91
|
specification_version: 3
|
131
|
-
summary:
|
92
|
+
summary: Easily extract data from Embratel's phone bill files.
|
132
93
|
test_files: []
|
133
94
|
|