gistto 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 +15 -0
- data/.gitignore +17 -0
- data/Gemfile +9 -0
- data/LICENSE +22 -0
- data/README.md +103 -0
- data/Rakefile +1 -0
- data/bin/gistto +6 -0
- data/extras/gistto.bck +3895 -0
- data/extras/gistto.crt +66 -0
- data/gistto.gemspec +20 -0
- data/lib/gistto/client.rb +109 -0
- data/lib/gistto/enhancements/color.rb +42 -0
- data/lib/gistto/enhancements/json.rb +1304 -0
- data/lib/gistto/messages.rb +48 -0
- data/lib/gistto/modules/actions.rb +307 -0
- data/lib/gistto/modules/constants.rb +12 -0
- data/lib/gistto/modules/https.rb +78 -0
- data/lib/gistto/modules/utils.rb +140 -0
- data/lib/gistto/version.rb +3 -0
- data/lib/gistto.rb +9 -0
- metadata +64 -0
data/extras/gistto.crt
ADDED
@@ -0,0 +1,66 @@
|
|
1
|
+
DigiCert Assured ID Root CA
|
2
|
+
===========================
|
3
|
+
-----BEGIN CERTIFICATE-----
|
4
|
+
MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQG
|
5
|
+
EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw
|
6
|
+
IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzEx
|
7
|
+
MTEwMDAwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL
|
8
|
+
ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0Ew
|
9
|
+
ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7cJpSIqvTO
|
10
|
+
9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYPmDI2dsze3Tyoou9q+yHy
|
11
|
+
UmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW
|
12
|
+
/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpy
|
13
|
+
oeb6pNnVFzF1roV9Iq4/AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whf
|
14
|
+
GHdPAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRF
|
15
|
+
66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzANBgkq
|
16
|
+
hkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRCdWKuh+vy1dneVrOfzM4UKLkNl2Bc
|
17
|
+
EkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTffwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38Fn
|
18
|
+
SbNd67IJKusm7Xi+fT8r87cmNW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i
|
19
|
+
8b5QZ7dsvfPxH2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe
|
20
|
+
+o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g==
|
21
|
+
-----END CERTIFICATE-----
|
22
|
+
|
23
|
+
DigiCert Global Root CA
|
24
|
+
=======================
|
25
|
+
-----BEGIN CERTIFICATE-----
|
26
|
+
MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBhMQswCQYDVQQG
|
27
|
+
EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw
|
28
|
+
HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBDQTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAw
|
29
|
+
MDAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3
|
30
|
+
dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkq
|
31
|
+
hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsBCSDMAZOn
|
32
|
+
TjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97nh6Vfe63SKMI2tavegw5
|
33
|
+
BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt43C/dxC//AH2hdmoRBBYMql1GNXRor5H
|
34
|
+
4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7PT19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y
|
35
|
+
7vrTC0LUq7dBMtoM1O/4gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQAB
|
36
|
+
o2MwYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbRTLtm
|
37
|
+
8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUwDQYJKoZIhvcNAQEF
|
38
|
+
BQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/EsrhMAtudXH/vTBH1jLuG2cenTnmCmr
|
39
|
+
EbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIt
|
40
|
+
tep3Sp+dWOIrWcBAI+0tKIJFPnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886
|
41
|
+
UAb3LujEV0lsYSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk
|
42
|
+
CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=
|
43
|
+
-----END CERTIFICATE-----
|
44
|
+
|
45
|
+
DigiCert High Assurance EV Root CA
|
46
|
+
==================================
|
47
|
+
-----BEGIN CERTIFICATE-----
|
48
|
+
MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBsMQswCQYDVQQG
|
49
|
+
EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSsw
|
50
|
+
KQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5jZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAw
|
51
|
+
MFoXDTMxMTExMDAwMDAwMFowbDELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZ
|
52
|
+
MBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFu
|
53
|
+
Y2UgRVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm+9S75S0t
|
54
|
+
Mqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTWPNt0OKRKzE0lgvdKpVMS
|
55
|
+
OO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEMxChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3
|
56
|
+
MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFBIk5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQ
|
57
|
+
NAQTXKFx01p8VdteZOE3hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUe
|
58
|
+
h10aUAsgEsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMB
|
59
|
+
Af8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaAFLE+w2kD+L9HAdSY
|
60
|
+
JhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3NecnzyIZgYIVyHbIUf4KmeqvxgydkAQ
|
61
|
+
V8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6zeM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFp
|
62
|
+
myPInngiK3BD41VHMWEZ71jFhS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkK
|
63
|
+
mNEVX58Svnw2Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe
|
64
|
+
vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep+OkuE6N36B9K
|
65
|
+
-----END CERTIFICATE-----
|
66
|
+
|
data/gistto.gemspec
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'gistto'
|
5
|
+
|
6
|
+
Gem::Specification.new do |gem|
|
7
|
+
gem.name = "gistto"
|
8
|
+
gem.version = Gistto::VERSION
|
9
|
+
gem.license = "MIT"
|
10
|
+
gem.authors = ["erikwco"]
|
11
|
+
gem.email = ["erikchacon@me.com"]
|
12
|
+
gem.description = %q{Gist Client with multiples and suitables functionalities}
|
13
|
+
gem.summary = %q{Gist Client for GitHub}
|
14
|
+
gem.homepage = "https://github.com/erikwco/gistto"
|
15
|
+
|
16
|
+
gem.files = `git ls-files`.split($/)
|
17
|
+
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
18
|
+
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
19
|
+
gem.require_paths = ["lib"]
|
20
|
+
end
|
@@ -0,0 +1,109 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'faraday'
|
3
|
+
require 'optparse'
|
4
|
+
require 'fileutils'
|
5
|
+
require 'tmpdir'
|
6
|
+
require 'json'
|
7
|
+
require 'pp'
|
8
|
+
|
9
|
+
|
10
|
+
module Gistto
|
11
|
+
|
12
|
+
#
|
13
|
+
# Clien todo list
|
14
|
+
# todo: sync, pull and inline update methods
|
15
|
+
#
|
16
|
+
module Client
|
17
|
+
extend self
|
18
|
+
|
19
|
+
#
|
20
|
+
# instance module variables
|
21
|
+
#
|
22
|
+
@temporal_token = nil
|
23
|
+
@options = {}
|
24
|
+
|
25
|
+
def run(*args)
|
26
|
+
#
|
27
|
+
# options definitions and parsing
|
28
|
+
#
|
29
|
+
oparser = OptionParser.new do |option|
|
30
|
+
option.banner = "Usage : gistto [action] [options] [arguments] ... \n" +
|
31
|
+
"* action : \n" +
|
32
|
+
"* config [-n|--new]\n" +
|
33
|
+
"* add [-p|--private] file-path1 file-path2 ... file-pathN\n" +
|
34
|
+
"* get [-o|--open] [-c|--clipboard] [-l|--local] [-s|--show] gist-ID\n" +
|
35
|
+
"* delete gist-ID\n" +
|
36
|
+
"* list \n\n" +
|
37
|
+
"warn: [-l|--local] will overwrite local files without mercy :) \n\n".red
|
38
|
+
# new configuration
|
39
|
+
option.on('-n', '--new', 'Makes a new user configuration') { |n| @options[:new_config] = n }
|
40
|
+
# private gist
|
41
|
+
option.on('-p', '--private', 'Save Gist as private') { |n| @options[:private] = n }
|
42
|
+
# open gist in raw view
|
43
|
+
option.on('-o', '--open', 'Open Gist in browser in raw format') { |n| @options[:open] = n }
|
44
|
+
# copy gist to the clipboard
|
45
|
+
option.on('-c', '--clipboard','Copy Gist to clipboard') { |n| @options[:clipboard] = n }
|
46
|
+
# copy gist file(s) to gistto folder
|
47
|
+
option.on('-l', '--local', 'Copy Gist file(s) to gissto folder') { |n| @options[:local] = n }
|
48
|
+
# show input into screen
|
49
|
+
option.on('-s', '--show', 'Show Gist file(s) in the screen') { |n| @options[:show] = n }
|
50
|
+
# version
|
51
|
+
option.on('-v', '--version', 'Display Gistto current version') do
|
52
|
+
puts Gistto::VERSION
|
53
|
+
exit
|
54
|
+
end
|
55
|
+
# help
|
56
|
+
option.on('-h','--help','Display help screen') do
|
57
|
+
puts @oparser
|
58
|
+
exit
|
59
|
+
end
|
60
|
+
|
61
|
+
end
|
62
|
+
|
63
|
+
#
|
64
|
+
# parsing options
|
65
|
+
#
|
66
|
+
begin
|
67
|
+
oparser.parse!(args)
|
68
|
+
rescue
|
69
|
+
puts oparser
|
70
|
+
exit
|
71
|
+
end
|
72
|
+
|
73
|
+
#
|
74
|
+
# validating args if empty exit
|
75
|
+
#
|
76
|
+
if args.empty?
|
77
|
+
puts oparser
|
78
|
+
exit
|
79
|
+
end
|
80
|
+
|
81
|
+
#
|
82
|
+
# validates params
|
83
|
+
#
|
84
|
+
if !VALID_METHODS.include?(args[0])
|
85
|
+
#puts oparser
|
86
|
+
puts "Not valid method: please run gistto -h"
|
87
|
+
exit
|
88
|
+
end
|
89
|
+
|
90
|
+
#
|
91
|
+
# calling methods
|
92
|
+
#
|
93
|
+
method_to_call = Gistto::Client.method(args[0])
|
94
|
+
if args.size > 1
|
95
|
+
method_to_call.call args.last(args.size - 1)
|
96
|
+
else
|
97
|
+
method_to_call.call
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
end # Module Client
|
102
|
+
|
103
|
+
end # Module Gistto
|
104
|
+
|
105
|
+
|
106
|
+
|
107
|
+
|
108
|
+
|
109
|
+
|
@@ -0,0 +1,42 @@
|
|
1
|
+
class String
|
2
|
+
# colorization
|
3
|
+
def colorize(color_code)
|
4
|
+
"\e[#{color_code}m#{self}\e[0m"
|
5
|
+
end
|
6
|
+
|
7
|
+
def red
|
8
|
+
colorize(31)
|
9
|
+
end
|
10
|
+
|
11
|
+
def green
|
12
|
+
colorize(32)
|
13
|
+
end
|
14
|
+
|
15
|
+
def yellow
|
16
|
+
colorize(33)
|
17
|
+
end
|
18
|
+
|
19
|
+
def pink
|
20
|
+
colorize(35)
|
21
|
+
end
|
22
|
+
|
23
|
+
def black
|
24
|
+
colorize(30)
|
25
|
+
end
|
26
|
+
|
27
|
+
def blue
|
28
|
+
colorize(34)
|
29
|
+
end
|
30
|
+
|
31
|
+
def magenta
|
32
|
+
colorize(35)
|
33
|
+
end
|
34
|
+
|
35
|
+
def cyan
|
36
|
+
colorize(36)
|
37
|
+
end
|
38
|
+
|
39
|
+
def gray
|
40
|
+
colorize(37)
|
41
|
+
end
|
42
|
+
end
|