lamby 4.3.3 → 5.0.0

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: dce401866a14fbce98621f6c677ab0f17df796c1c9c0792d4a1030adc69eadbd
4
- data.tar.gz: 593c2f449b053f4bdc6ae2dbe74602f0debd93d57a57a1811d7f791bc1b40fc9
3
+ metadata.gz: bed40f788bb3ef9eecb63040924c583bee423ac369179f76aa5fe43fe797e3ec
4
+ data.tar.gz: 7fd33a98bb6cd19b202a16ef58f5a03f7f7e1e21f75e6342330b318ebb260bed
5
5
  SHA512:
6
- metadata.gz: 4f119c574a97288c37eb7c5c97643650d2d730fe16ab7b7e6b06a777088e069b6050c4ab023856e32c10c7da0029d74067eb8db37492b0dc0c1a0ed3948f7ee9
7
- data.tar.gz: 1bf90e93726e78a75f408801976f65c7dafe369cc14d567fb4ddb337832a0b3dfb10fb1d8e2f91b9b7cf20d42c176f914f0b33c3641accbbc8fd757ec3d56ba6
6
+ metadata.gz: 8dca95a577c3afbcb3fbcb9715e54987b04cd830abeda28ac9c4df82f088a50ea866ce8a6f19212e003d80cb3d88c37370393e79c69f9f023c34ae81f967f8d5
7
+ data.tar.gz: d795ac32b599d239ad6ccfde9da12e88b79bfcff854766c77c0630ca69acbaac9f2cbd5e5c56ee9eb48c46b70bd4d683b67fc7dbf1c2cef61c6dbf0f42a81728
data/CHANGELOG.md CHANGED
@@ -2,6 +2,15 @@
2
2
 
3
3
  See this http://keepachangelog.com link for information on how we want this documented formatted.
4
4
 
5
+ ## v5.0.0
6
+
7
+ ### Changed
8
+
9
+ - ⚠️ Breaking Changes ⚠️
10
+ - Remove Lamby::Runner & Lamby::Command in favor of LambdaConsole Ruby gem.
11
+ - New runner pattern exceptions from above. Now: LambdaConsole::Run::UnknownCommandPattern
12
+ - Switch your own runner events to new https://github.com/rails-lambda/lambda-console spec.
13
+
5
14
  ## v4.3.1, v4.3.2
6
15
 
7
16
  ### Changed
data/Gemfile.lock CHANGED
@@ -1,7 +1,8 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- lamby (4.3.3)
4
+ lamby (5.0.0)
5
+ lambda-console-ruby
5
6
  rack
6
7
 
7
8
  GEM
@@ -98,6 +99,7 @@ GEM
98
99
  i18n (1.12.0)
99
100
  concurrent-ruby (~> 1.0)
100
101
  jmespath (1.6.2)
102
+ lambda-console-ruby (1.0.0)
101
103
  lambdakiq (2.2.0)
102
104
  activejob
103
105
  aws-sdk-sqs
data/lamby.gemspec CHANGED
@@ -19,6 +19,7 @@ Gem::Specification.new do |spec|
19
19
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
20
  spec.require_paths = ["lib"]
21
21
  spec.add_dependency 'rack'
22
+ spec.add_dependency 'lambda-console-ruby'
22
23
  spec.add_development_dependency 'aws-sdk-ssm'
23
24
  spec.add_development_dependency 'bundler'
24
25
  spec.add_development_dependency 'rake'
data/lib/lamby/config.rb CHANGED
@@ -53,7 +53,7 @@ module Lamby
53
53
  end
54
54
 
55
55
  def runner_patterns
56
- Runner::PATTERNS
56
+ LambdaConsole::Run::PATTERNS
57
57
  end
58
58
 
59
59
  def handled_proc
data/lib/lamby/handler.rb CHANGED
@@ -92,10 +92,8 @@ module Lamby
92
92
  Lambdakiq.cmd event: @event, context: @context
93
93
  elsif lambda_cable?
94
94
  LambdaCable.cmd event: @event, context: @context
95
- elsif command?
96
- Lamby::Command.cmd event: @event, context: @context
97
- elsif runner?
98
- Lamby::Runner.cmd event: @event, context: @context
95
+ elsif LambdaConsole.handle?(@event)
96
+ LambdaConsole.handle(@event)
99
97
  elsif event_bridge?
100
98
  Lamby.config.event_bridge_handler.call @event, @context
101
99
  else
@@ -121,14 +119,6 @@ module Lamby
121
119
  defined?(::Lambdakiq) && ::Lambdakiq.jobs?(@event)
122
120
  end
123
121
 
124
- def runner?
125
- Lamby::Runner.handle?(@event)
126
- end
127
-
128
- def command?
129
- Lamby::Command.handle?(@event)
130
- end
131
-
132
122
  def lambda_cable?
133
123
  defined?(::LambdaCable) && ::LambdaCable.handle?(@event, @context)
134
124
  end
data/lib/lamby/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Lamby
2
- VERSION = '4.3.3'
2
+ VERSION = '5.0.0'
3
3
  end
data/lib/lamby.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  require 'lamby/logger'
2
2
  require 'rack'
3
3
  require 'base64'
4
+ require 'lambda-console-ruby'
4
5
  require 'lamby/version'
5
6
  require 'lamby/config'
6
7
  require 'lamby/rack'
@@ -8,8 +9,6 @@ require 'lamby/rack_alb'
8
9
  require 'lamby/rack_rest'
9
10
  require 'lamby/rack_http'
10
11
  require 'lamby/debug'
11
- require 'lamby/runner'
12
- require 'lamby/command'
13
12
  require 'lamby/handler'
14
13
 
15
14
  if defined?(Rails)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lamby
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.3.3
4
+ version: 5.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ken Collins
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-06-15 00:00:00.000000000 Z
11
+ date: 2023-06-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: lambda-console-ruby
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: aws-sdk-ssm
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -163,7 +177,6 @@ files:
163
177
  - images/social2.png
164
178
  - lamby.gemspec
165
179
  - lib/lamby.rb
166
- - lib/lamby/command.rb
167
180
  - lib/lamby/config.rb
168
181
  - lib/lamby/debug.rb
169
182
  - lib/lamby/handler.rb
@@ -175,7 +188,6 @@ files:
175
188
  - lib/lamby/rack_http.rb
176
189
  - lib/lamby/rack_rest.rb
177
190
  - lib/lamby/railtie.rb
178
- - lib/lamby/runner.rb
179
191
  - lib/lamby/ssm_parameter_store.rb
180
192
  - lib/lamby/tasks.rake
181
193
  - lib/lamby/version.rb
data/lib/lamby/command.rb DELETED
@@ -1,43 +0,0 @@
1
- module Lamby
2
- class Command
3
-
4
- class << self
5
-
6
- def handle?(event)
7
- event.dig('x-lambda-console', 'command') ||
8
- event.dig('lamby', 'command')
9
- end
10
-
11
- def cmd(event:, context:)
12
- new(event).call
13
- end
14
-
15
- end
16
-
17
- def initialize(event)
18
- @event = event
19
- @body = ''
20
- end
21
-
22
- def call
23
- begin
24
- body = eval(command, TOPLEVEL_BINDING).inspect
25
- { statusCode: 200, headers: {}, body: body }
26
- rescue Exception => e
27
- body = "#<#{e.class}:#{e.message}>".tap do |b|
28
- if e.backtrace
29
- b << "\n"
30
- b << e.backtrace.join("\n")
31
- end
32
- end
33
- { statusCode: 422, headers: {}, body: body }
34
- end
35
- end
36
-
37
- def command
38
- @event.dig('x-lambda-console', 'command') ||
39
- @event.dig('lamby', 'command')
40
- end
41
-
42
- end
43
- end
data/lib/lamby/runner.rb DELETED
@@ -1,64 +0,0 @@
1
- require 'open3'
2
-
3
- module Lamby
4
- class Runner
5
- class Error < StandardError ; end
6
- class UnknownCommandPattern < Error ; end
7
-
8
- PATTERNS = [%r{.*}]
9
-
10
- class << self
11
-
12
- def handle?(event)
13
- event.dig('x-lambda-console', 'runner') ||
14
- event.dig('lamby', 'runner')
15
- end
16
-
17
- def cmd(event:, context:)
18
- new(event).call
19
- end
20
-
21
- end
22
-
23
- def initialize(event)
24
- @event = event
25
- @body = ''
26
- end
27
-
28
- def call
29
- validate!
30
- status = Open3.popen3(env, command, chdir: chdir) do |_stdin, stdout, stderr, thread|
31
- @body << stdout.read
32
- @body << stderr.read
33
- puts @body
34
- thread.value.exitstatus
35
- end
36
- { statusCode: status, headers: {}, body: @body }
37
- end
38
-
39
- def command
40
- @event.dig('x-lambda-console', 'runner') ||
41
- @event.dig('lamby', 'runner')
42
- end
43
-
44
- private
45
-
46
- def chdir
47
- defined?(::Rails) ? ::Rails.root : Dir.pwd
48
- end
49
-
50
- def validate!
51
- return if pattern?
52
- raise UnknownCommandPattern.new(command)
53
- end
54
-
55
- def pattern?
56
- PATTERNS.any? { |p| p === command }
57
- end
58
-
59
- def env
60
- Hash[ENV.to_hash.map { |k,v| [k, ENV[k]] }]
61
- end
62
-
63
- end
64
- end