vantiv_sftp_reports 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9d81ffe5b9abf568edd6b6ec114edf8dc45cf7a5
4
- data.tar.gz: 7379a16e6f4428a79034a11f92c8ad42213077fb
3
+ metadata.gz: 30b7b962df4821236808725c7edd7b20de296f86
4
+ data.tar.gz: fce029fb211981649dac1d99c594e006a5167790
5
5
  SHA512:
6
- metadata.gz: 603ff60b37c660cbdff541c868cefd6cba9f0a0edd39a68bb90f0e2221974bddc842ef0102fa32e1abeb7ba10a7f8324776ebce571ecc05c52415dd8efee1179
7
- data.tar.gz: c8300d88ce5655a9fd5abdfee00924bf7eff88f57d42064e9b2be9f0c52b543a8bb228bf5bae4611cb0fde55eedb6796ae4a3671c6b7d381c67ada63b040beac
6
+ metadata.gz: efa0a424c38ca41e471816e3ba1b449b9bc5ca91a580233f98553258d4c2708bc97aa97cb9397079b53ee1329cb848db02d479346bac3f1ad37f2f973767ca9a
7
+ data.tar.gz: 4a852496e06f9035cfd73ca676328d8944827c8a303905f3fc96534c4c50e61f393e7e0ede8bb20f64928276347a4556ebf8ac1a73634d037c6e0a607626ae47
data/README.md CHANGED
@@ -31,6 +31,7 @@ VantivSFTPReports.configure(
31
31
  password:, # Your SFTP username
32
32
  path:, # Directory where reports are stored, defaults to 'reports'
33
33
  port:, # SFTP port, defaults to '22'
34
+ proxy_url:, # A proxy host to use for the SSH session, useful if you need to fetch reports from a server not directly whitelisted in your Vantiv account setup
34
35
  username: # Your SFTP username
35
36
  )
36
37
  ```
@@ -46,6 +47,7 @@ Prefix any configuration option with `vantiv_sftp_` and it will be automatically
46
47
  * `ENV['vantiv_sftp_password']`
47
48
  * `ENV['vantiv_sftp_path']`
48
49
  * `ENV['vantiv_sftp_port']`
50
+ * `ENV['vantiv_sftp_proxy_url']`
49
51
  * `ENV['vantiv_sftp_username']`
50
52
 
51
53
  ## Usage
@@ -24,7 +24,15 @@ module VantivSFTPReports
24
24
  self.class.new(@opts.merge(opts))
25
25
  end
26
26
 
27
- %i[host organization_id password path port username].each { |o| define_method(o) { @opts[o] } }
27
+ %i[
28
+ host
29
+ organization_id
30
+ password
31
+ path
32
+ port
33
+ proxy_url
34
+ username
35
+ ].each { |o| define_method(o) { @opts[o] } }
28
36
 
29
37
  private
30
38
 
@@ -2,6 +2,7 @@
2
2
 
3
3
  require 'csv'
4
4
  require 'vantiv_sftp_reports/config'
5
+ require 'net/ssh/proxy/http'
5
6
 
6
7
  module VantivSFTPReports
7
8
  class Fetch
@@ -46,13 +47,21 @@ module VantivSFTPReports
46
47
  end
47
48
 
48
49
  def session
49
- Net::SFTP.start(config.host, config.username, config.sftp_opts) { |sftp| yield(sftp) }
50
+ sftp_opts = config.sftp_opts
51
+ sftp_opts.merge!(proxy: proxy).delete(:proxy_url) if sftp_opts[:proxy_url]
52
+ Net::SFTP.start(config.host, config.username, sftp_opts) { |sftp| yield(sftp) }
50
53
  end
51
54
 
52
55
  %i[organization_id path].each { |m| define_method(m) { config.__send__(m) } }
53
56
 
54
57
  private
55
58
 
59
+ def proxy
60
+ return nil unless config.proxy_url
61
+ uri = URI(config.proxy_url)
62
+ Net::SSH::Proxy::HTTP.new(uri.host, uri.port)
63
+ end
64
+
56
65
  def date_str(obj)
57
66
  obj.respond_to?(:strftime) ? obj.strftime('%Y%m%d') : obj.to_s
58
67
  end
@@ -2,8 +2,8 @@
2
2
 
3
3
  module VantivSFTPReports
4
4
  MAJOR = 0
5
- MINOR = 1
6
- TINY = 1
5
+ MINOR = 2
6
+ TINY = 0
7
7
  VERSION = [MAJOR, MINOR, TINY].join('.').freeze
8
8
 
9
9
  def self.version
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vantiv_sftp_reports
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joshua
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2019-01-16 00:00:00.000000000 Z
12
+ date: 2019-02-12 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: net-sftp