sepparator 0.0.3 → 0.0.4

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: d93fccb627ad3d66c6e00d20d3a2bc668f64b29e
4
- data.tar.gz: ebd2433753ad5c13ca230b460df759149bc4bdda
3
+ metadata.gz: c0db8dffa7a89eb9c7f4e572a49921059edd0342
4
+ data.tar.gz: ed95d128b87536a256141928a69be1948175f6c6
5
5
  SHA512:
6
- metadata.gz: 02651843254b0342c6ac479a5dcec397fe03a654137401905fe60d9000e243be2b74f66f97300e3dee06777e263061d8c504466d5d59ee40081e5131ace0b3d8
7
- data.tar.gz: 0fd1b75bbec543a4e52855f5a58de97c3d1c23d823cee5abeec71881176d8eadc86903703a8eb09a3cb7c396fa92c0a9972bf2c0ef48c0b2a520ed9bb0671bb8
6
+ metadata.gz: d7e56370c5f62fbc0ac04e86737c1792a45ead185380e764516e59cc03ea78dadea05dfedfa202864cc9340c05d00c09030bbb31967ae5aa3e5d8d49d65bf36d
7
+ data.tar.gz: f5cb224bb669339926a216f75221d2b6e95e37eb4cca80f4433c56ac01d05aac842f469c968dc877baa98589ceca2be28d4eed4b3358e81d837431580fecdeea
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- sepparator (0.0.3)
4
+ sepparator (0.0.4)
5
5
  simple_xlsx_writer
6
6
  thor
7
7
 
@@ -23,6 +23,17 @@ module Sepparator
23
23
  end
24
24
  end
25
25
 
26
+ 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)
28
+ SimpleXlsx::Serializer.new(xls_path) do |doc|
29
+ 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
33
+ end
34
+ end
35
+ end
36
+
26
37
  end
27
38
 
28
39
  end
@@ -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.3'
7
+ spec.version = '0.0.4'
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.}
@@ -10,6 +10,22 @@ describe Sepparator::SpreadsheetConverter do
10
10
  expect(described_class.new(col_sep: sep).col_sep).to eq(sep)
11
11
  end
12
12
 
13
+ context '#convert_from_string' do
14
+ let(:csv_string) { File.open(File.join(__dir__, 'example.csv')).read }
15
+ let(:xls_path) { Tempfile.new('convert-to-xlsx').path }
16
+ subject { described_class.new.convert_from_string(csv_string, xls_path) }
17
+
18
+ before { FileUtils.rm_f xls_path }
19
+
20
+ it "converts a csv string" do
21
+ # don't comparing xlsx files here
22
+ subject
23
+ expect(File.exists?(xls_path)).to be_true
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
+ end
13
29
  context '#convert' do
14
30
  #let(:xls_path) { Tempfile.new('convert-to-xlsx')}
15
31
  let(:xls_path) { '/tmp/example.xlsx' }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sepparator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andreas Brandl
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-07-16 00:00:00.000000000 Z
11
+ date: 2013-08-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: simple_xlsx_writer
@@ -146,7 +146,6 @@ files:
146
146
  - lib/sepparator/spreadsheet_converter.rb
147
147
  - sepparator.gemspec
148
148
  - spec/sepparator/example.csv
149
- - spec/sepparator/spreadsheet_converter.rb
150
149
  - spec/sepparator/spreadsheet_converter_spec.rb
151
150
  - spec/sepparator_spec.rb
152
151
  - spec/spec_helper.rb
@@ -177,7 +176,6 @@ summary: tool for working with CSV files, it supports conversion to Excel files
177
176
  import to databases.
178
177
  test_files:
179
178
  - spec/sepparator/example.csv
180
- - spec/sepparator/spreadsheet_converter.rb
181
179
  - spec/sepparator/spreadsheet_converter_spec.rb
182
180
  - spec/sepparator_spec.rb
183
181
  - spec/spec_helper.rb
@@ -1,39 +0,0 @@
1
- require 'spec_helper'
2
- require 'sepparator/spreadsheet_converter'
3
- require 'tempfile'
4
- require 'fileutils'
5
-
6
- module Sepparator
7
- describe SpreadsheetConverter do
8
-
9
- it 'remembers the column separator' do
10
- sep = 'foobar'
11
- expect(described_class.new(col_sep: sep).col_sep).to eq(sep)
12
- end
13
-
14
- context '#convert' do
15
- let(:xls_path) { Tempfile.new('convert-to-xlsx').path }
16
- let(:csv_path) { File.join(__dir__, 'example.csv')}
17
- subject { described_class.new.convert(csv_path, xls_path)}
18
-
19
- before do
20
- FileUtils.rm_f xls_path
21
- end
22
-
23
- it 'converts a CSV file' do
24
- # don't comparing xlsx files here
25
- subject
26
- expect(File.exists?(xls_path)).to be_true
27
- end
28
-
29
- it 'raises when the source file was not found' do
30
- expect{described_class.new.convert('/some/non/existing/file.csv', xls_path)}.to raise_error(ArgumentError, /file not found/)
31
- end
32
-
33
- it 'raises when the destination file already exists' do
34
- expect{described_class.new.convert('/some/non/existing/file.csv', Tempfile.new('blafoo').path)}.to raise_error(ArgumentError, /destination file exists/)
35
- end
36
- end
37
-
38
- end
39
- end