jets 1.9.1 → 1.9.2

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
  SHA256:
3
- metadata.gz: 9350d2ad41ae1ab0874e259483e40f971c1d0505d21f5ffb6506595e1a79c65b
4
- data.tar.gz: 138152a71d392822710657ba7998b5fc26faba03ec5039615239ca7a9bcf54b5
3
+ metadata.gz: f5b0ce83e75713097408782eb9e2e1bf2e1e73cf0ea43949530b9313fa6f7c95
4
+ data.tar.gz: 9e342074cf9ec18312ede4f7a5d67f96141c43d205e5908911889f2344c81b35
5
5
  SHA512:
6
- metadata.gz: 8b81b4344b3176063e195ed18a40cb19e3c79dc3d4ac8708f6bc0a25e302628ee72024d2a707584f449f424270d3d20fdca183688374ef8c8d795c7422b07353
7
- data.tar.gz: 225bad7d48c93975fd92a4adfbcf4daf2e77c56b7c96e2d7a35c0768087b5c5c1439347759bc223afcfd745dfe5edf1a36472d134121d8d93cebed744293ee74
6
+ metadata.gz: 625a6eb43d4043ffa1d9eccc6e945d79686c3f69c958171652405fa1ce2940e862acec327ee483dc8395e05ccb30409f3e024a9d136fa4a503db7ec1ba1df106
7
+ data.tar.gz: 571c6a4db6ad117ffa4aac070641b2868a52f8b983831ec1c5414ecebd28b37d167e544d95279cbf5d99bfa1200d4f20b52b9393085f3917ba9230c00e7c529d
@@ -3,6 +3,12 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  This project *loosely tries* to adhere to [Semantic Versioning](http://semver.org/).
5
5
 
6
+ ## [1.9.2]
7
+ - #232 Rename lambda method to aws_lambda to avoid ruby keyword collision
8
+ - #259 fix stage name in dev mode for redirect also
9
+ - #262 Handle nil body on mega request proxy
10
+ - #263 fix for static files now that not using shotgun
11
+
6
12
  ## [1.9.1]
7
13
  - #257 dont generate handlers for concerns
8
14
  - #258 from Fix custom domain base mapping
@@ -54,6 +54,7 @@ Gem::Specification.new do |spec|
54
54
  spec.add_dependency "railties", "~> 5.2.1" # ActiveRecord database_tasks.rb require this
55
55
  spec.add_dependency "rainbow"
56
56
  spec.add_dependency "recursive-open-struct"
57
+ spec.add_dependency "shotgun"
57
58
  spec.add_dependency "text-table"
58
59
  spec.add_dependency "thor"
59
60
  spec.add_dependency "zeitwerk"
@@ -32,10 +32,10 @@ module Jets::AwsServices
32
32
  end
33
33
  global_memoize :dynamodb
34
34
 
35
- def lambda
35
+ def aws_lambda
36
36
  Aws::Lambda::Client.new
37
37
  end
38
- global_memoize :lambda
38
+ global_memoize :aws_lambda
39
39
 
40
40
  def logs
41
41
  Aws::CloudWatchLogs::Client.new
@@ -65,7 +65,7 @@ class Jets::Commands::Call
65
65
  qualifier: @qualifier, # "1",
66
66
  }
67
67
  begin
68
- resp = lambda.invoke(options)
68
+ resp = aws_lambda.invoke(options)
69
69
  rescue Aws::Lambda::Errors::ResourceNotFoundException
70
70
  puts "The function #{function_name} was not found. Maybe check the spelling or the AWS_PROFILE?".color(:red)
71
71
  return
@@ -13,4 +13,5 @@ class Jets::Controller
13
13
  autoload :Rendering, "jets/controller/rendering"
14
14
  autoload :Request, "jets/controller/request"
15
15
  autoload :Response, "jets/controller/response"
16
+ autoload :Stage, "jets/controller/stage"
16
17
  end
@@ -65,11 +65,7 @@ class Jets::Controller
65
65
  def add_stage_name(url)
66
66
  return url unless actual_host
67
67
 
68
- if actual_host.include?("amazonaws.com") && url.starts_with?('/')
69
- stage_name = Jets::Resource::ApiGateway::Deployment.stage_name
70
- url = "/#{stage_name}#{url}"
71
- end
72
- url
68
+ Jets::Controller::Stage.add(actual_host, url)
73
69
  end
74
70
 
75
71
  def url_for(url)
@@ -0,0 +1,33 @@
1
+ class Jets::Controller
2
+ class Stage
3
+ def initialize(host, url)
4
+ @host, @url = host, url
5
+ end
6
+
7
+ def add
8
+ return @url unless add_stage?
9
+
10
+ stage_name = Jets::Resource::ApiGateway::Deployment.stage_name
11
+ "/#{stage_name}#{@url}"
12
+ end
13
+
14
+ def add_stage?
15
+ return false if on_cloud9?
16
+ @host.include?("amazonaws.com") && @url.starts_with?('/')
17
+ end
18
+
19
+ def on_cloud9?
20
+ self.class.on_cloud9?(@host)
21
+ end
22
+
23
+ class << self
24
+ def add(host, url)
25
+ new(host, url).add
26
+ end
27
+
28
+ def on_cloud9?(host)
29
+ !!(host =~ /cloud9\..*\.amazonaws\.com/)
30
+ end
31
+ end
32
+ end
33
+ end
@@ -51,7 +51,7 @@ module Jets::Mega
51
51
  status = response.code.to_i
52
52
  headers = response.each_header.to_h
53
53
  encoding = get_encoding(headers['content-type'])
54
- body = response.body.force_encoding(encoding)
54
+ body = response.body&.force_encoding(encoding)
55
55
  {
56
56
  status: status,
57
57
  headers: headers,
@@ -8,6 +8,7 @@ module Jets::Middleware
8
8
 
9
9
  def build_stack
10
10
  Stack.new do |middleware|
11
+ middleware.use Shotgun::Static if Jets.env.development?
11
12
  middleware.use Rack::Runtime
12
13
  middleware.use Jets::Controller::Middleware::Cors if cors_enabled?
13
14
  middleware.use Rack::MethodOverride # must come before Middleware::Local for multipart post forms to work
@@ -2,25 +2,12 @@ module Jets::CommonMethods
2
2
  extend Memoist
3
3
  # Add API Gateway Stage Name
4
4
  def add_stage_name(url)
5
- return url unless add_stage?(url)
6
-
7
- stage_name = Jets::Resource::ApiGateway::Deployment.stage_name
8
- "/#{stage_name}#{url}"
9
- end
10
-
11
- def add_stage?(url)
12
- return false if on_cloud9?
13
- request.host.include?("amazonaws.com") && url.starts_with?('/')
5
+ Jets::Controller::Stage.add(request.host, url)
14
6
  end
15
- memoize :add_stage?
16
7
 
17
8
  def on_aws?
18
- !request.headers['HTTP_X_AMZN_TRACE_ID'].nil? && !on_cloud9?
9
+ on_cloud9 = Jets::Controller::Stage.on_cloud9?(request.headers['HTTP_HOST'])
10
+ !request.headers['HTTP_X_AMZN_TRACE_ID'].nil? && !on_cloud9
19
11
  end
20
12
  memoize :on_aws?
21
-
22
- def on_cloud9?
23
- !!(request.headers['HTTP_HOST'] =~ /cloud9\..*\.amazonaws\.com/)
24
- end
25
- memoize :on_cloud9?
26
13
  end
@@ -1,3 +1,3 @@
1
1
  module Jets
2
- VERSION = "1.9.1"
2
+ VERSION = "1.9.2"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jets
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.9.1
4
+ version: 1.9.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tung Nguyen
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-05-23 00:00:00.000000000 Z
11
+ date: 2019-05-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionmailer
@@ -360,6 +360,20 @@ dependencies:
360
360
  - - ">="
361
361
  - !ruby/object:Gem::Version
362
362
  version: '0'
363
+ - !ruby/object:Gem::Dependency
364
+ name: shotgun
365
+ requirement: !ruby/object:Gem::Requirement
366
+ requirements:
367
+ - - ">="
368
+ - !ruby/object:Gem::Version
369
+ version: '0'
370
+ type: :runtime
371
+ prerelease: false
372
+ version_requirements: !ruby/object:Gem::Requirement
373
+ requirements:
374
+ - - ">="
375
+ - !ruby/object:Gem::Version
376
+ version: '0'
363
377
  - !ruby/object:Gem::Dependency
364
378
  name: text-table
365
379
  requirement: !ruby/object:Gem::Requirement
@@ -685,6 +699,7 @@ files:
685
699
  - lib/jets/controller/rendering/rack_renderer.rb
686
700
  - lib/jets/controller/request.rb
687
701
  - lib/jets/controller/response.rb
702
+ - lib/jets/controller/stage.rb
688
703
  - lib/jets/core.rb
689
704
  - lib/jets/core_ext/kernel.rb
690
705
  - lib/jets/db.rb