googlesheets 0.6.4 → 0.8.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +0 -2
- data/bin/shat +19 -5
- data/lib/googlesheets.rb +8 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a378458e86791442a1e6b45251b8e4dab9197de444176c466d169fed24069659
|
4
|
+
data.tar.gz: 1033e1300425d32aa74aec56246e5ead5ce52bead75ff1a91b6a34cab914b2ab
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 95ca848033baeed961898db87d52f2a21658a0aa67a722ded7226a37dfd5510fe359f4068247765263f03f1a1cab37bfa7cb22759111bcfca8d9286b4cab0e5c
|
7
|
+
data.tar.gz: bba5b7cc4f3c0bd64780fc88f615661bc76eef80e7f60247988ffc7d9f6d478bbc17fc348b58403a3205b2765174b8fb9544c72ce0355ea0e208f2f8ea1f3fed
|
data/README.md
CHANGED
data/bin/shat
CHANGED
@@ -16,11 +16,16 @@ trap("INT" ) { abort "\n" }
|
|
16
16
|
OptionParser.new.instance_eval do
|
17
17
|
@banner = "usage: #{program_name} [options] <url>"
|
18
18
|
|
19
|
-
on "-f", "--fill"
|
20
|
-
on "-h", "--help"
|
21
|
-
on "-
|
22
|
-
on "-v", "--version"
|
19
|
+
on "-f", "--fill" , "Fill each row with as many cells as the first row"
|
20
|
+
on "-h", "--help" , "Show help and command usage" do Kernel.abort to_s; end
|
21
|
+
on "-s", "--strip" , "Strip leading and trailing whitespace"
|
22
|
+
on "-v", "--version", "Show version number" do Kernel.abort "#{program_name} #{GoogleSheets::VERSION}"; end
|
23
23
|
|
24
|
+
on "--csv" , "Output comma separated data (default)"
|
25
|
+
on "--psv" , "Output pipe separated data"
|
26
|
+
on "--tsv" , "Output tab separated data"
|
27
|
+
|
28
|
+
Kernel.abort to_s if ARGV.empty?
|
24
29
|
self
|
25
30
|
end.parse!(into: opts={}) rescue abort($!.message)
|
26
31
|
|
@@ -28,6 +33,15 @@ fill = opts[:fill]
|
|
28
33
|
link = ARGV.shift or abort("no url provided")
|
29
34
|
trim = opts[:trim]
|
30
35
|
|
36
|
+
# handle separators
|
37
|
+
xcsv = opts[:csv ]
|
38
|
+
xpsv = opts[:psv ]
|
39
|
+
xtsv = opts[:tsv ]
|
40
|
+
hits = [xcsv, xpsv, xtsv].compact.size
|
41
|
+
hits > 1 and abort "only one of csv, psv, or tsv allowed"
|
42
|
+
xcsv = true if hits.zero?
|
43
|
+
seps = xtsv ? "\t" : xpsv ? "|" : ","
|
44
|
+
|
31
45
|
goog = GoogleSheets.new(link)
|
32
46
|
rows = goog.sheet_read
|
33
47
|
rows.each {|cols| cols.map(&:strip!) } if trim
|
@@ -41,4 +55,4 @@ if fill and need = rows[0]&.size
|
|
41
55
|
end
|
42
56
|
end
|
43
57
|
|
44
|
-
Censive.writer {|csv| rows.each {|row| csv << row }}
|
58
|
+
Censive.writer(seps: seps) {|csv| rows.each {|row| csv << row }}
|
data/lib/googlesheets.rb
CHANGED
@@ -19,7 +19,7 @@ class Object
|
|
19
19
|
end
|
20
20
|
|
21
21
|
class GoogleSheets
|
22
|
-
VERSION = "0.
|
22
|
+
VERSION = "0.8.0"
|
23
23
|
|
24
24
|
attr_accessor :api
|
25
25
|
|
@@ -31,6 +31,13 @@ class GoogleSheets
|
|
31
31
|
@json = opts[:credentials] || "credentials.json"
|
32
32
|
@yaml = opts[:token ] || "token.yaml"
|
33
33
|
|
34
|
+
if !File.exist?(@json)
|
35
|
+
base = File.expand_path(File.join(ENV["HOME"], ".google"))
|
36
|
+
abort "unable to file Google API credentials" unless File.exist?(base)
|
37
|
+
@json = File.join(base, @json)
|
38
|
+
@yaml = File.join(base, @yaml)
|
39
|
+
end
|
40
|
+
|
34
41
|
if opts[:debug] == true
|
35
42
|
$stdout.sync = true
|
36
43
|
Google::Apis.logger = Logger.new(STDERR)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: googlesheets
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Steve Shreeve
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-04-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: google-api-client
|
@@ -56,7 +56,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
56
56
|
- !ruby/object:Gem::Version
|
57
57
|
version: '0'
|
58
58
|
requirements: []
|
59
|
-
rubygems_version: 3.4.
|
59
|
+
rubygems_version: 3.4.9
|
60
60
|
signing_key:
|
61
61
|
specification_version: 4
|
62
62
|
summary: Ruby library for Google Sheets
|