faraday_adapter_socks 0.1.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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 944388777ce5e80e36d5d55307ab4ee54f69ccb3
4
+ data.tar.gz: 449d2f2a8a9de5e41a95ec61b272d9dd33eeb857
5
+ SHA512:
6
+ metadata.gz: db8df3b805a43ee9d98cca28abe02c653db4db17e082c29ee546cbf6df01d772e2636951ce55ed199543e5ac5f4452e21625284ecdf00cf8ab406c4ed5967985
7
+ data.tar.gz: 0a1321105804df89decf715ca7c583f4ed5d492d56d7fb3dc9af7a99eac05dd119edfce37359de20d5e5e2f86c25f98f7293c4e29530b66c17c296824dd7991e
@@ -0,0 +1,15 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
10
+ vendor/bundle
11
+ *.gem
12
+
13
+ # vim swap files
14
+ [._]*.sw[a-z]
15
+ [._]sw[a-z]
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --format documentation
2
+ --color
@@ -0,0 +1 @@
1
+ 2.2.5
@@ -0,0 +1,8 @@
1
+ sudo: false
2
+ language: ruby
3
+ rvm:
4
+ - 2.2.5
5
+ - 2.3.0
6
+ before_install: gem install bundler -v 1.12.5
7
+ bundler_args: --jobs=2
8
+ script: bundle exec rake spec
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in faraday_adapter_socks.gemspec
4
+ gemspec
@@ -0,0 +1,87 @@
1
+ FaradayAdapterSocks [![Build Status](https://travis-ci.org/goldeneggg/faraday_adapter_socks.svg?branch=master)](https://travis-ci.org/goldeneggg/faraday_adapter_socks)
2
+ ==========
3
+
4
+ Faraday adapter for socks proxy
5
+
6
+ ## Installation
7
+
8
+ Add this line to your application's Gemfile:
9
+
10
+ ```ruby
11
+ gem 'faraday_adapter_socks'
12
+ ```
13
+
14
+ And then execute:
15
+
16
+ $ bundle
17
+
18
+ Or install it yourself as:
19
+
20
+ $ gem install faraday_adapter_socks
21
+
22
+ ## Usage
23
+
24
+ Adapter symbol `:net_http_socks` should be set to `faraday_adapter`
25
+
26
+ Example: faraday connection
27
+
28
+ ```ruby
29
+ require 'faraday_adapter_socks'
30
+
31
+ options = { proxy: { uri: URI.parse("socks://#{your_socks_server}") } }
32
+
33
+ conn = Faraday.new(url, options) do |faraday|
34
+ faraday.request :url_encoded
35
+ faraday.adapter :net_http_socks # please assign ":net_http_socks" adapter
36
+ end
37
+
38
+ response = conn.get do |req|
39
+ req.url request_path
40
+ end
41
+ ```
42
+
43
+ Example: get oauth2 client using [intridea/oauth2](https://github.com/intridea/oauth2)
44
+
45
+ ```ruby
46
+ require 'faraday_adapter_socks'
47
+
48
+ client_options = { connection_opts: { proxy: { uri: URI.parse("socks://#{your_socks_server}") } }
49
+
50
+ client = ::OAuth2::Client.new(client_id, client_secret, client_options) do |conn|
51
+ conn.request :url_encoded
52
+ conn.response :json, content_type: /\bjson$/
53
+ conn.adapter :net_http_socks # please assign ":net_http_socks" adapter
54
+ end
55
+ ```
56
+
57
+ ## Development
58
+
59
+ Setup
60
+
61
+ ```bash
62
+ $ git clone https://github.com/goldeneggg/faraday_adapter_socks.git
63
+ $ bin/setup
64
+ ```
65
+
66
+ Run tests
67
+
68
+ ```bash
69
+ $ bundle exec rake spec
70
+ ```
71
+
72
+ Debug using pry
73
+
74
+
75
+ ```bash
76
+ $ bin/console
77
+ ```
78
+
79
+ To release a new version, update the version number in `version.rb`.
80
+
81
+ ## Contributing
82
+
83
+ Bug reports and pull requests are welcome on GitHub at [issues](https://github.com/goldeneggg1/faraday_adapter_socks/issues)
84
+
85
+ ## Author
86
+
87
+ [goldeneggg](https://github.com/goldeneggg)
@@ -0,0 +1,6 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task :default => :spec
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "faraday_adapter_socks"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ require "pry"
11
+ Pry.start
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install --path vendor/bundle
7
+
8
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,32 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'faraday_adapter_socks/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "faraday_adapter_socks"
8
+ spec.version = FaradayAdapterSocks::VERSION
9
+ spec.authors = ["goldeneggg"]
10
+ spec.email = ["jpshadowapps@gmail.com"]
11
+
12
+ spec.summary = %q{Faraday adapter for socks proxy}
13
+ spec.description = %q{FaradayAdapterSocks supports connection throughing socks proxy}
14
+ spec.homepage = "https://github.com/goldeneggg/faraday_adapter_socks"
15
+ spec.licenses = ['MIT']
16
+
17
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
18
+ spec.bindir = "exe"
19
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
+ spec.require_paths = ["lib"]
21
+
22
+ spec.add_dependency "faraday", "~> 0.9"
23
+ spec.add_dependency "socksify", "~> 1.7"
24
+
25
+ spec.add_development_dependency "bundler", "~> 1.12"
26
+ spec.add_development_dependency "rake", "~> 11.2"
27
+ spec.add_development_dependency "rspec", "~> 3.5"
28
+ spec.add_development_dependency 'pry', '~> 0.10'
29
+ spec.add_development_dependency 'pry-byebug', '~> 3.4'
30
+ spec.add_development_dependency 'pry-doc', '~> 0.9'
31
+ spec.add_development_dependency 'pry-theme', '~> 1.1'
32
+ end
@@ -0,0 +1,27 @@
1
+ module Faraday
2
+ class Adapter < Middleware
3
+
4
+ register_middleware net_http_socks: :NetHttpSocks
5
+
6
+ class NetHttpSocks < Faraday::Adapter::NetHttp
7
+
8
+ SOCKS_SCHEMES = ['socks', 'socks4', 'socks5']
9
+
10
+ def net_http_connection(env)
11
+ proxy = env[:request][:proxy]
12
+
13
+ net_http_class = if proxy
14
+ if SOCKS_SCHEMES.include?(proxy[:uri].scheme)
15
+ Net::HTTP::SOCKSProxy(proxy[:uri].host, proxy[:uri].port)
16
+ else
17
+ Net::HTTP::Proxy(proxy[:uri].host, proxy[:uri].port, proxy[:user], proxy[:password])
18
+ end
19
+ else
20
+ Net::HTTP
21
+ end
22
+
23
+ net_http_class.new(env[:url].host, env[:url].port)
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,9 @@
1
+ require "faraday"
2
+ require 'socksify'
3
+ require 'socksify/http'
4
+ require "faraday/adapter/net_http_socks"
5
+ require "faraday_adapter_socks/version"
6
+
7
+ module FaradayAdapterSocks
8
+ # Your code goes here...
9
+ end
@@ -0,0 +1,3 @@
1
+ module FaradayAdapterSocks
2
+ VERSION = "0.1.1"
3
+ end
metadata ADDED
@@ -0,0 +1,183 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: faraday_adapter_socks
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
5
+ platform: ruby
6
+ authors:
7
+ - goldeneggg
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2016-09-20 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: faraday
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.9'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0.9'
27
+ - !ruby/object:Gem::Dependency
28
+ name: socksify
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.7'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.7'
41
+ - !ruby/object:Gem::Dependency
42
+ name: bundler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.12'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.12'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '11.2'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '11.2'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '3.5'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '3.5'
83
+ - !ruby/object:Gem::Dependency
84
+ name: pry
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '0.10'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '0.10'
97
+ - !ruby/object:Gem::Dependency
98
+ name: pry-byebug
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '3.4'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '3.4'
111
+ - !ruby/object:Gem::Dependency
112
+ name: pry-doc
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '0.9'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '0.9'
125
+ - !ruby/object:Gem::Dependency
126
+ name: pry-theme
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '1.1'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '1.1'
139
+ description: FaradayAdapterSocks supports connection throughing socks proxy
140
+ email:
141
+ - jpshadowapps@gmail.com
142
+ executables: []
143
+ extensions: []
144
+ extra_rdoc_files: []
145
+ files:
146
+ - ".gitignore"
147
+ - ".rspec"
148
+ - ".ruby-version"
149
+ - ".travis.yml"
150
+ - Gemfile
151
+ - README.md
152
+ - Rakefile
153
+ - bin/console
154
+ - bin/setup
155
+ - faraday_adapter_socks.gemspec
156
+ - lib/faraday/adapter/net_http_socks.rb
157
+ - lib/faraday_adapter_socks.rb
158
+ - lib/faraday_adapter_socks/version.rb
159
+ homepage: https://github.com/goldeneggg/faraday_adapter_socks
160
+ licenses:
161
+ - MIT
162
+ metadata: {}
163
+ post_install_message:
164
+ rdoc_options: []
165
+ require_paths:
166
+ - lib
167
+ required_ruby_version: !ruby/object:Gem::Requirement
168
+ requirements:
169
+ - - ">="
170
+ - !ruby/object:Gem::Version
171
+ version: '0'
172
+ required_rubygems_version: !ruby/object:Gem::Requirement
173
+ requirements:
174
+ - - ">="
175
+ - !ruby/object:Gem::Version
176
+ version: '0'
177
+ requirements: []
178
+ rubyforge_project:
179
+ rubygems_version: 2.4.5.1
180
+ signing_key:
181
+ specification_version: 4
182
+ summary: Faraday adapter for socks proxy
183
+ test_files: []