sepparator 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c0db8dffa7a89eb9c7f4e572a49921059edd0342
4
- data.tar.gz: ed95d128b87536a256141928a69be1948175f6c6
3
+ metadata.gz: 7ba71e463fa74383b9f14a35f2d96691917b62bd
4
+ data.tar.gz: 343953fd6024f90650bbac58c74c28bd8144a283
5
5
  SHA512:
6
- metadata.gz: d7e56370c5f62fbc0ac04e86737c1792a45ead185380e764516e59cc03ea78dadea05dfedfa202864cc9340c05d00c09030bbb31967ae5aa3e5d8d49d65bf36d
7
- data.tar.gz: f5cb224bb669339926a216f75221d2b6e95e37eb4cca80f4433c56ac01d05aac842f469c968dc877baa98589ceca2be28d4eed4b3358e81d837431580fecdeea
6
+ metadata.gz: 2986dc70483b662947a661f0b3fb9fa58980296be1696256ad792442851988d690683068951ba2562eb754df6ca80eddeb9ab2c4694e20f9a4ae08fa5bee26df
7
+ data.tar.gz: f5de91cdee6aa37ddd8969e0b7146787c3ad4416b870d3b63e2e1078a7ba5af85e10d86da7c911ecf7186bf5c3e6feb3f54986606f016c4442a90a1ca2d6f4c3
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- sepparator (0.0.4)
4
+ sepparator (0.0.5)
5
5
  simple_xlsx_writer
6
6
  thor
7
7
 
@@ -13,7 +13,7 @@ GEM
13
13
  fast_xs (0.8.0)
14
14
  ffi (1.9.0)
15
15
  formatador (0.2.4)
16
- guard (1.8.1)
16
+ guard (1.8.2)
17
17
  formatador (>= 0.2.4)
18
18
  listen (>= 1.0.0)
19
19
  lumberjack (>= 1.0.2)
@@ -27,7 +27,7 @@ GEM
27
27
  rb-inotify (>= 0.9)
28
28
  rb-kqueue (>= 0.2)
29
29
  lumberjack (1.0.4)
30
- method_source (0.8.1)
30
+ method_source (0.8.2)
31
31
  pry (0.9.12.2)
32
32
  coderay (~> 1.0.5)
33
33
  method_source (~> 0.8)
@@ -38,19 +38,19 @@ GEM
38
38
  ffi (>= 0.5.0)
39
39
  rb-kqueue (0.2.0)
40
40
  ffi (>= 0.5.0)
41
- rspec (2.13.0)
42
- rspec-core (~> 2.13.0)
43
- rspec-expectations (~> 2.13.0)
44
- rspec-mocks (~> 2.13.0)
45
- rspec-core (2.13.1)
46
- rspec-expectations (2.13.0)
41
+ rspec (2.14.1)
42
+ rspec-core (~> 2.14.0)
43
+ rspec-expectations (~> 2.14.0)
44
+ rspec-mocks (~> 2.14.0)
45
+ rspec-core (2.14.4)
46
+ rspec-expectations (2.14.0)
47
47
  diff-lcs (>= 1.1.3, < 2.0)
48
- rspec-mocks (2.13.1)
48
+ rspec-mocks (2.14.2)
49
49
  rubyzip (0.9.9)
50
50
  simple_xlsx_writer (0.5.3)
51
51
  fast_xs (>= 0.7.3)
52
52
  rubyzip (>= 0.9.4)
53
- slop (3.4.5)
53
+ slop (3.4.6)
54
54
  thor (0.18.1)
55
55
 
56
56
  PLATFORMS
@@ -12,24 +12,27 @@ module Sepparator
12
12
  end
13
13
 
14
14
  def convert(csv_path, xls_path, sheet_name: 'from CSV')
15
- raise ArgumentError, "destination file exists: #{xls_path}" if File.exists?(xls_path)
16
15
  raise ArgumentError, "file not found: #{csv_path}" unless File.exists?(csv_path)
17
- SimpleXlsx::Serializer.new(xls_path) do |doc|
18
- doc.add_sheet(sheet_name || 'from CSV') do |sheet|
19
- CSV.foreach(csv_path, col_sep: col_sep, converters: [:numeric, :date_time, :date]) do |csv_row|
20
- sheet.add_row(csv_row)
21
- end
16
+ create_xlsx(xls_path, sheet_name) do |sheet|
17
+ CSV.foreach(csv_path, col_sep: col_sep, converters: [:numeric, :date_time, :date]) do |csv_row|
18
+ sheet.add_row(csv_row)
22
19
  end
23
20
  end
24
21
  end
25
22
 
26
23
  def convert_from_string(csv_string, xls_path, sheet_name: 'from CSV')
27
- raise ArgumentError, "destination file exists: #{xls_path}" if File.exists?(xls_path)
24
+ create_xlsx(xls_path, sheet_name) do |sheet|
25
+ CSV.parse(csv_string, col_sep: col_sep, converters: [:numeric, :date_time, :date]) do |csv_row|
26
+ sheet.add_row(csv_row)
27
+ end
28
+ end
29
+ end
30
+
31
+ private
32
+ def create_xlsx(xls_path, sheet_name)
28
33
  SimpleXlsx::Serializer.new(xls_path) do |doc|
29
34
  doc.add_sheet(sheet_name || 'from CSV') do |sheet|
30
- CSV.parse(csv_string, col_sep: col_sep, converters: [:numeric, :date_time, :date]) do |csv_row|
31
- sheet.add_row(csv_row)
32
- end
35
+ yield sheet
33
36
  end
34
37
  end
35
38
  end
data/sepparator.gemspec CHANGED
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
 
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = "sepparator"
7
- spec.version = '0.0.4'
7
+ spec.version = '0.0.5'
8
8
  spec.authors = ["Andreas Brandl"]
9
9
  spec.email = ["github@andreas-brandl.de"]
10
10
  spec.description = %q{tool for working with CSV files, it supports conversion to Excel files and import to databases.}
@@ -22,12 +22,8 @@ describe Sepparator::SpreadsheetConverter do
22
22
  subject
23
23
  expect(File.exists?(xls_path)).to be_true
24
24
  end
25
- it 'raises when the destination file already exists' do
26
- expect{described_class.new.convert('/some/non/existing/file.csv', Tempfile.new('blafoo').path)}.to raise_error(ArgumentError, /destination file exists/)
27
- end
28
25
  end
29
26
  context '#convert' do
30
- #let(:xls_path) { Tempfile.new('convert-to-xlsx')}
31
27
  let(:xls_path) { '/tmp/example.xlsx' }
32
28
  let(:csv_path) { File.join(__dir__, 'example.csv')}
33
29
  subject { described_class.new.convert(csv_path, xls_path)}
@@ -46,9 +42,6 @@ describe Sepparator::SpreadsheetConverter do
46
42
  expect{described_class.new.convert('/some/non/existing/file.csv', xls_path)}.to raise_error(ArgumentError, /file not found/)
47
43
  end
48
44
 
49
- it 'raises when the destination file already exists' do
50
- expect{described_class.new.convert('/some/non/existing/file.csv', Tempfile.new('blafoo').path)}.to raise_error(ArgumentError, /destination file exists/)
51
- end
52
45
  end
53
46
 
54
47
  end
@@ -8,7 +8,7 @@ describe Sepparator do
8
8
  csv_path = 'foo/bar.csv'
9
9
  xls_path = 'bla/fu.xls'
10
10
  sheet_name = 'my sheet'
11
- converter = stub
11
+ converter = double
12
12
  Sepparator::SpreadsheetConverter.should_receive(:new).with(col_sep: col_sep).and_return(converter)
13
13
  converter.should_receive(:convert).with(csv_path, xls_path, sheet_name: sheet_name)
14
14
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sepparator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andreas Brandl