gist_nuke 0.0.1 → 0.0.2
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/bin/gist_nuke +29 -0
- data/lib/gist_nuke.rb +36 -21
- metadata +9 -12
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
MWVhYmRkOTRjMGY2NTUxMjI4MzVmNmNhMWY1YzU4ZjQ2MzQzZDNiZg==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
NzA0MTZmZWUxODIzNGFiMDY0MTRiOTZjODA0MGNiOTZmOTY1Y2U1Mw==
|
7
|
+
!binary "U0hBNTEy":
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
MjNmMjE2MGU2YjU2OWMxZDIwZjg5MTk1YjEyOWFlN2FkYmY3MGI2YmMxZWY3
|
10
|
+
ZjU3OTBhZDEzN2NlZGFmZGVkODk0YjEwZTcxZmRjOTFjZjVlZTBkNmM2MGQ0
|
11
|
+
NGYwNjgwYjg4MDM3YzM0ZGMxODllZWVjOTBmZjIzZWFmODEwNmQ=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
MjE3NDllNjRmZTg4OWJhOTg2NjQ1NmRhNTlmMzhiYThhZGFjZGRlZDc0ZDFi
|
14
|
+
MjA1OWEwNWY2NDU0NmVhM2QzNTRiZWI5YThmYzMxMjNiMTZiYTBkN2ZhYTdi
|
15
|
+
YmEwNTFlZTY4YjYxZTVhYTRkOGRiYWJiZmNhZDUyZmRlYjc4YjI=
|
data/bin/gist_nuke
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'gist_nuke'
|
2
|
+
require 'optparse'
|
3
|
+
|
4
|
+
#!/usr/bin/env ruby
|
5
|
+
options = {}
|
6
|
+
|
7
|
+
opts_parser = OptionParser.new do |opt|
|
8
|
+
opt.banner = <<-HELP
|
9
|
+
There are quite a few wonderful options that you can run. I will update this help
|
10
|
+
text more once I have actually filled them in
|
11
|
+
HELP
|
12
|
+
|
13
|
+
opt.on("--login", "Let's get you all Authed") do
|
14
|
+
GistNuke.login
|
15
|
+
exit
|
16
|
+
end
|
17
|
+
|
18
|
+
opt.on("--list", "Let's list these gists out") do
|
19
|
+
GistNuke.login unless GistNuke.token_from_file
|
20
|
+
GistNuke.load_gists
|
21
|
+
end
|
22
|
+
|
23
|
+
opt.on("--deleterange range", "This is going to delete a range", Array) do |range|
|
24
|
+
GistNuke.login unless GistNuke.token_from_file
|
25
|
+
GistNuke.delete_range(range)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
opts_parser.parse!
|
data/lib/gist_nuke.rb
CHANGED
@@ -22,10 +22,11 @@ module GistNuke
|
|
22
22
|
end
|
23
23
|
|
24
24
|
puts ""
|
25
|
-
|
25
|
+
token = get_github_token(credentials)
|
26
|
+
save_auth_token(token)
|
26
27
|
end
|
27
28
|
|
28
|
-
def
|
29
|
+
def get_github_token(credentials = {})
|
29
30
|
uri = URI(BASE_URL + AUTH_EXT)
|
30
31
|
req = Net::HTTP::Post.new(uri.path)
|
31
32
|
req.content_type = "application/json"
|
@@ -41,18 +42,25 @@ module GistNuke
|
|
41
42
|
http.request(req)
|
42
43
|
end
|
43
44
|
|
44
|
-
|
45
|
+
JSON.parse(res.body)['token']
|
45
46
|
end
|
46
47
|
|
47
|
-
def
|
48
|
-
|
48
|
+
def token_from_file
|
49
|
+
if File.exists?('.gist_nuke')
|
50
|
+
File.read('.gist_nuke')
|
51
|
+
else
|
52
|
+
false
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
def save_auth_token(token)
|
49
57
|
File.open(".gist_nuke", "w+") do |file|
|
50
58
|
file.write(token)
|
51
59
|
end
|
52
60
|
end
|
53
61
|
|
54
|
-
def load_gists(page_number =
|
55
|
-
token =
|
62
|
+
def load_gists(page_number = 1)
|
63
|
+
token = token_from_file
|
56
64
|
uri = URI("#{BASE_URL}gists?access_token=#{token}&page=#{page_number}")
|
57
65
|
Net::HTTP.start(uri.host, uri.port,
|
58
66
|
:use_ssl => uri.scheme == 'https') do |http|
|
@@ -60,32 +68,39 @@ module GistNuke
|
|
60
68
|
|
61
69
|
response = http.request(request)
|
62
70
|
|
63
|
-
|
64
|
-
|
65
|
-
just_keys(gist_hash)
|
71
|
+
JSON.parse(response.body)
|
66
72
|
end
|
67
73
|
end
|
68
74
|
|
69
|
-
def just_keys(
|
70
|
-
|
75
|
+
def just_keys(gists = [])
|
76
|
+
gists.map { |g| g['id'] }
|
77
|
+
end
|
71
78
|
|
72
|
-
|
73
|
-
|
74
|
-
|
79
|
+
def gather_pages(range)
|
80
|
+
keys = []
|
81
|
+
page_number = 1
|
82
|
+
last_page = false
|
75
83
|
|
76
|
-
|
84
|
+
until keys.length >= range.last || last_page
|
85
|
+
to_append = just_keys(load_gists(page_number))
|
86
|
+
last_page = to_append.empty?
|
87
|
+
keys += to_append
|
88
|
+
page_number += 1
|
89
|
+
end
|
90
|
+
keys
|
77
91
|
end
|
78
92
|
|
79
93
|
def delete_range(numbers = [])
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
94
|
+
numbers = numbers.map { |num| num.to_i }
|
95
|
+
range = (numbers[0]..numbers[-1])
|
96
|
+
list = gather_pages(range)
|
97
|
+
list[range]
|
98
|
+
construct_hydra(list[range])
|
84
99
|
@batch.run
|
85
100
|
end
|
86
101
|
|
87
102
|
def construct_hydra(range)
|
88
|
-
t =
|
103
|
+
t = token_from_file
|
89
104
|
@batch = Typhoeus::Hydra.new
|
90
105
|
range.map { |gist_id| @batch.queue(Typhoeus::Request.new("#{BASE_URL}gists/#{gist_id}?access_token=#{t}",
|
91
106
|
method: :delete))}
|
metadata
CHANGED
@@ -1,20 +1,19 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gist_nuke
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.2
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- zachgersh
|
8
|
+
- joeyschoblaska
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-09-09 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: typhoeus
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
17
|
requirements:
|
19
18
|
- - ~>
|
20
19
|
- !ruby/object:Gem::Version
|
@@ -22,7 +21,6 @@ dependencies:
|
|
22
21
|
type: :runtime
|
23
22
|
prerelease: false
|
24
23
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
24
|
requirements:
|
27
25
|
- - ~>
|
28
26
|
- !ruby/object:Gem::Version
|
@@ -30,7 +28,6 @@ dependencies:
|
|
30
28
|
- !ruby/object:Gem::Dependency
|
31
29
|
name: vcr
|
32
30
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
31
|
requirements:
|
35
32
|
- - ~>
|
36
33
|
- !ruby/object:Gem::Version
|
@@ -38,41 +35,41 @@ dependencies:
|
|
38
35
|
type: :development
|
39
36
|
prerelease: false
|
40
37
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
38
|
requirements:
|
43
39
|
- - ~>
|
44
40
|
- !ruby/object:Gem::Version
|
45
41
|
version: 2.5.0
|
46
42
|
description: A great way to clean up your github gist profile
|
47
43
|
email: zachgersh@gmail.com
|
48
|
-
executables:
|
44
|
+
executables:
|
45
|
+
- gist_nuke
|
49
46
|
extensions: []
|
50
47
|
extra_rdoc_files: []
|
51
48
|
files:
|
52
49
|
- lib/gist_nuke.rb
|
50
|
+
- bin/gist_nuke
|
53
51
|
homepage: http://zachgersh.github.io
|
54
52
|
licenses:
|
55
53
|
- MIT
|
54
|
+
metadata: {}
|
56
55
|
post_install_message:
|
57
56
|
rdoc_options: []
|
58
57
|
require_paths:
|
59
58
|
- lib
|
60
59
|
required_ruby_version: !ruby/object:Gem::Requirement
|
61
|
-
none: false
|
62
60
|
requirements:
|
63
61
|
- - ! '>='
|
64
62
|
- !ruby/object:Gem::Version
|
65
63
|
version: '0'
|
66
64
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
67
|
-
none: false
|
68
65
|
requirements:
|
69
66
|
- - ! '>='
|
70
67
|
- !ruby/object:Gem::Version
|
71
68
|
version: '0'
|
72
69
|
requirements: []
|
73
70
|
rubyforge_project:
|
74
|
-
rubygems_version:
|
71
|
+
rubygems_version: 2.0.7
|
75
72
|
signing_key:
|
76
|
-
specification_version:
|
73
|
+
specification_version: 4
|
77
74
|
summary: Batch deletion of gists
|
78
75
|
test_files: []
|