googlesheets 0.6.1 → 0.6.4

Sign up to get free protection for your applications and to get access to all the features.
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