jets 1.9.1 → 1.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 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