jist 0.7.1 → 0.8.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.
- data/bin/jist +3 -0
- data/lib/jist.rb +19 -5
- metadata +33 -50
data/bin/jist
CHANGED
data/lib/jist.rb
CHANGED
@@ -5,7 +5,10 @@ require 'json'
|
|
5
5
|
# It just gists.
|
6
6
|
module Jist
|
7
7
|
|
8
|
-
VERSION = '0.
|
8
|
+
VERSION = '0.8.0'
|
9
|
+
|
10
|
+
# Exception tag for errors raised while gisting.
|
11
|
+
module Error; end
|
9
12
|
|
10
13
|
module_function
|
11
14
|
# Upload a gist to https://gist.github.com
|
@@ -20,7 +23,7 @@ module Jist
|
|
20
23
|
# @option options [String] :update the URL or id of a gist to update
|
21
24
|
#
|
22
25
|
# @return [Hash] the decoded JSON response from the server
|
23
|
-
# @raise [
|
26
|
+
# @raise [Jist::Error] if something went wrong
|
24
27
|
#
|
25
28
|
# @see http://developer.github.com/v3/gists/
|
26
29
|
def gist(content, options = {})
|
@@ -39,7 +42,7 @@ module Jist
|
|
39
42
|
# @option options [String] :update the URL or id of a gist to update
|
40
43
|
#
|
41
44
|
# @return [Hash] the decoded JSON response from the server
|
42
|
-
# @raise [
|
45
|
+
# @raise [Jist::Error] if something went wrong
|
43
46
|
#
|
44
47
|
# @see http://developer.github.com/v3/gists/
|
45
48
|
def multi_gist(files, options={})
|
@@ -50,6 +53,7 @@ module Jist
|
|
50
53
|
json[:files] = {}
|
51
54
|
|
52
55
|
files.each_pair do |(name, content)|
|
56
|
+
raise "Cannot gist empty files" if content.to_s.strip == ""
|
53
57
|
json[:files][File.basename(name)] = {:content => content}
|
54
58
|
end
|
55
59
|
|
@@ -68,14 +72,19 @@ module Jist
|
|
68
72
|
if Net::HTTPSuccess === response
|
69
73
|
JSON.parse(response.body)
|
70
74
|
else
|
71
|
-
raise
|
75
|
+
raise "Got #{response.class} from gist: #{response.body}"
|
72
76
|
end
|
77
|
+
rescue => e
|
78
|
+
raise e.extend Error
|
73
79
|
end
|
74
80
|
|
75
81
|
# Log the user into jist.
|
76
82
|
#
|
77
83
|
# This method asks the user for a username and password, and tries to obtain
|
78
84
|
# and OAuth2 access token, which is then stored in ~/.jist
|
85
|
+
#
|
86
|
+
# @raise [Jist::Error] if something went wrong
|
87
|
+
# @see http://developer.github.com/v3/oauth/
|
79
88
|
def login!
|
80
89
|
puts "Obtaining OAuth2 access_token from github."
|
81
90
|
print "Github username: "
|
@@ -105,8 +114,10 @@ module Jist
|
|
105
114
|
end
|
106
115
|
puts "Success! https://github.com/settings/applications"
|
107
116
|
else
|
108
|
-
raise
|
117
|
+
raise "Got #{response.class} from gist: #{response.body}"
|
109
118
|
end
|
119
|
+
rescue => e
|
120
|
+
raise e.extend Error
|
110
121
|
end
|
111
122
|
|
112
123
|
private
|
@@ -120,9 +131,12 @@ module Jist
|
|
120
131
|
connection = Net::HTTP.new("api.github.com", 443)
|
121
132
|
connection.use_ssl = true
|
122
133
|
connection.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
134
|
+
connection.open_timeout = 5
|
123
135
|
connection.read_timeout = 10
|
124
136
|
connection.start do |http|
|
125
137
|
http.request request
|
126
138
|
end
|
139
|
+
rescue Timeout::Error
|
140
|
+
raise "Could not connect to https://api.github.com/"
|
127
141
|
end
|
128
142
|
end
|
metadata
CHANGED
@@ -1,80 +1,63 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: jist
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.8.0
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 7
|
9
|
-
- 1
|
10
|
-
version: 0.7.1
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Conrad Irwin
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2012-07-01 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
21
15
|
name: json
|
22
|
-
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
24
17
|
none: false
|
25
|
-
requirements:
|
26
|
-
- -
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
|
29
|
-
segments:
|
30
|
-
- 0
|
31
|
-
version: "0"
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
32
22
|
type: :runtime
|
33
|
-
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
34
30
|
description: Provides a single function (Jist.gist) that uploads a gist.
|
35
31
|
email: conrad.irwin@gmail.com
|
36
|
-
executables:
|
32
|
+
executables:
|
37
33
|
- jist
|
38
34
|
extensions: []
|
39
|
-
|
40
35
|
extra_rdoc_files: []
|
41
|
-
|
42
|
-
files:
|
36
|
+
files:
|
43
37
|
- lib/jist.rb
|
44
38
|
- bin/jist
|
45
39
|
homepage: https://github.com/ConradIrwin/jist
|
46
40
|
licenses: []
|
47
|
-
|
48
41
|
post_install_message:
|
49
42
|
rdoc_options: []
|
50
|
-
|
51
|
-
require_paths:
|
43
|
+
require_paths:
|
52
44
|
- lib
|
53
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
45
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
54
46
|
none: false
|
55
|
-
requirements:
|
56
|
-
- -
|
57
|
-
- !ruby/object:Gem::Version
|
58
|
-
|
59
|
-
|
60
|
-
- 0
|
61
|
-
version: "0"
|
62
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
47
|
+
requirements:
|
48
|
+
- - ! '>='
|
49
|
+
- !ruby/object:Gem::Version
|
50
|
+
version: '0'
|
51
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
63
52
|
none: false
|
64
|
-
requirements:
|
65
|
-
- -
|
66
|
-
- !ruby/object:Gem::Version
|
67
|
-
|
68
|
-
segments:
|
69
|
-
- 0
|
70
|
-
version: "0"
|
53
|
+
requirements:
|
54
|
+
- - ! '>='
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: '0'
|
71
57
|
requirements: []
|
72
|
-
|
73
58
|
rubyforge_project:
|
74
|
-
rubygems_version: 1.8.
|
59
|
+
rubygems_version: 1.8.24
|
75
60
|
signing_key:
|
76
61
|
specification_version: 3
|
77
62
|
summary: Just allows you to upload gists
|
78
63
|
test_files: []
|
79
|
-
|
80
|
-
has_rdoc:
|