cbhpm_table 0.0.2 → 0.0.3
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.
- checksums.yaml +4 -4
- data/lib/cbhpm_table/version.rb +1 -1
- data/lib/cbhpm_table.rb +76 -33
- data/spec/cbhpm_table_spec.rb +28 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e59d35c4b93ca98234df5edfee555894eaf654e8
|
4
|
+
data.tar.gz: f919dc7c957af39d58d866eac50e63c5ce24debc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f154fba675d6dc63186db8f9117c675995ed476c3ade823558676691864bb8b0f448682e8d411f8abea9978888599d3db199382ae9e2304c141c46ccdb0ce1ad
|
7
|
+
data.tar.gz: f217655a9ba0193e311aa877bb9267d215022e83f4845c1f5423c26adbcfdfb5f693f28433fea954532ea1c1f10edb908f99409a96c21d9a55d435c7e58443be
|
data/lib/cbhpm_table/version.rb
CHANGED
data/lib/cbhpm_table.rb
CHANGED
@@ -3,17 +3,14 @@ require "cbhpm_table/version"
|
|
3
3
|
require 'roo'
|
4
4
|
|
5
5
|
class CBHPMTable
|
6
|
-
attr_reader :roo
|
6
|
+
attr_reader :roo
|
7
7
|
|
8
8
|
def initialize(cbhpm_path, headers_hash = nil)
|
9
|
-
|
10
|
-
cbhpm_file_basename = File.basename(cbhpm_path)
|
9
|
+
@cbhpm_path = cbhpm_path
|
11
10
|
|
12
|
-
|
13
|
-
|
14
|
-
roo_class = ROO_CLASS_FOR_EXTENSION[cbhpm_file_extension]
|
11
|
+
roo_class = ROO_CLASS_FOR_EXTENSION[File.extname(cbhpm_path)]
|
15
12
|
@roo = roo_class.new(cbhpm_path)
|
16
|
-
@headers_hash = headers_hash ||
|
13
|
+
@headers_hash = headers_hash || get_headers_hash
|
17
14
|
raise "Can't find predefined headers for #{cbhpm_path}" unless @headers_hash
|
18
15
|
end
|
19
16
|
|
@@ -43,6 +40,22 @@ class CBHPMTable
|
|
43
40
|
each_row.to_a
|
44
41
|
end
|
45
42
|
|
43
|
+
def edition_name
|
44
|
+
version_format[:edition_name]
|
45
|
+
end
|
46
|
+
|
47
|
+
def version_format
|
48
|
+
@version_format ||= get_version_format
|
49
|
+
end
|
50
|
+
|
51
|
+
def get_version_format
|
52
|
+
VERSION_FOR_FILE[File.basename(cbhpm_path)]
|
53
|
+
end
|
54
|
+
|
55
|
+
def cbhpm_path
|
56
|
+
@cbhpm_path
|
57
|
+
end
|
58
|
+
|
46
59
|
def each_row
|
47
60
|
return to_enum(:each_row) unless block_given?
|
48
61
|
roo_enum = roo.to_enum(:each)
|
@@ -52,47 +65,77 @@ class CBHPMTable
|
|
52
65
|
end
|
53
66
|
end
|
54
67
|
|
55
|
-
|
68
|
+
def headers_hash
|
69
|
+
@headers_hash ||= get_headers_hash
|
70
|
+
end
|
71
|
+
|
72
|
+
def get_headers_hash
|
73
|
+
version_format[:header_format]
|
74
|
+
end
|
75
|
+
|
76
|
+
def start_date
|
77
|
+
version_format[:start_date]
|
78
|
+
end
|
79
|
+
|
80
|
+
def end_date
|
81
|
+
version_format[:end_date]
|
82
|
+
end
|
83
|
+
|
84
|
+
private :first_row_index, :import_row, :get_version_format, :get_headers_hash
|
56
85
|
end
|
57
86
|
|
58
87
|
class CBHPMTable
|
59
|
-
|
60
|
-
CBHPM5a =
|
61
|
-
|
88
|
+
VERSIONS = {
|
89
|
+
:cbhpm5a => CBHPM5a = {
|
90
|
+
:file_basename => "CBHPM 5¶ Ediá∆o.xls",
|
91
|
+
:edition_name => "5a",
|
92
|
+
:header_format => {
|
93
|
+
0 => "code",
|
62
94
|
1 => "name",
|
63
95
|
4 => "cir_size",
|
64
96
|
5 => "uco",
|
65
97
|
6 => "aux_qty",
|
66
|
-
7 => "an_size"
|
67
|
-
|
68
|
-
|
69
|
-
|
98
|
+
7 => "an_size"
|
99
|
+
},
|
100
|
+
:start_date => "01/01/2008",
|
101
|
+
:end_date => "31/12/2009"
|
102
|
+
},
|
103
|
+
:cbhpm2010 => CBHPM2010 = {
|
104
|
+
:file_basename => "CBHPM 2010 separada.xls",
|
105
|
+
:edition_name => "2010",
|
106
|
+
:header_format => {
|
107
|
+
0 => "code",
|
70
108
|
1 => "name",
|
71
109
|
4 => "cir_size",
|
72
110
|
5 => "uco",
|
73
111
|
6 => "aux_qty",
|
74
|
-
7 => "an_size"
|
75
|
-
|
76
|
-
|
77
|
-
|
112
|
+
7 => "an_size"
|
113
|
+
},
|
114
|
+
:start_date => "01/01/2010",
|
115
|
+
:end_date => "31/12/2011"
|
116
|
+
},
|
117
|
+
:cbhpm2012 => CBHPM2012 = {
|
118
|
+
:file_basename => "CBHPM 2012.xlsx",
|
119
|
+
:edition_name => "2012",
|
120
|
+
:header_format => {
|
121
|
+
4 => "code",
|
78
122
|
5 => "name",
|
79
123
|
8 => "cir_size",
|
80
124
|
9 => "uco",
|
81
125
|
10 => "aux_qty",
|
82
|
-
11 => "an_size"
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
"cbhpm_cut_for_testing.xlsx" => "2012" }
|
126
|
+
11 => "an_size"
|
127
|
+
},
|
128
|
+
:start_date => "01/01/2012",
|
129
|
+
:end_date => nil
|
130
|
+
}
|
131
|
+
}
|
132
|
+
|
133
|
+
VERSION_FOR_FILE = {
|
134
|
+
"CBHPM 5¶ Ediá∆o.xls" => CBHPM5a,
|
135
|
+
"CBHPM 2010 separada.xls" => CBHPM2010,
|
136
|
+
"CBHPM 2012.xlsx" => CBHPM2012,
|
137
|
+
"cbhpm_cut_for_testing.xlsx" => CBHPM2012
|
138
|
+
}
|
96
139
|
|
97
140
|
ROO_CLASS_FOR_EXTENSION = { ".xls" => Roo::Excel, ".xlsx" => Roo::Excelx }
|
98
141
|
end
|
data/spec/cbhpm_table_spec.rb
CHANGED
@@ -4,13 +4,13 @@ require 'cbhpm_table'
|
|
4
4
|
describe CBHPMTable do
|
5
5
|
let(:cbhpm_table) do
|
6
6
|
CBHPMTable.new("spec/cbhpm/cbhpm_cut_for_testing.xlsx",
|
7
|
-
CBHPMTable::
|
7
|
+
CBHPMTable::CBHPM2012[:header_format])
|
8
8
|
end
|
9
9
|
|
10
10
|
it { expect(cbhpm_table).to respond_to(:headers) }
|
11
11
|
|
12
12
|
describe "#headers_hash - the format hash for headers" do
|
13
|
-
it { expect(cbhpm_table.headers_hash).to eq CBHPMTable::
|
13
|
+
it { expect(cbhpm_table.headers_hash).to eq CBHPMTable::CBHPM2012[:header_format] }
|
14
14
|
end
|
15
15
|
|
16
16
|
describe "#headers - the first line of the CBHPM Table" do
|
@@ -63,5 +63,31 @@ describe CBHPMTable do
|
|
63
63
|
describe "#edition_name" do
|
64
64
|
it { expect(cbhpm_table.edition_name).to eq "2012" }
|
65
65
|
end
|
66
|
+
|
67
|
+
describe "#version_format" do
|
68
|
+
it { expect(cbhpm_table.version_format).to be_instance_of Hash }
|
69
|
+
it "should return proper Hash with :edition_name key" do
|
70
|
+
STDOUT.puts cbhpm_table.version_format.inspect
|
71
|
+
expect(cbhpm_table.version_format[:edition_name]).to eq "2012"
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
describe "#cbhpm_path" do
|
76
|
+
it "should return the cbhpm initialization path" do
|
77
|
+
expect(cbhpm_table.cbhpm_path).to eq "spec/cbhpm/cbhpm_cut_for_testing.xlsx"
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
describe "#start_date" do
|
82
|
+
it "should return proper start_date for cbhpm version" do
|
83
|
+
expect(cbhpm_table.start_date).to eq "01/01/2012"
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
describe "#end_date" do
|
88
|
+
it "should return proper end_date for cbhpm version" do
|
89
|
+
expect(cbhpm_table.end_date).to eq nil
|
90
|
+
end
|
91
|
+
end
|
66
92
|
end
|
67
93
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cbhpm_table
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Abinoam Praxedes Marques Jr.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-10-
|
11
|
+
date: 2014-10-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|