serverlessgems 0.4.0 → 0.4.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +3 -0
- data/Gemfile +1 -1
- data/Rakefile +1 -1
- data/lib/jets/gems/agree.rb +7 -7
- data/lib/jets/gems/api/concern.rb +1 -1
- data/lib/jets/gems/api/core.rb +36 -14
- data/lib/jets/gems/api.rb +4 -4
- data/lib/jets/gems/autoloader.rb +2 -2
- data/lib/jets/gems/check.rb +37 -37
- data/lib/jets/gems/config/token.rb +2 -2
- data/lib/jets/gems/exist.rb +1 -1
- data/lib/jets/gems/extract/base.rb +5 -5
- data/lib/jets/gems/extract/gem.rb +7 -7
- data/lib/jets/gems/registered.rb +1 -1
- data/lib/jets/gems/report.rb +1 -1
- data/lib/jets/gems/version.rb +1 -1
- data/lib/jets/gems.rb +2 -2
- data/lib/serverlessgems.rb +1 -1
- data/serverlessgems.gemspec +10 -10
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f45e4781de3600f9c61880c3b508a2955a393332efff18d980bbc2ef0ebc88ab
|
4
|
+
data.tar.gz: f3d78701b967fb4fc01a0ad7f332ec83690a38f0f86a0549a210d984e8b362ae
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f7182eb8a6bafde793df547b4e8aa93a09160dfdc01181f5909fe6327971186f1c45e9d1e42d82ca65afcb98c8bf52785b877f9f9c6eb1385a8a3f4fd5b97ab4
|
7
|
+
data.tar.gz: 8d6d08fdc726541ce96b1d3a7fc56a2e324f816018e5f96705883994b2a084160bbe213d91ba043f3ab5e9dcbbc20e85cfca2227df68458810f40b2307a22cfd
|
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.4.1] - 2024-06-22
|
7
|
+
- standardrb and updates
|
8
|
+
|
6
9
|
## [0.4.0] - 2023-07-24
|
7
10
|
- [#8](https://github.com/boltops-tools/serverlessgems/pull/8) erb ruby 3 and autoloader improvements
|
8
11
|
|
data/Gemfile
CHANGED
data/Rakefile
CHANGED
data/lib/jets/gems/agree.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
module Jets::Gems
|
2
2
|
class Agree
|
3
3
|
def initialize
|
4
|
-
@agree_file = "#{ENV[
|
4
|
+
@agree_file = "#{ENV["HOME"]}/.jets/agree"
|
5
5
|
end
|
6
6
|
|
7
7
|
# Only prompts if hasnt prompted before and saved a ~/.jets/agree file
|
@@ -38,7 +38,7 @@ module Jets::Gems
|
|
38
38
|
EOL
|
39
39
|
|
40
40
|
answer = $stdin.gets.strip
|
41
|
-
value =
|
41
|
+
value = /y/i.match?(answer) ? "yes" : "no"
|
42
42
|
|
43
43
|
write_file(value)
|
44
44
|
end
|
@@ -46,24 +46,24 @@ module Jets::Gems
|
|
46
46
|
# Allow user to bypass prompt with JETS_AGREE=1 JETS_AGREE=yes etc
|
47
47
|
# Useful for CI/CD pipelines.
|
48
48
|
def bypass_prompt
|
49
|
-
agree = ENV[
|
49
|
+
agree = ENV["JETS_AGREE"]
|
50
50
|
return false unless agree
|
51
51
|
|
52
52
|
if %w[1 yes true].include?(agree.downcase)
|
53
|
-
write_file(
|
53
|
+
write_file("yes")
|
54
54
|
else
|
55
|
-
write_file(
|
55
|
+
write_file("no")
|
56
56
|
end
|
57
57
|
|
58
58
|
true
|
59
59
|
end
|
60
60
|
|
61
61
|
def yes?
|
62
|
-
File.exist?(@agree_file) && IO.read(@agree_file).strip ==
|
62
|
+
File.exist?(@agree_file) && IO.read(@agree_file).strip == "yes"
|
63
63
|
end
|
64
64
|
|
65
65
|
def no?
|
66
|
-
File.exist?(@agree_file) && IO.read(@agree_file).strip ==
|
66
|
+
File.exist?(@agree_file) && IO.read(@agree_file).strip == "no"
|
67
67
|
end
|
68
68
|
|
69
69
|
def yes!
|
data/lib/jets/gems/api/core.rb
CHANGED
@@ -5,14 +5,18 @@ class Jets::Gems::Api
|
|
5
5
|
extend Memoist
|
6
6
|
|
7
7
|
# Always translate raw json response to ruby Hash
|
8
|
-
def request(klass, path, data={})
|
8
|
+
def request(klass, path, data = {})
|
9
9
|
url = url(path)
|
10
10
|
req = build_request(klass, url, data)
|
11
11
|
resp = http.request(req) # send request
|
12
12
|
load_json(url, resp)
|
13
13
|
end
|
14
14
|
|
15
|
-
def build_request(klass, url, data={})
|
15
|
+
def build_request(klass, url, data = {})
|
16
|
+
data = global_data.merge(data)
|
17
|
+
if klass == Net::HTTP::Get
|
18
|
+
url += "?#{URI.encode_www_form(data)}" if data.any?
|
19
|
+
end
|
16
20
|
req = klass.new(url) # url includes query string and uri.path does not, must used url
|
17
21
|
set_headers!(req)
|
18
22
|
if [Net::HTTP::Delete, Net::HTTP::Patch, Net::HTTP::Post, Net::HTTP::Put].include?(klass)
|
@@ -24,13 +28,29 @@ class Jets::Gems::Api
|
|
24
28
|
end
|
25
29
|
|
26
30
|
def set_headers!(req)
|
27
|
-
req[
|
28
|
-
req[
|
29
|
-
req[
|
31
|
+
req["Authorization"] = token if token
|
32
|
+
req["x-account"] = account if account
|
33
|
+
req["Content-Type"] = "application/vnd.api+json"
|
34
|
+
end
|
35
|
+
|
36
|
+
def global_data
|
37
|
+
Jets.boot
|
38
|
+
params = {}
|
39
|
+
params[:jets_env] = Jets.env.to_s
|
40
|
+
params[:jets_extra] = Jets.extra.to_s if Jets.extra
|
41
|
+
params[:name] = Jets.project_namespace
|
42
|
+
params[:region] = Jets.aws.region
|
43
|
+
params[:account] = Jets.aws.account
|
44
|
+
params[:project_id] = Jets.config.project_name
|
45
|
+
params[:serverlessgems_version] = Jets::Gems::VERSION
|
46
|
+
params[:jets_version] = Jets::VERSION
|
47
|
+
params[:ruby_version] = RUBY_VERSION
|
48
|
+
params[:ruby_folder] = Jets::Gems.ruby_folder
|
49
|
+
params
|
30
50
|
end
|
31
51
|
|
32
52
|
def token
|
33
|
-
Jets::Gems::Config.instance.data[
|
53
|
+
Jets::Gems::Config.instance.data["key"]
|
34
54
|
end
|
35
55
|
|
36
56
|
def load_json(url, res)
|
@@ -40,7 +60,7 @@ class Jets::Gems::Api
|
|
40
60
|
else
|
41
61
|
puts "Error: Non-successful http response status code: #{res.code}"
|
42
62
|
puts "headers: #{res.each_header.to_h.inspect}"
|
43
|
-
puts "ServerlessGems API #{url}" if ENV[
|
63
|
+
puts "ServerlessGems API #{url}" if ENV["SG_DEBUG"]
|
44
64
|
raise "ServerlessGems API called failed: #{uri.host}"
|
45
65
|
end
|
46
66
|
end
|
@@ -55,7 +75,7 @@ class Jets::Gems::Api
|
|
55
75
|
uri = URI(endpoint)
|
56
76
|
http = Net::HTTP.new(uri.host, uri.port)
|
57
77
|
http.open_timeout = http.read_timeout = 30
|
58
|
-
http.use_ssl = true if uri.scheme ==
|
78
|
+
http.use_ssl = true if uri.scheme == "https"
|
59
79
|
http
|
60
80
|
end
|
61
81
|
memoize :http
|
@@ -65,24 +85,26 @@ class Jets::Gems::Api
|
|
65
85
|
"#{endpoint}/#{path}"
|
66
86
|
end
|
67
87
|
|
68
|
-
def get(path)
|
69
|
-
request(Net::HTTP::Get, path)
|
88
|
+
def get(path, data = {})
|
89
|
+
request(Net::HTTP::Get, path, data)
|
70
90
|
end
|
71
91
|
|
72
|
-
def post(path, data={})
|
92
|
+
def post(path, data = {})
|
73
93
|
request(Net::HTTP::Post, path, data)
|
74
94
|
end
|
75
95
|
|
76
|
-
def patch(path, data={})
|
96
|
+
def patch(path, data = {})
|
77
97
|
request(Net::HTTP::Patch, path, data)
|
78
98
|
end
|
79
99
|
|
80
|
-
def delete(path, data={})
|
100
|
+
def delete(path, data = {})
|
81
101
|
request(Net::HTTP::Delete, path, data)
|
82
102
|
end
|
83
103
|
|
84
104
|
def account
|
85
|
-
sts.get_caller_identity.account
|
105
|
+
sts.get_caller_identity.account
|
106
|
+
rescue
|
107
|
+
nil
|
86
108
|
end
|
87
109
|
memoize :account
|
88
110
|
|
data/lib/jets/gems/api.rb
CHANGED
@@ -3,19 +3,19 @@ module Jets::Gems
|
|
3
3
|
include Core
|
4
4
|
|
5
5
|
def endpoint
|
6
|
-
ENV[
|
6
|
+
ENV["SG_API"] || Jets.config.gems.source || "https://api.serverlessgems.com/api/v1"
|
7
7
|
end
|
8
8
|
|
9
9
|
def download_url(gem_name:, project:)
|
10
|
-
get("gem/download
|
10
|
+
get("gem/download", gem_name: gem_name, ruby_folder: ruby_folder, project: project)
|
11
11
|
end
|
12
12
|
|
13
13
|
def check_exist(gem_name:)
|
14
|
-
get("gem/exist
|
14
|
+
get("gem/exist", gem_name: gem_name, ruby_folder: ruby_folder)
|
15
15
|
end
|
16
16
|
|
17
17
|
def report_missing(gem_name:)
|
18
|
-
get("report/missing
|
18
|
+
get("report/missing", gem_name: gem_name, ruby_folder: ruby_folder)
|
19
19
|
end
|
20
20
|
|
21
21
|
def registered_gems
|
data/lib/jets/gems/autoloader.rb
CHANGED
@@ -6,7 +6,7 @@ module Jets
|
|
6
6
|
class Autoloader
|
7
7
|
class Inflector < Zeitwerk::Inflector
|
8
8
|
def camelize(basename, _abspath)
|
9
|
-
map = {
|
9
|
+
map = {cli: "CLI", version: "VERSION"}
|
10
10
|
map[basename.to_sym] || super
|
11
11
|
end
|
12
12
|
end
|
@@ -15,7 +15,7 @@ module Jets
|
|
15
15
|
def setup
|
16
16
|
loader = Zeitwerk::Loader.new
|
17
17
|
loader.inflector = Inflector.new
|
18
|
-
lib = File.expand_path(
|
18
|
+
lib = File.expand_path("../..", __dir__)
|
19
19
|
loader.push_dir(lib) # lib
|
20
20
|
loader.ignore("#{lib}/serverlessgems.rb")
|
21
21
|
loader.setup
|
data/lib/jets/gems/check.rb
CHANGED
@@ -6,7 +6,7 @@ module Jets::Gems
|
|
6
6
|
extend Memoist
|
7
7
|
|
8
8
|
attr_reader :missing_gems
|
9
|
-
def initialize(options={})
|
9
|
+
def initialize(options = {})
|
10
10
|
@options = options
|
11
11
|
@missing_gems = [] # keeps track of gems that are not found in any of the serverlessgems source
|
12
12
|
end
|
@@ -17,7 +17,7 @@ module Jets::Gems
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def gems_source
|
20
|
-
ENV[
|
20
|
+
ENV["SG_API"] || Jets.config.gems.source
|
21
21
|
end
|
22
22
|
|
23
23
|
# Checks whether the gem is found at the serverlessgems source.
|
@@ -35,7 +35,7 @@ module Jets::Gems
|
|
35
35
|
# Better to error now than deploy a broken package to AWS Lambda.
|
36
36
|
# Provide users with message about using their own serverlessgems source.
|
37
37
|
puts missing_message
|
38
|
-
names = @missing_gems.map {|i| i[
|
38
|
+
names = @missing_gems.map { |i| i["gem_name"] }
|
39
39
|
Report.new(@options).report(names) if agree.yes?
|
40
40
|
exit 1
|
41
41
|
end
|
@@ -48,36 +48,36 @@ module Jets::Gems
|
|
48
48
|
end
|
49
49
|
|
50
50
|
def missing_message
|
51
|
-
template =
|
52
|
-
Your project requires compiled gems that are not currently available. Unavailable pre-compiled gems:
|
53
|
-
<% missing_gems.each do |missing_gem|
|
54
|
-
|
55
|
-
%>
|
56
|
-
* Unavailable: <%= missing_gem['gem_name'] -%> Available versions: <%= available.join(' ') %>
|
57
|
-
<% end %>
|
58
|
-
Your current serverlessgems source: #{gems_source}
|
59
|
-
|
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:
|
61
|
-
|
62
|
-
* Use another gem that does not require compilation.
|
63
|
-
* Create your own custom layer with the gem: http://rubyonjets.com/docs/extras/custom-lambda-layers/
|
64
|
-
<% if agree.yes? -%>
|
65
|
-
* No need to report this to us, as we've already been notified.
|
66
|
-
* Usually, missing gems can be built within a few minutes.
|
67
|
-
* Some gems may take days or even longer.
|
68
|
-
<% elsif agree.no? -%>
|
69
|
-
* You have choosen not to report data to serverlessgems so we will not be notified about these missing gems.
|
70
|
-
* You can edit ~/.jets/agree to change this.
|
71
|
-
* Reporting gems generally allows Serverless Gems to build the missing gems within a few minutes.
|
72
|
-
* You can try redeploying again after a few minutes.
|
73
|
-
* Non-reported gems may take days or even longer to be built.
|
74
|
-
<% end -%>
|
75
|
-
|
76
|
-
Compiled gems usually take some time to figure out how to build as they each depend on different libraries and packages.
|
77
|
-
More info: http://rubyonjets.com/docs/serverlessgems/
|
78
|
-
|
79
|
-
EOL
|
80
|
-
erb = ERB.new(template, trim_mode:
|
51
|
+
template = <<~EOL
|
52
|
+
Your project requires compiled gems that are not currently available. Unavailable pre-compiled gems:
|
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(' ') %>
|
57
|
+
<% end %>
|
58
|
+
Your current serverlessgems source: #{gems_source}
|
59
|
+
|
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:
|
61
|
+
|
62
|
+
* Use another gem that does not require compilation.
|
63
|
+
* Create your own custom layer with the gem: http://rubyonjets.com/docs/extras/custom-lambda-layers/
|
64
|
+
<% if agree.yes? -%>
|
65
|
+
* No need to report this to us, as we've already been notified.
|
66
|
+
* Usually, missing gems can be built within a few minutes.
|
67
|
+
* Some gems may take days or even longer.
|
68
|
+
<% elsif agree.no? -%>
|
69
|
+
* You have choosen not to report data to serverlessgems so we will not be notified about these missing gems.
|
70
|
+
* You can edit ~/.jets/agree to change this.
|
71
|
+
* Reporting gems generally allows Serverless Gems to build the missing gems within a few minutes.
|
72
|
+
* You can try redeploying again after a few minutes.
|
73
|
+
* Non-reported gems may take days or even longer to be built.
|
74
|
+
<% end -%>
|
75
|
+
|
76
|
+
Compiled gems usually take some time to figure out how to build as they each depend on different libraries and packages.
|
77
|
+
More info: http://rubyonjets.com/docs/serverlessgems/
|
78
|
+
|
79
|
+
EOL
|
80
|
+
erb = ERB.new(template, trim_mode: "-") # trim mode https://stackoverflow.com/questions/4632879/erb-template-removing-the-trailing-line
|
81
81
|
erb.result(binding)
|
82
82
|
end
|
83
83
|
|
@@ -159,7 +159,7 @@ EOL
|
|
159
159
|
GEM_REGEXP = /-(arm|x)\d+.*-(darwin|linux)/
|
160
160
|
def other_compiled_gems
|
161
161
|
paths = Dir.glob("#{Jets.build_root}/stage/opt/ruby/gems/#{Jets::Gems.ruby_folder}/gems/*{-darwin,-linux}")
|
162
|
-
paths.map { |p| File.basename(p).sub(GEM_REGEXP,
|
162
|
+
paths.map { |p| File.basename(p).sub(GEM_REGEXP, "") }
|
163
163
|
end
|
164
164
|
|
165
165
|
def registered_compiled_gems
|
@@ -167,9 +167,9 @@ EOL
|
|
167
167
|
registered_gems = registered.all # no version numbers in this list
|
168
168
|
|
169
169
|
paths = Dir.glob("#{Jets.build_root}/stage/opt/ruby/gems/#{Jets::Gems.ruby_folder}/gems/*")
|
170
|
-
project_gems = paths.map { |p| File.basename(p).sub(GEM_REGEXP,
|
170
|
+
project_gems = paths.map { |p| File.basename(p).sub(GEM_REGEXP, "") }
|
171
171
|
project_gems.select do |name|
|
172
|
-
name_only = name.sub(/-\d+\.\d+\.\d+.*/,
|
172
|
+
name_only = name.sub(/-\d+\.\d+\.\d+.*/, "")
|
173
173
|
registered_gems.include?(name_only)
|
174
174
|
end
|
175
175
|
end
|
@@ -210,7 +210,7 @@ EOL
|
|
210
210
|
# Thanks: https://gist.github.com/aelesbao/1414b169a79162b1d795 and
|
211
211
|
# https://stackoverflow.com/questions/5165950/how-do-i-get-a-list-of-gems-that-are-installed-that-have-native-extensions
|
212
212
|
def gemspec_compiled_gems
|
213
|
-
specs = Gem::Specification.each.select { |spec| spec.extensions.any?
|
213
|
+
specs = Gem::Specification.each.select { |spec| spec.extensions.any? }
|
214
214
|
specs.reject! { |spec| weird_gem?(spec.name) }
|
215
215
|
specs.map(&:full_name)
|
216
216
|
end
|
data/lib/jets/gems/exist.rb
CHANGED
@@ -6,7 +6,7 @@ module Jets::Gems
|
|
6
6
|
def check(gem_name)
|
7
7
|
api.check_exist(gem_name: gem_name) # data = {"exist": ..., "available"}
|
8
8
|
rescue SocketError, OpenURI::HTTPError, OpenSSL::SSL::SSLError
|
9
|
-
{"exist" => false, gem_name
|
9
|
+
{"exist" => false, :gem_name => gem_name, :available => []}
|
10
10
|
end
|
11
11
|
end
|
12
12
|
end
|
@@ -5,7 +5,7 @@ module Jets::Gems::Extract
|
|
5
5
|
class NotFound < RuntimeError; end
|
6
6
|
|
7
7
|
attr_reader :project_root
|
8
|
-
def initialize(name, options={})
|
8
|
+
def initialize(name, options = {})
|
9
9
|
@name = name
|
10
10
|
@options = options
|
11
11
|
ruby_folder = Jets::Gems.ruby_folder
|
@@ -35,17 +35,17 @@ module Jets::Gems::Extract
|
|
35
35
|
|
36
36
|
# Returns the dest path
|
37
37
|
def download_file(url, dest)
|
38
|
-
if File.exist?(dest) && ENV[
|
38
|
+
if File.exist?(dest) && ENV["SG_FORCE_DOWNLOAD"].blank?
|
39
39
|
say "File already downloaded #{dest}"
|
40
40
|
return dest
|
41
41
|
end
|
42
42
|
|
43
43
|
say "Downloading..."
|
44
|
-
downloaded = URI.open(url,
|
44
|
+
downloaded = URI.open(url, "rb") { |read_file| read_file.read }
|
45
45
|
|
46
46
|
FileUtils.mkdir_p(File.dirname(dest)) # ensure parent folder exists
|
47
47
|
|
48
|
-
File.
|
48
|
+
File.binwrite(dest, downloaded)
|
49
49
|
|
50
50
|
dest
|
51
51
|
end
|
@@ -56,7 +56,7 @@ module Jets::Gems::Extract
|
|
56
56
|
@@log_level = val
|
57
57
|
end
|
58
58
|
|
59
|
-
def say(message, level
|
59
|
+
def say(message, level = :info)
|
60
60
|
enabled = @@log_level == :debug || level == :debug
|
61
61
|
puts(message) if enabled
|
62
62
|
end
|
@@ -36,7 +36,7 @@ module Jets::Gems::Extract
|
|
36
36
|
end
|
37
37
|
|
38
38
|
def gem_name
|
39
|
-
full_gem_name.gsub(VERSION_PATTERN,
|
39
|
+
full_gem_name.gsub(VERSION_PATTERN, "") # folder: byebug
|
40
40
|
end
|
41
41
|
|
42
42
|
# Downloads and extracts the linux gem into the proper directory.
|
@@ -53,10 +53,10 @@ module Jets::Gems::Extract
|
|
53
53
|
begin
|
54
54
|
@retries ||= 0
|
55
55
|
url = gem_url
|
56
|
-
basename = File.basename(url).gsub(/\?.*/,
|
56
|
+
basename = File.basename(url).gsub(/\?.*/, "") # remove query string info
|
57
57
|
tarball_dest = download_file(url, download_path(basename))
|
58
58
|
rescue OpenURI::HTTPError => e
|
59
|
-
url_without_query = url.gsub(/\?.*/,
|
59
|
+
url_without_query = url.gsub(/\?.*/, "")
|
60
60
|
puts "Error downloading #{url_without_query}"
|
61
61
|
@retries += 1
|
62
62
|
if @retries < 3
|
@@ -104,10 +104,10 @@ module Jets::Gems::Extract
|
|
104
104
|
def remove_current_gem
|
105
105
|
say "Removing current #{full_gem_name} gem installation:"
|
106
106
|
gem_dirs = Dir.glob("#{project_root}/**/*").select do |path|
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
107
|
+
File.directory?(path) &&
|
108
|
+
path =~ %r{vendor/gems} &&
|
109
|
+
File.basename(path) == full_gem_name
|
110
|
+
end
|
111
111
|
gem_dirs.each do |dir|
|
112
112
|
say " rm -rf #{dir}"
|
113
113
|
FileUtils.rm_rf(dir)
|
data/lib/jets/gems/registered.rb
CHANGED
data/lib/jets/gems/report.rb
CHANGED
data/lib/jets/gems/version.rb
CHANGED
data/lib/jets/gems.rb
CHANGED
@@ -10,8 +10,8 @@ require "yaml"
|
|
10
10
|
module Jets
|
11
11
|
module Gems
|
12
12
|
def ruby_folder
|
13
|
-
major, minor, _ = RUBY_VERSION.split(
|
14
|
-
[major, minor,
|
13
|
+
major, minor, _ = RUBY_VERSION.split(".")
|
14
|
+
[major, minor, "0"].join(".") # 2.5.1 => 2.5.0
|
15
15
|
end
|
16
16
|
|
17
17
|
extend self
|
data/lib/serverlessgems.rb
CHANGED
@@ -1 +1 @@
|
|
1
|
-
require "jets/gems"
|
1
|
+
require "jets/gems"
|
data/serverlessgems.gemspec
CHANGED
@@ -3,22 +3,22 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
3
3
|
require "jets/gems/version"
|
4
4
|
|
5
5
|
Gem::Specification.new do |spec|
|
6
|
-
spec.name
|
7
|
-
spec.version
|
8
|
-
spec.authors
|
9
|
-
spec.email
|
6
|
+
spec.name = "serverlessgems"
|
7
|
+
spec.version = Jets::Gems::VERSION
|
8
|
+
spec.authors = ["Tung Nguyen"]
|
9
|
+
spec.email = ["tongueroo@gmail.com"]
|
10
10
|
|
11
|
-
spec.summary
|
12
|
-
spec.homepage
|
13
|
-
spec.license
|
11
|
+
spec.summary = "Client Library works with Serverless Gems API for Jets Ruby Serverless Framework"
|
12
|
+
spec.homepage = "https://github.com/boltops-tools/serverlessgems"
|
13
|
+
spec.license = "MIT"
|
14
14
|
|
15
15
|
# Specify which files should be added to the gem when it is released.
|
16
16
|
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
17
|
-
spec.files
|
17
|
+
spec.files = Dir.chdir(File.expand_path("..", __FILE__)) do
|
18
18
|
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
19
19
|
end
|
20
|
-
spec.bindir
|
21
|
-
spec.executables
|
20
|
+
spec.bindir = "exe"
|
21
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
22
22
|
spec.require_paths = ["lib"]
|
23
23
|
|
24
24
|
spec.add_dependency "gems"
|
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.4.
|
4
|
+
version: 0.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tung Nguyen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-06-22 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.
|
149
|
+
rubygems_version: 3.5.13
|
150
150
|
signing_key:
|
151
151
|
specification_version: 4
|
152
152
|
summary: Client Library works with Serverless Gems API for Jets Ruby Serverless Framework
|