jist 1.0.1 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. data/README.md +3 -0
  2. data/lib/jist.rb +21 -7
  3. data/spec/proxy_spec.rb +19 -0
  4. metadata +3 -2
data/README.md CHANGED
@@ -153,6 +153,9 @@ export BROWSER=google-chrome
153
153
  If clipboard or browser integration don't work on your platform, please file a bug or
154
154
  (more ideally) a pull request.
155
155
 
156
+ If you need to use an HTTP proxy to access the internet, export the `HTTP_PROXY` or
157
+ `http_proxy` environment variable and jist will use it.
158
+
156
159
  Meta-fu
157
160
  =======
158
161
 
@@ -6,7 +6,7 @@ require 'json'
6
6
  module Jist
7
7
  extend self
8
8
 
9
- VERSION = '1.0.1'
9
+ VERSION = '1.1.0'
10
10
 
11
11
  # A list of clipboard commands with copy and paste support.
12
12
  CLIPBOARD_COMMANDS = {
@@ -148,17 +148,31 @@ module Jist
148
148
  raise e.extend Error
149
149
  end
150
150
 
151
+ # Return HTTP connection
152
+ #
153
+ # @return [Net::HTTP]
154
+ def http_connection
155
+ env = ENV['http_proxy'] || ENV['HTTP_PROXY']
156
+ connection = if env
157
+ uri = URI(env)
158
+ proxy_host, proxy_port = uri.host, uri.port
159
+ Net::HTTP::Proxy(proxy_host, proxy_port).new("api.github.com", 443)
160
+ else
161
+ Net::HTTP.new("api.github.com", 443)
162
+ end
163
+ connection.use_ssl = true
164
+ connection.verify_mode = OpenSSL::SSL::VERIFY_NONE
165
+ connection.open_timeout = 10
166
+ connection.read_timeout = 10
167
+ connection
168
+ end
169
+
151
170
  # Run an HTTP operation against api.github.com
152
171
  #
153
172
  # @param [Net::HTTPRequest] request
154
173
  # @return [Net::HTTPResponse]
155
174
  def http(request)
156
- connection = Net::HTTP.new("api.github.com", 443)
157
- connection.use_ssl = true
158
- connection.verify_mode = OpenSSL::SSL::VERIFY_NONE
159
- connection.open_timeout = 10
160
- connection.read_timeout = 10
161
- connection.start do |http|
175
+ http_connection().start do |http|
162
176
  http.request request
163
177
  end
164
178
  rescue Timeout::Error
@@ -0,0 +1,19 @@
1
+ describe '...' do
2
+ before do
3
+ @saved_env = ENV['HTTP_PROXY']
4
+ end
5
+
6
+ after do
7
+ ENV['HTTP_PROXY'] = @saved_env
8
+ end
9
+
10
+ it "should be Net::HTTP when $HTTP_PROXY wasn't set" do
11
+ ENV['HTTP_PROXY'] = ''
12
+ Jist.http_connection().should be_an_instance_of(Net::HTTP)
13
+ end
14
+
15
+ it "should be Net::HTTP::Proxy when $HTTP_PROXY was set" do
16
+ ENV['HTTP_PROXY'] = 'http://proxy.example.com:8080'
17
+ Jist.http_connection().should_not be_an_instance_of(Net::HTTP)
18
+ end
19
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jist
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-08-19 00:00:00.000000000 Z
12
+ date: 2012-10-18 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: json
@@ -76,6 +76,7 @@ files:
76
76
  - jist.gemspec
77
77
  - lib/jist.rb
78
78
  - spec/clipboard_spec.rb
79
+ - spec/proxy_spec.rb
79
80
  - spec/spec_helper.rb
80
81
  homepage: https://github.com/ConradIrwin/jist
81
82
  licenses: