faastruby 0.3.1 → 0.3.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +9 -0
- data/Gemfile.lock +4 -4
- data/example-blank/handler.rb +16 -2
- data/example-blank/spec/handler_spec.rb +2 -2
- data/example-blank/spec/helpers/faastruby.rb +46 -3
- data/example-blank/spec/spec_helper.rb +1 -1
- data/example/handler.rb +16 -8
- data/example/spec/handler_spec.rb +3 -3
- data/example/spec/helpers/faastruby.rb +46 -3
- data/example/spec/spec_helper.rb +1 -1
- data/faastruby.gemspec +1 -1
- data/lib/faastruby/base.rb +1 -2
- data/lib/faastruby/cli/commands.rb +2 -1
- data/lib/faastruby/cli/commands/function.rb +1 -1
- data/lib/faastruby/cli/commands/function/build.rb +7 -0
- data/lib/faastruby/cli/commands/function/{deploy.rb → deploy_to.rb} +10 -2
- data/lib/faastruby/cli/commands/function/test.rb +2 -12
- data/lib/faastruby/cli/commands/workspace.rb +2 -1
- data/lib/faastruby/cli/commands/workspace/create.rb +6 -1
- data/lib/faastruby/cli/commands/workspace/deploy.rb +50 -0
- data/lib/faastruby/version.rb +1 -1
- metadata +6 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2d752da5ce5767b5c7b97f6e53e884ab2ba0123f36f713f6a70ba82fc8055acf
|
4
|
+
data.tar.gz: d9c3038e42ca26f6b3de8953c06c7724a046549ae49942040ab8d9c3344536d2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 60085ed613203a88e39cbcc17aba0de3ed3884d6794255385e887c042097a871af5cb00069f422bcf96d855a969ec0e9253c98baf37c2819cefaf32737b8c6a0
|
7
|
+
data.tar.gz: 2e50627ab43fd3fa0a6eabd702211d9df7759d810fa1691ef57177d390f4fa74730412b2c0c2c40a4429f05b83977520213a9fcac579766bf4c44bb459c61562
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,14 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## 0.3.2 - Dec 15 2018
|
4
|
+
- Better output for tests
|
5
|
+
- `bundle check && bundle install` runs before building a package to make sure Gemfile.lock is updated.
|
6
|
+
- New command: `faastruby deploy`. This command is meant to be run in a FaaStRuby Project folder, and will deploy all workspaces and their functions.
|
7
|
+
- Updated spec templates with new helper that stubs calls to FaaStRuby server when using `faastruby-rpc`.
|
8
|
+
- `render` is now the preferred method to set the return value of functions.
|
9
|
+
- Upgraded dependency `faastruby-rpc` to version 0.1.3.
|
10
|
+
- Removed region SFO2 (sorry, but the usage was minimal.)
|
11
|
+
|
3
12
|
## 0.3.1 - Dec 9 2018
|
4
13
|
- Add faastruby-rpc to Gemfile template and runtime dependencies
|
5
14
|
|
data/Gemfile.lock
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
faastruby (0.3.
|
4
|
+
faastruby (0.3.2)
|
5
5
|
colorize (~> 0.8)
|
6
|
-
faastruby-rpc (~> 0.1)
|
6
|
+
faastruby-rpc (~> 0.1.3)
|
7
7
|
oj (~> 3.6)
|
8
8
|
puma (~> 3.12)
|
9
9
|
rest-client (~> 2.0)
|
@@ -32,12 +32,12 @@ GEM
|
|
32
32
|
domain_name (0.5.20180417)
|
33
33
|
unf (>= 0.0.5, < 1.0.0)
|
34
34
|
equatable (0.5.0)
|
35
|
-
faastruby-rpc (0.1.
|
35
|
+
faastruby-rpc (0.1.3)
|
36
36
|
oj (~> 3.6)
|
37
37
|
hashdiff (0.3.7)
|
38
38
|
http-cookie (1.0.3)
|
39
39
|
domain_name (~> 0.5)
|
40
|
-
i18n (1.
|
40
|
+
i18n (1.2.0)
|
41
41
|
concurrent-ruby (~> 1.0)
|
42
42
|
mime-types (3.2.2)
|
43
43
|
mime-types-data (~> 3.2015)
|
data/example-blank/handler.rb
CHANGED
@@ -1,4 +1,18 @@
|
|
1
1
|
def handler event
|
2
|
-
#
|
3
|
-
#
|
2
|
+
# FUNCTION RESPONSE
|
3
|
+
#
|
4
|
+
# You can render text, json, yaml, html or js. Example:
|
5
|
+
# render html: '<p>Hello World!</p>'
|
6
|
+
# render yaml: {hello: 'world!'}
|
7
|
+
#
|
8
|
+
# Status:
|
9
|
+
# The default status is 200. You can set a custom status like this:
|
10
|
+
# render json: {error: 'Could not perform the action'}, status: 422
|
11
|
+
#
|
12
|
+
# Headers:
|
13
|
+
# The 'Content-Type' header is automatically set when you use 'render'.
|
14
|
+
# You can set custom headers using a hash with string keys. Example:
|
15
|
+
# render text: 'It Works!', headers: {'TransactionId' => 23928}
|
16
|
+
|
17
|
+
# Write code here
|
4
18
|
end
|
@@ -5,7 +5,7 @@ describe 'handler(event)' do
|
|
5
5
|
let(:event) {SpecHelper::Event.new}
|
6
6
|
|
7
7
|
it 'should return Hash, String or Array' do
|
8
|
-
body = handler(event).body
|
9
|
-
expect([String, Hash, Array].include? body.class).to be true
|
8
|
+
body = handler(event).call.body
|
9
|
+
expect([String, Hash, Array, ].include? body.class).to be true
|
10
10
|
end
|
11
11
|
end
|
@@ -1,8 +1,12 @@
|
|
1
|
+
require 'yaml'
|
2
|
+
require 'oj'
|
3
|
+
|
1
4
|
module FaaStRuby
|
2
5
|
def self.included(base)
|
3
6
|
base.extend(SpecHelper)
|
4
7
|
$LOAD_PATH << Dir.pwd
|
5
8
|
end
|
9
|
+
class DoubleRenderError < StandardError; end
|
6
10
|
module SpecHelper
|
7
11
|
class Event
|
8
12
|
@@event = Struct.new(:body, :query_params, :headers, :context)
|
@@ -11,13 +15,52 @@ module FaaStRuby
|
|
11
15
|
end
|
12
16
|
end
|
13
17
|
class Response
|
14
|
-
@@response = Struct.new(:body, :status, :headers)
|
15
|
-
|
16
|
-
|
18
|
+
# @@response = Struct.new(:body, :status, :headers)
|
19
|
+
attr_accessor :body, :status, :headers
|
20
|
+
@@rendered = false
|
21
|
+
def initialize(body, status, headers)
|
22
|
+
if @@rendered
|
23
|
+
raise FaaStRuby::DoubleRenderError.new("You called 'render' or 'respond_with' multiple times in your handler method.")
|
24
|
+
end
|
25
|
+
@@rendered = true
|
26
|
+
@body = body
|
27
|
+
@status = status
|
28
|
+
@headers = headers
|
29
|
+
end
|
30
|
+
|
31
|
+
def call
|
32
|
+
@@rendered = false
|
33
|
+
self
|
17
34
|
end
|
18
35
|
end
|
19
36
|
end
|
37
|
+
|
20
38
|
def respond_with(body, status: 200, headers: {})
|
21
39
|
SpecHelper::Response.new(body, status, headers)
|
22
40
|
end
|
41
|
+
|
42
|
+
def render(js: nil, body: nil, inline: nil, html: nil, json: nil, yaml: nil, text: nil, status: 200, headers: {}, content_type: nil)
|
43
|
+
headers["Content-Type"] = content_type if content_type
|
44
|
+
case
|
45
|
+
when json
|
46
|
+
headers["Content-Type"] ||= "application/json"
|
47
|
+
resp_body = json.is_a?(String) ? json : Oj.dump(json)
|
48
|
+
when html, inline
|
49
|
+
headers["Content-Type"] ||= "text/html"
|
50
|
+
resp_body = html
|
51
|
+
when text
|
52
|
+
headers["Content-Type"] ||= "text/plain"
|
53
|
+
resp_body = text
|
54
|
+
when yaml
|
55
|
+
headers["Content-Type"] ||= "application/yaml"
|
56
|
+
resp_body = yaml.to_yaml
|
57
|
+
when body
|
58
|
+
headers["Content-Type"] ||= "application/octet-stream"
|
59
|
+
resp_body = raw
|
60
|
+
when js
|
61
|
+
headers["Content-Type"] ||= "text/javascript"
|
62
|
+
resp_body = js
|
63
|
+
end
|
64
|
+
respond_with(resp_body, status: status, headers: headers)
|
65
|
+
end
|
23
66
|
end
|
data/example/handler.rb
CHANGED
@@ -4,14 +4,22 @@ require 'json'
|
|
4
4
|
# 1) If you don't have a workspace, create one by running:
|
5
5
|
# faastruby create-workspace WORKSPACE_NAME
|
6
6
|
# 2) To deploy this function, cd into its folder and run:
|
7
|
-
# faastruby deploy WORKSPACE_NAME
|
7
|
+
# faastruby deploy-to WORKSPACE_NAME
|
8
8
|
def handler event
|
9
|
-
headers = {
|
10
|
-
'Content-Type' => 'text/plain',
|
11
|
-
'My-Custom-Header' => 'Value'
|
12
|
-
}
|
13
9
|
data = event.body ? JSON.parse(event.body) : {}
|
14
|
-
#
|
15
|
-
|
16
|
-
|
10
|
+
# FUNCTION RESPONSE
|
11
|
+
#
|
12
|
+
# You can render text, json, yaml, html or js. Example:
|
13
|
+
# render html: '<p>Hello World!</p>'
|
14
|
+
# render yaml: {hello: 'world!'}
|
15
|
+
#
|
16
|
+
# Status:
|
17
|
+
# The default status is 200. You can set a custom status like this:
|
18
|
+
# render json: {error: 'Could not perform the action'}, status: 422
|
19
|
+
#
|
20
|
+
# Headers:
|
21
|
+
# The 'Content-Type' header is automatically set when you use 'render'.
|
22
|
+
# You can set custom headers using a hash with string keys. Example:
|
23
|
+
# render text: 'It Works!', headers: {'TransactionId' => 23928}
|
24
|
+
render text: "Hello, #{data['name'] || 'World'}!"
|
17
25
|
end
|
@@ -5,16 +5,16 @@ describe 'handler(event)' do
|
|
5
5
|
let(:event) {SpecHelper::Event.new(body: '{"name": "Ruby"}')}
|
6
6
|
|
7
7
|
it 'should return Hash, String or Array' do
|
8
|
-
body = handler(event).body
|
8
|
+
body = handler(event).call.body
|
9
9
|
expect([String, Hash, Array].include? body.class).to be true
|
10
10
|
end
|
11
11
|
it 'should add the name to the response string' do
|
12
|
-
body = handler(event).body
|
12
|
+
body = handler(event).call.body
|
13
13
|
expect(body).to be == 'Hello, Ruby!'
|
14
14
|
end
|
15
15
|
it 'should say Hello, World! when name is not present' do
|
16
16
|
event = SpecHelper::Event.new(body: nil)
|
17
|
-
body = handler(event).body
|
17
|
+
body = handler(event).call.body
|
18
18
|
expect(body).to be == 'Hello, World!'
|
19
19
|
end
|
20
20
|
end
|
@@ -1,8 +1,12 @@
|
|
1
|
+
require 'yaml'
|
2
|
+
require 'oj'
|
3
|
+
|
1
4
|
module FaaStRuby
|
2
5
|
def self.included(base)
|
3
6
|
base.extend(SpecHelper)
|
4
7
|
$LOAD_PATH << Dir.pwd
|
5
8
|
end
|
9
|
+
class DoubleRenderError < StandardError; end
|
6
10
|
module SpecHelper
|
7
11
|
class Event
|
8
12
|
@@event = Struct.new(:body, :query_params, :headers, :context)
|
@@ -11,13 +15,52 @@ module FaaStRuby
|
|
11
15
|
end
|
12
16
|
end
|
13
17
|
class Response
|
14
|
-
@@response = Struct.new(:body, :status, :headers)
|
15
|
-
|
16
|
-
|
18
|
+
# @@response = Struct.new(:body, :status, :headers)
|
19
|
+
attr_accessor :body, :status, :headers
|
20
|
+
@@rendered = false
|
21
|
+
def initialize(body, status, headers)
|
22
|
+
if @@rendered
|
23
|
+
raise FaaStRuby::DoubleRenderError.new("You called 'render' or 'respond_with' multiple times in your handler method.")
|
24
|
+
end
|
25
|
+
@@rendered = true
|
26
|
+
@body = body
|
27
|
+
@status = status
|
28
|
+
@headers = headers
|
29
|
+
end
|
30
|
+
|
31
|
+
def call
|
32
|
+
@@rendered = false
|
33
|
+
self
|
17
34
|
end
|
18
35
|
end
|
19
36
|
end
|
37
|
+
|
20
38
|
def respond_with(body, status: 200, headers: {})
|
21
39
|
SpecHelper::Response.new(body, status, headers)
|
22
40
|
end
|
41
|
+
|
42
|
+
def render(js: nil, body: nil, inline: nil, html: nil, json: nil, yaml: nil, text: nil, status: 200, headers: {}, content_type: nil)
|
43
|
+
headers["Content-Type"] = content_type if content_type
|
44
|
+
case
|
45
|
+
when json
|
46
|
+
headers["Content-Type"] ||= "application/json"
|
47
|
+
resp_body = json.is_a?(String) ? json : Oj.dump(json)
|
48
|
+
when html, inline
|
49
|
+
headers["Content-Type"] ||= "text/html"
|
50
|
+
resp_body = html
|
51
|
+
when text
|
52
|
+
headers["Content-Type"] ||= "text/plain"
|
53
|
+
resp_body = text
|
54
|
+
when yaml
|
55
|
+
headers["Content-Type"] ||= "application/yaml"
|
56
|
+
resp_body = yaml.to_yaml
|
57
|
+
when body
|
58
|
+
headers["Content-Type"] ||= "application/octet-stream"
|
59
|
+
resp_body = raw
|
60
|
+
when js
|
61
|
+
headers["Content-Type"] ||= "text/javascript"
|
62
|
+
resp_body = js
|
63
|
+
end
|
64
|
+
respond_with(resp_body, status: status, headers: headers)
|
65
|
+
end
|
23
66
|
end
|
data/example/spec/spec_helper.rb
CHANGED
data/faastruby.gemspec
CHANGED
@@ -20,7 +20,7 @@ Gem::Specification.new do |spec|
|
|
20
20
|
spec.add_runtime_dependency 'sinatra', '~> 2.0'
|
21
21
|
spec.add_runtime_dependency 'sinatra-contrib', '~> 2.0'
|
22
22
|
spec.add_runtime_dependency 'puma', '~> 3.12'
|
23
|
-
spec.add_runtime_dependency 'faastruby-rpc', '~> 0.1'
|
23
|
+
spec.add_runtime_dependency 'faastruby-rpc', '~> 0.1.3'
|
24
24
|
|
25
25
|
# Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
|
26
26
|
# to allow pushing to a single host or delete this section to allow pushing to any host.
|
data/lib/faastruby/base.rb
CHANGED
@@ -43,7 +43,8 @@ module FaaStRuby
|
|
43
43
|
module Command
|
44
44
|
COMMANDS = {
|
45
45
|
'new' => FaaStRuby::Command::Function::New,
|
46
|
-
'deploy-to' => FaaStRuby::Command::Function::
|
46
|
+
'deploy-to' => FaaStRuby::Command::Function::DeployTo,
|
47
|
+
'deploy' => FaaStRuby::Command::Workspace::Deploy,
|
47
48
|
'remove-from' => FaaStRuby::Command::Function::RemoveFrom,
|
48
49
|
'update-context' => FaaStRuby::Command::Function::UpdateContext,
|
49
50
|
'upgrade' => FaaStRuby::Command::Function::Upgrade,
|
@@ -22,7 +22,7 @@ module FaaStRuby
|
|
22
22
|
end
|
23
23
|
|
24
24
|
require 'faastruby/cli/commands/function/build'
|
25
|
-
require 'faastruby/cli/commands/function/
|
25
|
+
require 'faastruby/cli/commands/function/deploy_to'
|
26
26
|
require 'faastruby/cli/commands/function/new'
|
27
27
|
require 'faastruby/cli/commands/function/remove_from'
|
28
28
|
require 'faastruby/cli/commands/function/test'
|
@@ -21,6 +21,7 @@ module FaaStRuby
|
|
21
21
|
end
|
22
22
|
|
23
23
|
def run
|
24
|
+
FaaStRuby::CLI.error('Please fix the problems above and try again') unless bundle_install
|
24
25
|
tests_passed = run_tests
|
25
26
|
FaaStRuby::CLI.error("Build aborted because tests failed and you have 'abort_build_when_tests_fail: true' in 'faastruby.yml'") unless tests_passed || !@abort_when_tests_fail
|
26
27
|
puts "Warning: Ignoring failed tests because you have 'abort_build_when_tests_fail: false' in 'faastruby.yml'".yellow if !tests_passed && !@abort_when_tests_fail
|
@@ -41,6 +42,12 @@ module FaaStRuby
|
|
41
42
|
self.class.build(source, output_file)
|
42
43
|
end
|
43
44
|
|
45
|
+
def bundle_install
|
46
|
+
puts '[build] Verifying dependencies'
|
47
|
+
return true unless File.file?('Gemfile')
|
48
|
+
system('bundle check') || system('bundle install')
|
49
|
+
end
|
50
|
+
|
44
51
|
def run_tests
|
45
52
|
FaaStRuby::Command::Function::Test.new(true).run(do_not_exit: true)
|
46
53
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module FaaStRuby
|
2
2
|
module Command
|
3
3
|
module Function
|
4
|
-
class
|
4
|
+
class DeployTo < FunctionBaseCommand
|
5
5
|
def initialize(args)
|
6
6
|
@args = args
|
7
7
|
@missing_args = []
|
@@ -14,17 +14,19 @@ module FaaStRuby
|
|
14
14
|
end
|
15
15
|
|
16
16
|
def run
|
17
|
+
FaaStRuby::CLI.error('Please fix the problems above and try again') unless bundle_install
|
17
18
|
tests_passed = run_tests
|
18
19
|
FaaStRuby::CLI.error("Deploy aborted because tests failed and you have 'abort_deploy_when_tests_fail: true' in 'faastruby.yml'") unless tests_passed || !@abort_when_tests_fail
|
19
20
|
puts "Warning: Ignoring failed tests because you have 'abort_deploy_when_tests_fail: false' in 'faastruby.yml'".yellow if !tests_passed && !@abort_when_tests_fail
|
20
21
|
package_file_name = build_package
|
21
|
-
spinner = spin("Deploying
|
22
|
+
spinner = spin("Deploying '#{@workspace_name}/#{@function_name}'")
|
22
23
|
workspace = FaaStRuby::Workspace.new(name: @workspace_name).deploy(package_file_name)
|
23
24
|
if workspace.errors.any?
|
24
25
|
spinner.stop('Failed :(')
|
25
26
|
FaaStRuby::CLI.error(workspace.errors)
|
26
27
|
end
|
27
28
|
spinner.stop('Done!')
|
29
|
+
exit 0
|
28
30
|
end
|
29
31
|
|
30
32
|
def self.help
|
@@ -37,6 +39,12 @@ module FaaStRuby
|
|
37
39
|
|
38
40
|
private
|
39
41
|
|
42
|
+
def bundle_install
|
43
|
+
puts '[build] Verifying dependencies'
|
44
|
+
return true unless File.file?('Gemfile')
|
45
|
+
system('bundle check') || system('bundle install')
|
46
|
+
end
|
47
|
+
|
40
48
|
def missing_args
|
41
49
|
if @args.empty?
|
42
50
|
@missing_args << "Missing argument: WORKSPACE_NAME".red
|
@@ -15,18 +15,8 @@ module FaaStRuby
|
|
15
15
|
puts "[skipped] You have no 'test_command' key/value in 'faastruby.yml'. Please consider using rspec!".yellow
|
16
16
|
return true
|
17
17
|
end
|
18
|
-
|
19
|
-
|
20
|
-
if status == 0
|
21
|
-
spinner.stop('Passed!')
|
22
|
-
puts output
|
23
|
-
return true
|
24
|
-
else
|
25
|
-
spinner.stop('Failed :(')
|
26
|
-
FaaStRuby::CLI.error(output, color: nil) unless do_not_exit
|
27
|
-
puts output if do_not_exit
|
28
|
-
return false
|
29
|
-
end
|
18
|
+
puts "[test] Running tests"
|
19
|
+
system(@test_command)
|
30
20
|
end
|
31
21
|
|
32
22
|
def self.help
|
@@ -13,7 +13,6 @@ module FaaStRuby
|
|
13
13
|
end
|
14
14
|
|
15
15
|
def run
|
16
|
-
dir_exists? || FileUtils.mkdir_p(@base_dir)
|
17
16
|
spinner = spin("Requesting credentials...")
|
18
17
|
workspace = FaaStRuby::Workspace.create(name: @workspace_name, email: @options['email'])
|
19
18
|
spinner.stop("Done!")
|
@@ -27,6 +26,7 @@ module FaaStRuby
|
|
27
26
|
FaaStRuby::Credentials.add(@workspace_name, workspace.credentials, @options['credentials_file'])
|
28
27
|
end
|
29
28
|
puts "Workspace '#{@workspace_name}' created"
|
29
|
+
create_dir unless dir_exists?
|
30
30
|
end
|
31
31
|
|
32
32
|
def self.help
|
@@ -39,6 +39,11 @@ module FaaStRuby
|
|
39
39
|
|
40
40
|
private
|
41
41
|
|
42
|
+
def create_dir
|
43
|
+
FileUtils.mkdir_p(@base_dir)
|
44
|
+
puts "+ d #{@base_dir}".green
|
45
|
+
end
|
46
|
+
|
42
47
|
def dir_exists?
|
43
48
|
return false unless File.directory?(@base_dir)
|
44
49
|
puts "Local folder '#{@workspace_name}' already exists."
|
@@ -0,0 +1,50 @@
|
|
1
|
+
module FaaStRuby
|
2
|
+
module Command
|
3
|
+
module Workspace
|
4
|
+
class Deploy < WorkspaceBaseCommand
|
5
|
+
def initialize(args)
|
6
|
+
@errors = []
|
7
|
+
if args.any?
|
8
|
+
@args = args
|
9
|
+
else
|
10
|
+
@args = Dir.glob('*').select{|f| File.directory?(f)}
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def run
|
15
|
+
result = []
|
16
|
+
errors = false
|
17
|
+
@args.each do |workspace|
|
18
|
+
Dir.chdir workspace
|
19
|
+
functions = Dir.glob('*').select{|f| File.directory?(f)}
|
20
|
+
functions.each do |function|
|
21
|
+
puts "[deploy] Entering folder #{workspace}/#{function}"
|
22
|
+
Dir.chdir function
|
23
|
+
if system("faastruby deploy-to #{workspace}")
|
24
|
+
result << "* #{workspace}/#{function} [Deploy OK]".green
|
25
|
+
else
|
26
|
+
result << "* #{workspace}/#{function} [Deploy FAILED]".red
|
27
|
+
errors = true
|
28
|
+
end
|
29
|
+
Dir.chdir '..'
|
30
|
+
end
|
31
|
+
Dir.chdir '..'
|
32
|
+
end
|
33
|
+
puts "\nResult:"
|
34
|
+
FaaStRuby::CLI.error(result, color: nil) if errors
|
35
|
+
puts result
|
36
|
+
exit 0
|
37
|
+
end
|
38
|
+
|
39
|
+
def self.help
|
40
|
+
"deploy".blue + " [WORKSPACE_FOLDER1] [WORKSPACE_FOLDER2]... # Deploy all workspaces in the current directory and their functions"
|
41
|
+
end
|
42
|
+
|
43
|
+
def usage
|
44
|
+
"Usage: faastruby #{self.class.help}"
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
data/lib/faastruby/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: faastruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Paulo Arruda
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-12-
|
11
|
+
date: 2018-12-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rest-client
|
@@ -142,14 +142,14 @@ dependencies:
|
|
142
142
|
requirements:
|
143
143
|
- - "~>"
|
144
144
|
- !ruby/object:Gem::Version
|
145
|
-
version:
|
145
|
+
version: 0.1.3
|
146
146
|
type: :runtime
|
147
147
|
prerelease: false
|
148
148
|
version_requirements: !ruby/object:Gem::Requirement
|
149
149
|
requirements:
|
150
150
|
- - "~>"
|
151
151
|
- !ruby/object:Gem::Version
|
152
|
-
version:
|
152
|
+
version: 0.1.3
|
153
153
|
- !ruby/object:Gem::Dependency
|
154
154
|
name: bundler
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
@@ -249,7 +249,7 @@ files:
|
|
249
249
|
- lib/faastruby/cli/commands/credentials/list.rb
|
250
250
|
- lib/faastruby/cli/commands/function.rb
|
251
251
|
- lib/faastruby/cli/commands/function/build.rb
|
252
|
-
- lib/faastruby/cli/commands/function/
|
252
|
+
- lib/faastruby/cli/commands/function/deploy_to.rb
|
253
253
|
- lib/faastruby/cli/commands/function/new.rb
|
254
254
|
- lib/faastruby/cli/commands/function/remove_from.rb
|
255
255
|
- lib/faastruby/cli/commands/function/run.rb
|
@@ -260,6 +260,7 @@ files:
|
|
260
260
|
- lib/faastruby/cli/commands/version.rb
|
261
261
|
- lib/faastruby/cli/commands/workspace.rb
|
262
262
|
- lib/faastruby/cli/commands/workspace/create.rb
|
263
|
+
- lib/faastruby/cli/commands/workspace/deploy.rb
|
263
264
|
- lib/faastruby/cli/commands/workspace/destroy.rb
|
264
265
|
- lib/faastruby/cli/commands/workspace/list.rb
|
265
266
|
- lib/faastruby/cli/credentials.rb
|