csvql 0.2.0 → 0.2.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6154147fd2ece48902d1e4494b7d248cd125f9ab
4
- data.tar.gz: 492d8e597c6c1e657b2efdfdadc48f9e4c4e6ad5
3
+ metadata.gz: 878ed2bcc132c4a7d1eef108770fdf7eaf32a0a0
4
+ data.tar.gz: 6623dae499cbb326d08d74906722dd37507ac3ce
5
5
  SHA512:
6
- metadata.gz: 578f5cedc8514c6df4790cfd821b98b075095cce9a6838fc865f8e2d5939864eb1c36151bcd78d6c2ee604ea9263bd56f6552986dde98381f30af8333bd3e624
7
- data.tar.gz: 49956fd0295eaf4d7813038ac4f7ab1b5655c2044ce98d193e5143699850eb40798a0a28d11b4d1771b47987351ebea57b86b5fed96c15c7bb923cfe0bd42487
6
+ metadata.gz: 2bd0cfbe691654236fe9c4c7c29fe258ceddf9909dac8ab94f54a72ff584dafd95da440d0d3e0291d508233869c7a57b3b2f667b1aa1a14c1a30e684bf85fe6b
7
+ data.tar.gz: 82de714a1dcad79f54c41aeaacb0f19a0980054d875f63688a31c658662a21d68bff7942926fcf46fc08f91964563fc6c72c15ab45f5cb00d79bbe3deb49b5da
data/lib/csvql.rb CHANGED
@@ -10,13 +10,12 @@ require "csvql/version"
10
10
  module Csvql
11
11
  class << self
12
12
  def option_parse(argv)
13
- opt = OptionParser.new
13
+ opt = OptionParser.new("Usage: csvql [csvfile] [options]")
14
14
  option = {}
15
15
 
16
16
  # default
17
17
  option[:header] = true
18
18
 
19
- opt.banner = "Usage: csvql [csvfile] [options]"
20
19
  opt.on("--console", "After all commands are run, open sqlite3 console with this data") {|v| option[:console] = v }
21
20
  opt.on("--[no-]header", "Treat file as having the first row as a header row") {|v| option[:header] = v }
22
21
  opt.on('--output-dlm="|"', "Output delimiter (|)") {|v| option[:output_dlm] = v }
@@ -27,6 +26,7 @@ module Csvql
27
26
  opt.on("--sql=SQL", "SQL Command(s) to run on the data") {|v| option[:sql] = v }
28
27
  opt.on("--select=COLUMN", "Select column (*)") {|v| option[:select] = v }
29
28
  opt.on("--schema=FILE or STRING", "Specify a table schema") {|v| option[:schema] = v }
29
+ opt.on("--strip", "strip every column data") {|v| option[:strip] = v }
30
30
  opt.on("--where=COND", "Where clause") {|v| option[:where] = v }
31
31
  opt.on("--table-name=NAME", "Override the default table name (tbl)") {|v| option[:table_name] = v }
32
32
  opt.on("--verbose", "Enable verbose logging") {|v| option[:verbose] = v }
@@ -88,6 +88,7 @@ module Csvql
88
88
  next if line.size == 0
89
89
  next if option[:skip_comment] && line.start_with?("#")
90
90
  row = line.parse_csv
91
+ row.map!(&:strip) if option[:strip]
91
92
  tbl.insert(row, i)
92
93
  end
93
94
  tbl.exec("COMMIT TRANSACTION")
data/lib/csvql/csvql.rb CHANGED
@@ -21,13 +21,11 @@ module Csvql
21
21
  @col_name = schema.split(",").map {|c| c.split.first.strip }
22
22
  @col_size = @col_name.size
23
23
  @table_name = table_name
24
- sql = "CREATE TABLE IF NOT EXISTS #{@table_name} (#{schema})"
25
- @db.execute(sql)
24
+ exec "CREATE TABLE IF NOT EXISTS #{@table_name} (#{schema})"
26
25
  end
27
26
 
28
27
  def drop_table(table_name="tbl")
29
- sql = "DROP TABLE IF EXISTS #{table_name}"
30
- @db.execute(sql)
28
+ exec "DROP TABLE IF EXISTS #{table_name}"
31
29
  end
32
30
 
33
31
  def prepare(cols)
data/lib/csvql/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Csvql
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.1"
3
3
  end
data/spec/csvql_spec.rb CHANGED
@@ -47,10 +47,39 @@ EOL
47
47
 
48
48
  it 'change table name' do
49
49
  expect(capture {
50
- Csvql.run([csvfile, "--sql", "select id,name from user_info where id >= 4", "--table-name", "user_info"])
50
+ Csvql.run([csvfile, "--sql", "select id,name from users where id >= 4", "--table-name", "users"])
51
51
  }).to eq(<<EOL)
52
52
  4|Daniel
53
53
  5|Edward
54
+ EOL
55
+ end
56
+
57
+ it 'save-to db file' do
58
+ dbfile = "csvql_test.db"
59
+ Csvql.run([csvfile, "--save-to", dbfile])
60
+ expect(`sqlite3 #{dbfile} "select * from tbl"`).to eq(<<EOL)
61
+ 1|Anne|33
62
+ 2|Bob|25
63
+ 3|Charry|48
64
+ 4|Daniel|16
65
+ 5|Edward|52
66
+ EOL
67
+ File.delete dbfile
68
+ end
69
+
70
+ it 'no header' do
71
+ expect(capture {
72
+ Csvql.run([csvfile, "--no-header", "--where", "typeof(c0)!='integer'"])
73
+ }).to eq(<<EOL)
74
+ id|name|age
75
+ EOL
76
+ end
77
+
78
+ it 'source option' do
79
+ expect(capture {
80
+ Csvql.run(["--source", csvfile, "--select", "count(*)"])
81
+ }).to eq(<<EOL)
82
+ 5
54
83
  EOL
55
84
  end
56
85
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: csvql
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - YANO Satoru
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-14 00:00:00.000000000 Z
11
+ date: 2014-07-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sqlite3
@@ -75,3 +75,4 @@ test_files:
75
75
  - spec/csvql_spec.rb
76
76
  - spec/sample.csv
77
77
  - spec/spec_helper.rb
78
+ has_rdoc: