csv2psql 0.0.0 → 0.0.1

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: 8e12654e5d07f5a1bb2baa44120d701c52dc5570
4
- data.tar.gz: 37b7f1d82a61a667b971e2c2f0d5c1bc135b1c13
3
+ metadata.gz: c7cf1fee8ae3b9863f3e0fc1c34353d93289f167
4
+ data.tar.gz: c2679fdf68f83282630724958b6345b658b5d5c0
5
5
  SHA512:
6
- metadata.gz: 67522c3b720cab1215142f0ea1a9e34cd94ade8b20efab614d6fc0c30aecf3bcdd106a85f73bff830444e4b541d5af40a1f1f5d2d6f697a00115492f0f50115b
7
- data.tar.gz: 9c34f3fe26c109bcca0a7212be2e8e6aa5cdbda0cf6d0af94a69fcdbd9607b37474bed10e59ab19bb53da96ac6162276e5f2e5f024e5c7bc22c03f9abd454144
6
+ metadata.gz: 9893af6b95b14d28fb61b270585a028e00d7c176f5e3d0e1b77a9c5059f6aa70ae37f9f7522803811a3f1115f7bdbc913e4c35fe5441a51cdacabefcba11ce72
7
+ data.tar.gz: a6598639b04050e381a759a099187a1c69f10ab87487cb58fb5dcc29ca1e3d3261000131bd58450f54b9af41df60eb46a92075917c313f7021209519ff2e57d6
data/README.md CHANGED
@@ -1,10 +1,11 @@
1
1
  # csv2psql
2
2
 
3
- Tool for transforming CSV into SQL statements for insert or update into DB
3
+ Tool for transforming CSV into SQL statements
4
4
 
5
5
  ## Status
6
6
 
7
7
  [![Gem Version](https://badge.fury.io/rb/csv2psql.svg)](http://badge.fury.io/rb/csv2psql)
8
+ [![Downloads](http://img.shields.io/gem/dt/csv2psql.svg)](http://rubygems.org/gems/csv2psql)
8
9
  [![Build Status](https://travis-ci.org/korczis/csv2psql.svg?branch=master)](https://travis-ci.org/korczis/csv2psql)
9
10
  [![Code Climate](https://codeclimate.com/github/korczis/csv2psql/badges/gpa.svg)](https://codeclimate.com/github/korczis/csv2psql)
10
11
  [![Dependency Status](https://gemnasium.com/korczis/csv2psql.svg)](https://gemnasium.com/korczis/csv2psql)
@@ -9,7 +9,7 @@ require_relative '../../convert/convert'
9
9
 
10
10
  desc 'Convert csv file'
11
11
  command :convert do |c|
12
- c.switch [:h, :header], desc: 'Header row included'
12
+ c.switch [:h, :header], desc: 'Header row included', default_value: true
13
13
  c.flag [:d, :delimiter], type: String, default_value: ','
14
14
 
15
15
  c.action do |global_options, options, args|
@@ -10,11 +10,46 @@ require_relative '../version'
10
10
  module Csv2Psql
11
11
  # Csv2Psql convert module
12
12
  module Convert
13
+ DEFAULT_OPTIONS = {
14
+ delimiter: ',',
15
+ header: true
16
+ }
17
+
13
18
  class << self
19
+ def format_row(row)
20
+ headers = row.headers.map do |h|
21
+ h.downcase.gsub(/\./, '_')
22
+ end
23
+
24
+ values = row.headers.map do |h|
25
+ "'#{row[h]}'"
26
+ end
27
+
28
+ "INSERT INTO aaa(#{headers.join(', ')}) VALUES(#{values.join(', ')});"
29
+ end
30
+
14
31
  def convert(paths, opts = {})
15
32
  paths = [paths] unless paths.is_a?(Array)
16
33
  paths.each do |path|
17
34
  puts "Converting #{path}"
35
+
36
+ header = !opts[:header].nil? ? opts[:header] : DEFAULT_OPTIONS[:header]
37
+ csv_opts = {
38
+ col_sep: opts[:delimiter] || DEFAULT_OPTIONS[:delimiter],
39
+ :headers => header
40
+ }
41
+
42
+ CSV.open(path, 'rt', csv_opts) do |csv|
43
+ csv.each do |row|
44
+ puts format_row(row)
45
+ end
46
+ end
47
+ end
48
+ end
49
+
50
+ def sanitize_header(header)
51
+ header.map do |h|
52
+ h.downcase
18
53
  end
19
54
  end
20
55
  end
@@ -2,5 +2,5 @@
2
2
 
3
3
  # Csv2Psql module
4
4
  module Csv2Psql
5
- VERSION = '0.0.0'
5
+ VERSION = '0.0.1'
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: csv2psql
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.0
4
+ version: 0.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tomas Korcak