googlesheets 0.6.1 → 0.6.4

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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/bin/shat +44 -0
  3. data/lib/googlesheets.rb +8 -1
  4. metadata +4 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e6a26194973635e4ea51c7926c8cd03f900855b5c1776f517b0bbec78ac2b375
4
- data.tar.gz: 801e67399e5c075742fe11913e6c9d996eb32f6fca24d7617fd4dfc17c2984e5
3
+ metadata.gz: 52c14fb11d7e85e0466fa150a46b7403bfba5f4693e7332130536e60082c62c1
4
+ data.tar.gz: f487d35ebd512ecec19676c08471bc6f7155e6e937dc2dc5106b1e5e99569402
5
5
  SHA512:
6
- metadata.gz: fd5432ce50b9d6528b444db90beda6d4b561b3b430fc8cac3a07dd3b4b3d8417f1fbdd84ff58ec18b19d8b3c520644febace35b3610b32e6c9a661abe615ec53
7
- data.tar.gz: c2019272c6b2a079a33d1d6a831f2692ae6da0a195a46728a04524df742053e2691b3587ce01f3c01ef334fb44fe4314814950525c3f2bcdd3697f4b1dade097
6
+ metadata.gz: 5ff5b9ef469d0822e598e72ad9a3eb557f913d8f50c48f23d60169092c14cfff1edf1473470ec0bf169d4ebbd4050f87e8114dab38d711789093111d1ecd7c96
7
+ data.tar.gz: fab7b3b54481bbef23d835bd4b887247badb779bf3b373cbe90ac1652a873a32ca78c3bb1b9086af38c1a3d91e61335ed8224626b10339d53dc403ec3ebaf90c
data/bin/shat ADDED
@@ -0,0 +1,44 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ STDOUT.sync = true
4
+
5
+ begin
6
+ require "censive"
7
+ rescue LoadError
8
+ abort "#{File.basename($0)} needs another gem, run 'gem install censive'"
9
+ end
10
+
11
+ require "googlesheets"
12
+ require "optparse"
13
+
14
+ trap("INT" ) { abort "\n" }
15
+
16
+ OptionParser.new.instance_eval do
17
+ @banner = "usage: #{program_name} [options] <url>"
18
+
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 "-t", "--trim" , "Trim leading and trailing whitespace"
22
+ on "-v", "--version" , "Show version number" do Kernel.abort "#{program_name} #{GoogleSheets::VERSION}"; end
23
+
24
+ self
25
+ end.parse!(into: opts={}) rescue abort($!.message)
26
+
27
+ fill = opts[:fill]
28
+ link = ARGV.shift or abort("no url provided")
29
+ trim = opts[:trim]
30
+
31
+ goog = GoogleSheets.new(link)
32
+ rows = goog.sheet_read
33
+ rows.each {|cols| cols.map(&:strip!) } if trim
34
+
35
+ if fill and need = rows[0]&.size
36
+ rows.each_with_index do |cols, i|
37
+ if (size = cols.size) != need
38
+ abort "row #{i + 1} has more columns than the header row" if size > need
39
+ cols.concat(Array.new(need - size, ""))
40
+ end
41
+ end
42
+ end
43
+
44
+ Censive.writer {|csv| rows.each {|row| csv << row }}
data/lib/googlesheets.rb CHANGED
@@ -11,8 +11,15 @@ require "google/apis/sheets_v4"
11
11
  require "googleauth"
12
12
  require "googleauth/stores/file_token_store"
13
13
 
14
+ class Object
15
+ def blank?
16
+ respond_to?(:empty?) or return !self
17
+ empty? or respond_to?(:strip) && strip.empty?
18
+ end unless defined? blank?
19
+ end
20
+
14
21
  class GoogleSheets
15
- VERSION = "0.6.1"
22
+ VERSION = "0.6.4"
16
23
 
17
24
  attr_accessor :api
18
25
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: googlesheets
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.1
4
+ version: 0.6.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Steve Shreeve
@@ -26,13 +26,15 @@ dependencies:
26
26
  version: 0.53.0
27
27
  description: This gem allows easy access to Google Sheets API V4.
28
28
  email: steve.shreeve@gmail.com
29
- executables: []
29
+ executables:
30
+ - shat
30
31
  extensions: []
31
32
  extra_rdoc_files: []
32
33
  files:
33
34
  - Gemfile
34
35
  - LICENSE
35
36
  - README.md
37
+ - bin/shat
36
38
  - googlesheets.gemspec
37
39
  - lib/googlesheets.rb
38
40
  homepage: https://github.com/shreeve/googlesheets