serverlessgems 0.4.0 → 0.4.1
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/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
|