puma-ngrok-tunnel 0.1.1 → 0.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d029d8c4cf8dc072229ec171cc0efb786336832b35244c077706aab670297f5b
4
- data.tar.gz: 2be2b3c9fb277c079d0f74183805703505fff780fc60b27fba90d0ac189f8f1c
3
+ metadata.gz: 65b1ce3120be08b61f95a94b6ffc3487022f20cdb2627f3a926d088c1623e99b
4
+ data.tar.gz: e23605a56aff5a764b6121b4c65f679ed874e3de223dc02488b8e44dcab525bb
5
5
  SHA512:
6
- metadata.gz: ac0f89bbd524854feae311cac699a33d74e6e2459c88b9886afc786c069b0fe58efe322f86480efba2082bf5e6e0d6263ae6c04a6c1bf4372535d29b67f57d98
7
- data.tar.gz: dad8c33285f788cf5d7745c25bce721b62665efadb704b1fb9bfa4d03064870776df087cb7ce23c94cc3d76c69a0e08d17ee208b6d6f9feaef62aa657bdab4dd
6
+ metadata.gz: f5440af3101fd81aec45f3690ebf57e3a49f7d0bffa09877cdcc3c8cb37fc1fddf288ea19ad3b08a14690306f68c5bc4331b7c7d20bbcd982b02251700e0812c
7
+ data.tar.gz: 480f373d71ff8e79687fbdecac7f7ea95b6149d13822a922f89baae0ed072c34ced8738c98e4e7f8daa9ef13c665fef8952ac2c0e997a415db95752f4bffc83d
data/.rubocop.yml ADDED
@@ -0,0 +1,10 @@
1
+ AllCops:
2
+ Exclude:
3
+ - '.git/**/*'
4
+ - 'bin/*'
5
+
6
+ Style/BracesAroundHashParameters:
7
+ EnforcedStyle: context_dependent
8
+
9
+ Metrics/LineLength:
10
+ Max: 120
data/.travis.yml CHANGED
@@ -1,4 +1,7 @@
1
+ ---
2
+ sudo: false
1
3
  language: ruby
4
+ cache: bundler
2
5
  rvm:
3
- - 2.6.2
6
+ - 2.6.3
4
7
  before_install: gem install bundler -v 2.0.1
data/CHANGELOG.md CHANGED
@@ -1,10 +1,16 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.2
4
+
5
+ * Setting minimum ruby version to be 2.3
6
+ * Tided up the code with Robocop
7
+ * Added various to the repo.
8
+
3
9
  ## 0.1.1
4
10
 
5
- * Improving mechanism for the tunnel being closed when rails is restarted, namely when `touch tmp/restart.txt` is used. This is based on https://github.com/harmjanblok/puma-metrics/blob/master/lib/puma/plugin/metrics.rb
6
- * Adding more examples to docs.
11
+ * Improving mechanism for the tunnel being closed when rails is restarted, namely when `touch tmp/restart.txt` is used. This is based on [puma-metrics](https://github.com/harmjanblok/puma-metrics/blob/master/lib/puma/plugin/metrics.rb)
12
+ * Adding more examples to docs.
7
13
 
8
14
  ## 0.1.0
9
15
 
10
- * Initial Release
16
+ * Initial Release
data/Gemfile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'https://rubygems.org'
2
4
 
3
5
  # Specify your gem's dependencies in puma-heroku.gemspec
data/README.md CHANGED
@@ -1,15 +1,18 @@
1
- # puma-ngrok-tunnel
2
-
3
1
  [![Gem Version](https://badge.fury.io/rb/puma-ngrok-tunnel.svg)](https://badge.fury.io/rb/puma-ngrok-tunnel)
2
+ [![Build Status](https://travis-ci.org/MikeRogers0/puma-ngrok-tunnel.svg?branch=master)](https://travis-ci.org/MikeRogers0/puma-ngrok-tunnel)
3
+ [![Codacy Badge](https://api.codacy.com/project/badge/Grade/90680257c9dd4613a36ec3ac890e3559)](https://www.codacy.com/app/MikeRogers0/puma-ngrok-tunnel?utm_source=github.com&utm_medium=referral&utm_content=MikeRogers0/puma-ngrok-tunnel&utm_campaign=Badge_Grade)
4
+ [![Maintainability](https://api.codeclimate.com/v1/badges/c5710efd4dc1f90c7487/maintainability)](https://codeclimate.com/github/MikeRogers0/puma-ngrok-tunnel/maintainability)
5
+
6
+ # puma-ngrok-tunnel
4
7
 
5
8
  ![image](https://user-images.githubusercontent.com/325384/57193363-1d2c4800-6f32-11e9-82a4-1efc54fac0ad.png)
6
9
 
7
10
  A plugin for puma that'll start a [ngrok tunnel](https://ngrok.com/) to your rails server when puma starts. Primary I built this to make the following a little easier:
8
11
 
9
- * Working with apps that require Webhooks to be received by the app to work correctly
10
- * Demoing your local rails app to someone else without have to share IPs
11
- * Working with [Puma-dev](https://github.com/puma/puma-dev/) so your apps feels as production-like as possible.
12
- * Testing on mobile.
12
+ * Working with apps that require Webhooks to be received by the app to work correctly
13
+ * Demoing your local rails app to someone else without have to share IPs
14
+ * Working with [Puma-dev](https://github.com/puma/puma-dev/) so your apps feels as production-like as possible.
15
+ * Testing on mobile.
13
16
 
14
17
  I've setup a [sample Rails 6 app](https://github.com/MikeRogers0/puma-ngrok-tunnel-SampleRails6App) that demos an implementation of this gem.
15
18
 
@@ -17,7 +20,8 @@ I've setup a [sample Rails 6 app](https://github.com/MikeRogers0/puma-ngrok-tunn
17
20
 
18
21
  Make sure you have installed ngrok on your machine:
19
22
 
20
- $ brew install ngrok
23
+ $ brew tap caskroom/cask
24
+ $ brew cask install ngrok
21
25
 
22
26
  Add this line to your application's Gemfile:
23
27
 
@@ -33,29 +37,28 @@ And then execute:
33
37
 
34
38
  Lastly in your `config/puma.rb` file, append the line:
35
39
 
36
-
37
40
  ```ruby
38
41
  plugin :ngrok_tunnel if ENV.fetch('RAILS_ENV') { 'development' } == 'development'
39
42
  ```
40
43
 
41
44
  ## Usage
42
45
 
43
- Read about how to configure puma to use this plugin here: https://github.com/puma/puma#plugins
46
+ Read about how to configure puma to use this in [the Puma documentation](https://github.com/puma/puma#plugins).
44
47
 
45
48
  There are a few variables this plugin reads from the environment which control its behavior. These are based on the arguments you'd pass to the [ngrok terminal command](https://ngrok.com/docs#http-subdomain).
46
49
 
47
- * `PORT` - Optional, your rails port, defaults to `3000`. If `NGROK_ADDR` is set, this is ignored.
48
- * `NGROK_ADDR` - Optional, if you're using Puma-dev set this to be your hostname & port, e.g. `my-app-name.test:443`.
49
- * `NGROK_AUTHTOKEN` - Optional, your ngrok authtoken. If you have ngrok configured on your local machine you don't need this.
50
- * `NGROK_HOST_HEADER` - Optional, if you're using Puma-dev you should set this to your virtual host e.g. `my-app-name.test`.
51
- * `NGROK_CONFIG` - Optional, your ngrok configuration file location, defaults to `~/.ngrok2/ngrok.yml`.
52
- * `NGROK_SUBDOMAIN` - Optional, ngrok will assign you a random subdomain unless this is set.
53
- * `NGROK_REGION` - Optional, the region of your ngrok tunnel. defaults to `us`.
54
- * `NGROK_HOSTNAME` - Optional, full ngrok hostname, shouldn't be set if `NGROK_SUBDOMAIN` is set.
50
+ * `PORT` - Optional, your rails port, defaults to `3000`. If `NGROK_ADDR` is set, this is ignored.
51
+ * `NGROK_ADDR` - Optional, if you're using Puma-dev set this to be your hostname & port, e.g. `my-app-name.test:443`.
52
+ * `NGROK_AUTHTOKEN` - Optional, your ngrok authtoken. If you have ngrok configured on your local machine you don't need this.
53
+ * `NGROK_HOST_HEADER` - Optional, if you're using Puma-dev you should set this to your virtual host e.g. `my-app-name.test`.
54
+ * `NGROK_CONFIG` - Optional, your ngrok configuration file location, defaults to `~/.ngrok2/ngrok.yml`.
55
+ * `NGROK_SUBDOMAIN` - Optional, ngrok will assign you a random subdomain unless this is set.
56
+ * `NGROK_REGION` - Optional, the region of your ngrok tunnel. defaults to `us`.
57
+ * `NGROK_HOSTNAME` - Optional, full ngrok hostname, shouldn't be set if `NGROK_SUBDOMAIN` is set.
55
58
 
56
59
  ### Sample .env for use with `rails s`
57
60
 
58
- ```
61
+ ```bash
59
62
  # puma-ngrok-tunnel setup
60
63
  # You need https://github.com/bkeepers/dotenv setup to make sure Puma can use these.
61
64
  export NGROK_TUNNEL_ENABLED=true
@@ -65,7 +68,7 @@ export NGROK_REGION=eu
65
68
 
66
69
  ### Sample .env for use with Puma-dev
67
70
 
68
- ```
71
+ ```bash
69
72
  # Puma-dev: You need to define this otherwise it uses it's own puma.rb file.
70
73
  CONFIG=config/puma.rb
71
74
 
@@ -92,7 +95,7 @@ in your terminal.
92
95
 
93
96
  If you seeing an error like:
94
97
 
95
- ```
98
+ ```ruby
96
99
  Blocked host: a620ba29.ngrok.io
97
100
  To allow requests to a620ba29.ngrok.io, add the following to your environment configuration:
98
101
  config.hosts << "a620ba29.ngrok.io"
@@ -113,4 +116,3 @@ This will whitelist the ngrok subdomain to access your rails host.
113
116
  ## License
114
117
 
115
118
  The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
116
-
data/Rakefile CHANGED
@@ -1,10 +1,12 @@
1
- require "bundler/gem_tasks"
2
- require "rake/testtask"
1
+ # frozen_string_literal: true
2
+
3
+ require 'bundler/gem_tasks'
4
+ require 'rake/testtask'
3
5
 
4
6
  Rake::TestTask.new(:test) do |t|
5
- t.libs << "test"
6
- t.libs << "lib"
7
- t.test_files = FileList["test/**/*_test.rb"]
7
+ t.libs << 'test'
8
+ t.libs << 'lib'
9
+ t.test_files = FileList['test/**/*_test.rb']
8
10
  end
9
11
 
10
- task :default => :test
12
+ task default: :test
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module PumaNgrokTunnel
2
- VERSION = '0.1.1'
4
+ VERSION = '0.1.2'
3
5
  end
@@ -1,22 +1,30 @@
1
+ # frozen_string_literal: true
2
+ require 'ngrok/tunnel'
1
3
 
2
4
  Puma::Plugin.create do
3
5
  def start(launcher)
4
6
  puts '[puma-ngrok-tunnel] Starting'
5
7
 
6
- require 'ngrok/tunnel'
7
-
8
8
  launcher.events.register(:state) do |state|
9
- if %i[halt restart stop].include?(state)
10
- if Ngrok::Tunnel.running?
11
- puts '[puma-ngrok-tunnel] Stopping'
12
- Ngrok::Tunnel.stop
13
- end
14
- end
9
+ ngrok_stop! if %i[halt restart stop].include?(state)
15
10
  end
16
11
 
12
+ ngrok_start!
13
+ end
14
+
15
+ private
16
+
17
+ def ngrok_start!
17
18
  puts '[puma-ngrok-tunnel] Tunneling at: ' + Ngrok::Tunnel.start(options)
18
19
  end
19
20
 
21
+ def ngrok_stop!
22
+ return unless Ngrok::Tunnel.running?
23
+
24
+ puts '[puma-ngrok-tunnel] Stopping'
25
+ Ngrok::Tunnel.stop
26
+ end
27
+
20
28
  def options
21
29
  @options ||= {
22
30
  addr: ENV.fetch('NGROK_ADDR') { nil } || ENV.fetch('PORT') { 3000 },
@@ -1,7 +1,8 @@
1
- lib = File.expand_path("../lib", __FILE__)
2
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
- require "puma-ngrok-tunnel/version"
1
+ # frozen_string_literal: true
4
2
 
3
+ lib = File.expand_path('lib', __dir__)
4
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
+ require 'puma-ngrok-tunnel/version'
5
6
 
6
7
  Gem::Specification.new do |spec|
7
8
  spec.name = 'puma-ngrok-tunnel'
@@ -17,22 +18,25 @@ Gem::Specification.new do |spec|
17
18
  # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
18
19
  # to allow pushing to a single host or delete this section to allow pushing to any host.
19
20
  if spec.respond_to?(:metadata)
20
- spec.metadata["allowed_push_host"] = 'https://rubygems.org'
21
+ spec.metadata['allowed_push_host'] = 'https://rubygems.org'
21
22
  else
22
- raise "RubyGems 2.0 or newer is required to protect against " \
23
- "public gem pushes."
23
+ raise 'RubyGems 2.0 or newer is required to protect against ' \
24
+ 'public gem pushes.'
24
25
  end
25
26
 
26
27
  # Specify which files should be added to the gem when it is released.
27
28
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
28
- spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
29
+ spec.files = Dir.chdir(File.expand_path(__dir__)) do
29
30
  `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
30
31
  end
31
32
  spec.require_paths = ['lib']
33
+ spec.required_ruby_version = '>= 2.3'
32
34
 
33
35
  spec.add_runtime_dependency 'ngrok-tunnel', '~> 2.1', '>= 2.1.1'
34
36
  spec.add_runtime_dependency 'puma', '~> 3.0'
35
37
 
36
- spec.add_development_dependency 'bundler', '~> 1.11'
37
- spec.add_development_dependency 'rake', '~> 10.0'
38
+ spec.add_development_dependency 'bundler', '~> 2.0'
39
+ spec.add_development_dependency 'minitest', '~> 5.0'
40
+ spec.add_development_dependency 'rake', '~> 12.3'
41
+ spec.add_development_dependency 'simplecov', '~> 0.16.1'
38
42
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: puma-ngrok-tunnel
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Rogers
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-05-05 00:00:00.000000000 Z
11
+ date: 2019-06-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ngrok-tunnel
@@ -50,28 +50,56 @@ dependencies:
50
50
  requirements:
51
51
  - - "~>"
52
52
  - !ruby/object:Gem::Version
53
- version: '1.11'
53
+ version: '2.0'
54
54
  type: :development
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  requirements:
58
58
  - - "~>"
59
59
  - !ruby/object:Gem::Version
60
- version: '1.11'
60
+ version: '2.0'
61
+ - !ruby/object:Gem::Dependency
62
+ name: minitest
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: '5.0'
68
+ type: :development
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: '5.0'
61
75
  - !ruby/object:Gem::Dependency
62
76
  name: rake
63
77
  requirement: !ruby/object:Gem::Requirement
64
78
  requirements:
65
79
  - - "~>"
66
80
  - !ruby/object:Gem::Version
67
- version: '10.0'
81
+ version: '12.3'
68
82
  type: :development
69
83
  prerelease: false
70
84
  version_requirements: !ruby/object:Gem::Requirement
71
85
  requirements:
72
86
  - - "~>"
73
87
  - !ruby/object:Gem::Version
74
- version: '10.0'
88
+ version: '12.3'
89
+ - !ruby/object:Gem::Dependency
90
+ name: simplecov
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: 0.16.1
96
+ type: :development
97
+ prerelease: false
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: 0.16.1
75
103
  description: A Puma plugin that opens a ngrok tunnel after the rails server starts
76
104
  email:
77
105
  - me@mikerogers.io
@@ -80,6 +108,7 @@ extensions: []
80
108
  extra_rdoc_files: []
81
109
  files:
82
110
  - ".gitignore"
111
+ - ".rubocop.yml"
83
112
  - ".travis.yml"
84
113
  - CHANGELOG.md
85
114
  - Gemfile
@@ -102,15 +131,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
102
131
  requirements:
103
132
  - - ">="
104
133
  - !ruby/object:Gem::Version
105
- version: '0'
134
+ version: '2.3'
106
135
  required_rubygems_version: !ruby/object:Gem::Requirement
107
136
  requirements:
108
137
  - - ">="
109
138
  - !ruby/object:Gem::Version
110
139
  version: '0'
111
140
  requirements: []
112
- rubyforge_project:
113
- rubygems_version: 2.7.6
141
+ rubygems_version: 3.0.3
114
142
  signing_key:
115
143
  specification_version: 4
116
144
  summary: Puma integration for starting a Ngrok Tunnel