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.
- checksums.yaml +7 -0
- data/lib/squib-extensions.rb +33 -0
- 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: []
|