whiplash-app 0.9.0 → 0.9.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 +4 -4
- data/lib/whiplash/app/canonical_host.rb +25 -0
- data/lib/whiplash/app/railtie.rb +14 -0
- data/lib/whiplash/app/version.rb +1 -1
- data/lib/whiplash/app.rb +27 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 90618c9787cb8660f4fcb0be146bdb14736ce8635274f9b262f68813268bd35d
|
4
|
+
data.tar.gz: a26cca38e01f5c5642b94afe39cbc0be6ea08f05c9ccf446d0d802e5548aa100
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d67a3f4a633319407cb8dd9a6717a92b57480825dab3fa36b4e77fda280f58c16089aa833a39fade900dee77efeaa169b868e3ba5f0e25832e37105da40ad53b
|
7
|
+
data.tar.gz: 94df31ed65be70e565fb5ea8ba2744dbfbbfe386500d8ae5c57bce4bd72474ff0af70f4ea9620e02f2a108282d24821c6477b0107d0b55146249c690010f8d07
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module Whiplash
|
3
|
+
class App
|
4
|
+
module CanonicalHost
|
5
|
+
extend ActiveSupport::Concern
|
6
|
+
|
7
|
+
private
|
8
|
+
|
9
|
+
def require_canonical_host!
|
10
|
+
canonical_host = ENV.fetch('CANONICAL_HOST', false).in?([true, 'true', 1, '1'])
|
11
|
+
return unless canonical_host
|
12
|
+
application_host = URI.parse(Rails.configuration.app_url).host
|
13
|
+
return if application_host == request.host
|
14
|
+
return unless request.method_symbol == :get # can't redirect PUT, POST, DELETE
|
15
|
+
|
16
|
+
redirect_to_canonical_host request.query_parameters
|
17
|
+
end
|
18
|
+
|
19
|
+
def redirect_to_canonical_host(query_params, status=301)
|
20
|
+
redirect_to "#{Rails.configuration.app_url}#{request.path}#{'?' if query_params.to_query.present?}#{query_params.to_query}", status: status
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Whiplash
|
4
|
+
module Logs
|
5
|
+
class Railtie < Rails::Railtie
|
6
|
+
initializer "whiplash_app.action_controller" do
|
7
|
+
ActiveSupport.on_load(:action_controller) do
|
8
|
+
puts "Extending #{self} with YourGemsModuleName::Controller"
|
9
|
+
include Whiplash::App::CanonicalHost
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
data/lib/whiplash/app/version.rb
CHANGED
data/lib/whiplash/app.rb
CHANGED
@@ -7,6 +7,12 @@ require "errors/whiplash_api_error"
|
|
7
7
|
require "oauth2"
|
8
8
|
require "faraday"
|
9
9
|
|
10
|
+
# Rails app stuff
|
11
|
+
if defined?(Rails::Railtie)
|
12
|
+
require "whiplash/app/canonical_host"
|
13
|
+
require "whiplash/app/railtie"
|
14
|
+
end
|
15
|
+
|
10
16
|
module Whiplash
|
11
17
|
class App
|
12
18
|
include Whiplash::App::ApiConfig
|
@@ -78,3 +84,24 @@ module Whiplash
|
|
78
84
|
|
79
85
|
end
|
80
86
|
end
|
87
|
+
|
88
|
+
module Net
|
89
|
+
class HTTPResponse
|
90
|
+
class << self
|
91
|
+
private
|
92
|
+
|
93
|
+
def read_status_line(sock)
|
94
|
+
str = sock.readline
|
95
|
+
og = str.dup
|
96
|
+
str.gsub!(/.*?(?=HTTP)/im, "")
|
97
|
+
if og.size > str.size
|
98
|
+
Rails.logger.warn "[WhiplashApp] Failed to read header status for #{og.inspect}"
|
99
|
+
end
|
100
|
+
m = /\AHTTP(?:\/(\d+\.\d+))?\s+(\d\d\d)(?:\s+(.*))?\z/in.match(str) or
|
101
|
+
raise Net::HTTPBadResponse, "wrong status line: #{str.dump}"
|
102
|
+
m.captures
|
103
|
+
end
|
104
|
+
|
105
|
+
end
|
106
|
+
end
|
107
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: whiplash-app
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Don Sullivan, Mark Dickson
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-12-
|
11
|
+
date: 2023-12-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: oauth2
|
@@ -115,8 +115,10 @@ files:
|
|
115
115
|
- lib/errors/whiplash_api_error.rb
|
116
116
|
- lib/whiplash/app.rb
|
117
117
|
- lib/whiplash/app/api_config.rb
|
118
|
+
- lib/whiplash/app/canonical_host.rb
|
118
119
|
- lib/whiplash/app/connections.rb
|
119
120
|
- lib/whiplash/app/finder_methods.rb
|
121
|
+
- lib/whiplash/app/railtie.rb
|
120
122
|
- lib/whiplash/app/signing.rb
|
121
123
|
- lib/whiplash/app/version.rb
|
122
124
|
- whiplash-app.gemspec
|