serverlessgems 0.1.6 → 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
  SHA256:
3
- metadata.gz: 74e84f29a566951ffcc259be3bdf1e10421a5eb86528089fc0ff4f5805f52e8d
4
- data.tar.gz: c3497fbf6fd4a7169bf29b7319599a43c59b3e6cc69d2b4a9ddd98e1bba395b1
3
+ metadata.gz: 17849f420754066145243aefd213033867f4926967d1bfd0e530ac183731ebca
4
+ data.tar.gz: 358170e435dea0015b7440c8016be0e715dd5f111276334bd3c17ad51c49ef2d
5
5
  SHA512:
6
- metadata.gz: cf4a3db72832ca353ea6fbe74d7e819e7631e88121d209efb1b1c645f56e520538323d480d289de5df861ddc22dd0bcc583214df6a261c6e5bf82664cbbaac13
7
- data.tar.gz: 9d6d8d4669d7e7659a3b2ea6add218b963cd3160361ff6c5cf1b58699d0b5a069073364f9b959c1b4f9c23b7634c7178f85ea2ca4f05816651d59dbb6cda0e11
6
+ metadata.gz: c4618ff2e516a104d98f56ce0edd5a93229f48d7d14565a289712f7edf28c484a7052c36eb5e2dae060c43852d4664d7e3d91c290713d1a6a5b67caff2f7c969
7
+ data.tar.gz: 4ab7918973479151b2200636a30547d67a9cc5eecb6fd6e178fc7000c93c837ec3801e45c796a2d11ce1d747fa65a45467399eed65220b1d76e0e7038a3a255f
data/CHANGELOG.md CHANGED
@@ -3,6 +3,9 @@
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
+ ## [0.2.0] - 2022-07-02
7
+ - provide gems available info
8
+
6
9
  ## [0.1.6] - 2021-11-11
7
10
  - [#5](https://github.com/boltops-tools/serverlessgems/pull/5) fix gem regexp detection for 2021 macbook m1 chip
8
11
 
@@ -1,3 +1,5 @@
1
+ require "aws-sdk-core"
2
+
1
3
  class Jets::Gems::Api
2
4
  module Core
3
5
  extend Memoist
@@ -23,6 +25,7 @@ class Jets::Gems::Api
23
25
 
24
26
  def set_headers!(req)
25
27
  req['Authorization'] = token if token
28
+ req['x-account'] = account if account
26
29
  req['Content-Type'] = "application/vnd.api+json"
27
30
  end
28
31
 
@@ -77,5 +80,15 @@ class Jets::Gems::Api
77
80
  def delete(path, data={})
78
81
  request(Net::HTTP::Delete, path, data)
79
82
  end
83
+
84
+ def account
85
+ sts.get_caller_identity.account rescue nil
86
+ end
87
+ memoize :account
88
+
89
+ def sts
90
+ Aws::STS::Client.new
91
+ end
92
+ memoize :sts
80
93
  end
81
94
  end
@@ -26,7 +26,8 @@ module Jets::Gems
26
26
  compiled_gems.each do |gem_name|
27
27
  puts "Checking #{gem_name}..." if @options[:verbose]
28
28
  exist = Jets::Gems::Exist.new
29
- @missing_gems << gem_name unless exist.check(gem_name)
29
+ data = exist.check(gem_name)
30
+ @missing_gems << data unless data["exist"]
30
31
  end
31
32
 
32
33
  if exit_early && !@missing_gems.empty?
@@ -34,7 +35,8 @@ module Jets::Gems
34
35
  # Better to error now than deploy a broken package to AWS Lambda.
35
36
  # Provide users with message about using their own serverlessgems source.
36
37
  puts missing_message
37
- Report.new(@options).report(@missing_gems) if agree.yes?
38
+ names = @missing_gems.map {|i| i['gem_name']}
39
+ Report.new(@options).report(names) if agree.yes?
38
40
  exit 1
39
41
  end
40
42
 
@@ -48,10 +50,11 @@ module Jets::Gems
48
50
  def missing_message
49
51
  template = <<-EOL
50
52
  Your project requires compiled gems that are not currently available. Unavailable pre-compiled gems:
51
- <% missing_gems.each do |gem| %>
52
- * <%= gem -%>
53
+ <% missing_gems.each do |missing_gem|
54
+ available = missing_gem['available'].reject { |v| missing_gem['gem_name'].include?(v) }
55
+ %>
56
+ * Unavailable: <%= missing_gem['gem_name'] -%> Available versions: <%= available.join(' ') %>
53
57
  <% end %>
54
-
55
58
  Your current serverlessgems source: #{gems_source}
56
59
 
57
60
  Jets is unable to build a deployment package that will work on AWS Lambda without the required pre-compiled gems. To remedy this, you can:
@@ -2,29 +2,11 @@ module Jets::Gems
2
2
  class Exist
3
3
  include Jets::Gems::Api::Concern
4
4
 
5
- # We check all the availability before even downloading so we can provide a
6
- # full list of gems they might want to research all at once instead of incrementally
7
- #
8
- # Examples:
9
- #
10
- # check(single_gem)
11
- # check(list, of, gems)
12
- def check(*gem_names)
13
- gem_names = gem_names.flatten
14
- exists = gem_names.inject({}) do |hash, gem_name|
15
- exist = gem_exist?(gem_name)
16
- hash[gem_name] = exist
17
- hash.merge(hash)
18
- end
19
-
20
- exists.values.all? {|v| v } # all_exist
21
- end
22
-
23
- def gem_exist?(gem_name)
24
- data = api.check_exist(gem_name: gem_name)
25
- data["exist"]
5
+ # gem_name IE: nokogiri-1.1.1
6
+ def check(gem_name)
7
+ api.check_exist(gem_name: gem_name) # data = {"exist": ..., "available"}
26
8
  rescue SocketError, OpenURI::HTTPError, OpenSSL::SSL::SSLError
27
- false
9
+ {"exist" => false, gem_name: gem_name, available: [] }
28
10
  end
29
11
  end
30
- end
12
+ end
@@ -1,5 +1,5 @@
1
1
  module Jets
2
2
  module Gems
3
- VERSION = "0.1.6"
3
+ VERSION = "0.2.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: serverlessgems
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tung Nguyen
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-11-11 00:00:00.000000000 Z
11
+ date: 2022-07-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gems
@@ -146,7 +146,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
146
146
  - !ruby/object:Gem::Version
147
147
  version: '0'
148
148
  requirements: []
149
- rubygems_version: 3.1.6
149
+ rubygems_version: 3.3.10
150
150
  signing_key:
151
151
  specification_version: 4
152
152
  summary: Client Library works with Serverless Gems API for Jets Ruby Serverless Framework