haste 0.2.2 → 0.3.0
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 +5 -5
- data/lib/haste/cli.rb +8 -6
- data/lib/haste/uploader.rb +47 -9
- data/lib/haste/version.rb +1 -3
- metadata +9 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 4cc8bef048fb30c944bfbcdac49747d5628bde679d6d0c75651c71ef83c29e54
|
4
|
+
data.tar.gz: ab3fe8bfea6e0e4d4c0ab2f5d490f4bc7dc97c948b40f053c80d1ce447a998fd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 331cf67f756c7384644f4d00c8877e1d611cfe1187e40ed877d1babba413f4dea50e70f1352409b40613eb1af7ebfcad2761b7e145438c6e4c3382d3e9d6c9be
|
7
|
+
data.tar.gz: 5ddc100be5baa4c28f0acdb5eea37fe12cd2fe6fe052df246ad8a61767a11e728d62942dc1d70ccf1a38ba3414e663a7ef942fb8f78de2fc53f0a76248dc5e44
|
data/lib/haste/cli.rb
CHANGED
@@ -4,7 +4,13 @@ module Haste
|
|
4
4
|
|
5
5
|
# Create a new uploader
|
6
6
|
def initialize
|
7
|
-
@uploader = Uploader.new
|
7
|
+
@uploader = Uploader.new(
|
8
|
+
ENV['HASTE_SERVER'],
|
9
|
+
ENV['HASTE_SERVER_TOKEN'],
|
10
|
+
ENV['HASTE_SHARE_SERVER'],
|
11
|
+
ENV['HASTE_USER'],
|
12
|
+
ENV['HASTE_PASS'],
|
13
|
+
ENV['HASTE_SSL_CERTS'])
|
8
14
|
end
|
9
15
|
|
10
16
|
# And then handle the basic usage
|
@@ -16,11 +22,7 @@ module Haste
|
|
16
22
|
key = @uploader.upload_raw STDIN.readlines.join
|
17
23
|
end
|
18
24
|
# Put together a URL
|
19
|
-
|
20
|
-
url = "#{@uploader.server_url}/raw/#{key}"
|
21
|
-
else
|
22
|
-
url = "#{@uploader.server_url}/#{key}"
|
23
|
-
end
|
25
|
+
url = "#{@uploader.share_server_url}/share/#{key}"
|
24
26
|
# And write data out
|
25
27
|
if STDOUT.tty?
|
26
28
|
STDOUT.puts url
|
data/lib/haste/uploader.rb
CHANGED
@@ -1,18 +1,30 @@
|
|
1
1
|
require 'json'
|
2
2
|
require 'faraday'
|
3
|
+
require 'uri'
|
3
4
|
|
4
5
|
module Haste
|
5
6
|
|
6
|
-
|
7
|
+
DEFAULT_SERVER_URL = 'https://hastebin.com'
|
8
|
+
DEFAULT_SHARE_SERVER_URL = 'https://hastebin.com'
|
7
9
|
|
8
10
|
class Uploader
|
9
11
|
|
10
|
-
attr_reader :server_url
|
12
|
+
attr_reader :server_url, :server_token, :share_server_url, :server_user, :server_pass, :ssl_certs
|
11
13
|
|
12
|
-
def initialize(server_url = nil)
|
13
|
-
@server_url = server_url || Haste::
|
14
|
-
@
|
15
|
-
|
14
|
+
def initialize(server_url = nil, server_token = nil, share_server_url = nil, server_user = nil, server_pass = nil, ssl_certs = nil)
|
15
|
+
@server_url = generate_url(server_url || Haste::DEFAULT_SERVER_URL)
|
16
|
+
@share_server_url = generate_url(share_server_url || Haste::DEFAULT_SHARE_SERVER_URL)
|
17
|
+
|
18
|
+
@server_user = server_user
|
19
|
+
@server_token = server_token
|
20
|
+
@server_pass = server_pass
|
21
|
+
@ssl_certs = ssl_certs
|
22
|
+
end
|
23
|
+
|
24
|
+
def generate_url(url)
|
25
|
+
url = url.dup
|
26
|
+
url = url.chop if url.end_with?('/')
|
27
|
+
return url
|
16
28
|
end
|
17
29
|
|
18
30
|
# Take in a path and return a key
|
@@ -40,16 +52,42 @@ module Haste
|
|
40
52
|
|
41
53
|
private
|
42
54
|
|
55
|
+
def post_path
|
56
|
+
parsed_uri = URI.parse(server_url)
|
57
|
+
"#{parsed_uri.path}/documents"
|
58
|
+
end
|
59
|
+
|
43
60
|
def do_post(data)
|
44
|
-
connection.post(
|
61
|
+
connection.post(post_path, data)
|
45
62
|
end
|
46
63
|
|
47
64
|
def connection
|
48
|
-
@connection ||=
|
49
|
-
|
65
|
+
@connection ||= connection_set
|
66
|
+
end
|
67
|
+
|
68
|
+
def connection_set
|
69
|
+
return connection_https if @ssl_certs
|
70
|
+
connection_http
|
71
|
+
end
|
72
|
+
|
73
|
+
def connection_http
|
74
|
+
Faraday.new(:url => server_url) do |c|
|
75
|
+
connection_config(c)
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
def connection_https
|
80
|
+
Faraday.new(:url => server_url, :ssl => { :ca_path => @ssl_certs }) do |c|
|
81
|
+
connection_config(c)
|
50
82
|
end
|
51
83
|
end
|
52
84
|
|
85
|
+
def connection_config(config)
|
86
|
+
config.request :authorization, 'Bearer', @server_token if @server_token
|
87
|
+
config.basic_auth(@server_user, @server_pass) if @server_user
|
88
|
+
config.adapter Faraday.default_adapter
|
89
|
+
end
|
90
|
+
|
53
91
|
def fail_with(msg)
|
54
92
|
raise Exception.new(msg)
|
55
93
|
end
|
data/lib/haste/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: haste
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
8
|
-
autorequire:
|
7
|
+
- Toptal
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-02-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -53,7 +53,7 @@ dependencies:
|
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0.9'
|
55
55
|
description: CLI Haste Client
|
56
|
-
email:
|
56
|
+
email: open-source@toptal.com
|
57
57
|
executables:
|
58
58
|
- haste
|
59
59
|
extensions: []
|
@@ -66,11 +66,11 @@ files:
|
|
66
66
|
- lib/haste/uploader.rb
|
67
67
|
- lib/haste/version.rb
|
68
68
|
- spec/spec_helper.rb
|
69
|
-
homepage: https://github.com/
|
69
|
+
homepage: https://github.com/toptal/haste-client
|
70
70
|
licenses:
|
71
71
|
- MIT License
|
72
72
|
metadata: {}
|
73
|
-
post_install_message:
|
73
|
+
post_install_message:
|
74
74
|
rdoc_options: []
|
75
75
|
require_paths:
|
76
76
|
- lib
|
@@ -85,9 +85,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
85
85
|
- !ruby/object:Gem::Version
|
86
86
|
version: '0'
|
87
87
|
requirements: []
|
88
|
-
|
89
|
-
|
90
|
-
signing_key:
|
88
|
+
rubygems_version: 3.3.26
|
89
|
+
signing_key:
|
91
90
|
specification_version: 4
|
92
91
|
summary: Haste Client
|
93
92
|
test_files:
|