squib-extensions 0.0.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.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/squib-extensions.rb +33 -0
  3. metadata +43 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 49bc6f3066ce3e582b7ac63407758d6945340333b0b71595dd55db2959f2cf40
4
+ data.tar.gz: 6a7c7741a66ac6b93e08487dfce1c7f4cd1f06e5be11f98c33fb3bceb2df44ed
5
+ SHA512:
6
+ metadata.gz: 4e46225d83d0204ce2fc2a6432e3af4ee05bf515da7b8b93ee81578582d1f591d3afe55b972fb26ed2316906be8e17efa3d6b7c9c4e9e40febc703eb72c6103d
7
+ data.tar.gz: bceccd16c183c3a8d5599758fcd6f113ae4d7ebeeeed30ce5d8079fe46f35f4b2c4ea9fb70045d4204e424a91c82a9156d82e601faad88c5999122f41ae7b3ee
@@ -0,0 +1,33 @@
1
+ require 'uri'
2
+ require 'net/http'
3
+ require 'squib'
4
+
5
+ module Squib
6
+ def gsheet(sheet_id, index=0)
7
+ res = fetch("https://docs.google.com/spreadsheets/d/e/#{sheet_id}/pub?gid=#{index}&output=csv")
8
+
9
+ if res.is_a?(Net::HTTPSuccess)
10
+ data = res.body.force_encoding("utf-8").encode("ascii-8bit")
11
+ puts data
12
+ return Squib.csv data: data
13
+ else
14
+ Squib.logger.error "Unable to fetch google sheet (error #{res.code}). Is '#{uri}' public?"
15
+ end
16
+ end
17
+ module_function :gsheet
18
+
19
+ end
20
+
21
+
22
+ def fetch(uri_str, limit = 10)
23
+ raise ArgumentError, 'Too many redirects' if limit == 0
24
+
25
+ url = URI.parse(uri_str)
26
+ req = Net::HTTP::Get.new(uri_str)
27
+ res = Net::HTTP.start(url.host, url.port, use_ssl: true) { |http| http.request(req) }
28
+ case res
29
+ when Net::HTTPRedirection then fetch(res['location'], limit - 1)
30
+ else
31
+ res
32
+ end
33
+ end
metadata ADDED
@@ -0,0 +1,43 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: squib-extensions
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Rob Newton
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2023-07-20 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: Bonus functionality and shortcuts for working with squib
14
+ email: robert@coinflip.games
15
+ executables: []
16
+ extensions: []
17
+ extra_rdoc_files: []
18
+ files:
19
+ - lib/squib-extensions.rb
20
+ homepage: https://rubygems.org/gems/squib-extensions
21
+ licenses:
22
+ - MIT
23
+ metadata: {}
24
+ post_install_message:
25
+ rdoc_options: []
26
+ require_paths:
27
+ - lib
28
+ required_ruby_version: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ required_rubygems_version: !ruby/object:Gem::Requirement
34
+ requirements:
35
+ - - ">="
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ requirements: []
39
+ rubygems_version: 3.4.10
40
+ signing_key:
41
+ specification_version: 4
42
+ summary: Helper functions for squib
43
+ test_files: []