faux-lambda 0.5 → 0.5.1

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
  SHA1:
3
- metadata.gz: 27f64243cbe049392b836b5e6dbb7c9af0308bed
4
- data.tar.gz: aff20d710af04c063beb96a287d80c3f5f2bc6f0
3
+ metadata.gz: 87764a85a01fcb5d17b6f530c6bd937351b250ba
4
+ data.tar.gz: 812b5811990bfe757370e139303d4635ad3261c6
5
5
  SHA512:
6
- metadata.gz: 3a7cbf03b35a0d9e7a4cfe76705d254bbdfbbed48a52801eb5c95903650a7c0bcf0bcb27eb2ebe1ef179a6e609852dc476510253aba0c300710b56fa6f32b82c
7
- data.tar.gz: 58ecad0b190c54a694a431e6659ac94dbf75603811fda1c1f8fd37a5d328e3517e99acdc6a9f8669c200a72dcb51ffedd611ebf5ec6456a0a538e8cd75efed05
6
+ metadata.gz: bc6796056d6448cc034e558d353804526ea77e6c33550a575caacd7f20b0ca2a4895efd8eff99523172dcd8d7f38ca1006e96de72a8e23ff4649cdca28e784e8
7
+ data.tar.gz: 9c1b1505f25c727db6f60636d6bf80c70bfd4bed1102aa05eef05b91f710c25349fb20e16a5a4a8e68be044ae4ac9c46d988f2559ea5ba0d8d2808ab1bb9c03b
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- faux-lambda (0.5)
4
+ faux-lambda (0.5.1)
5
5
  rack (~> 2.0)
6
6
 
7
7
  GEM
data/README.md CHANGED
@@ -8,13 +8,13 @@ In its simplest form:
8
8
  ```
9
9
  gem install faux-lambda
10
10
  faux-lambda --reply='{}' &
11
- aws --endpoint http://localhost:9123 lambda invoke --function-name whatever
11
+ aws --endpoint http://localhost:9123 lambda invoke --function-name whatever /dev/stdout
12
12
  ```
13
13
 
14
14
  The CLI can also simulate specific scenarios:
15
15
  ```
16
16
  $ faux-lambda --function=foo --reply='{}' --function=bar --reply='{}' --reply='{}' --fail &
17
- $ aws --endpoint http://localhost:12345 lambda invoke --function-name foo
17
+ $ aws --endpoint http://localhost:12345 lambda invoke --function-name foo /dev/stdout
18
18
  Called foo with ...
19
19
  {}
20
20
  ```
@@ -22,10 +22,12 @@ parser = OptionParser.new do |opts|
22
22
  opts.banner = "AWS Lambda debugging endpoint, version #{FauxLambda::VERSION}."
23
23
  opts.separator('')
24
24
  opts.separator('Usage: faux-lambda --reply "Hello world!"')
25
+ opts.separator('Query specifiers:')
25
26
  opts.on('--function name', '-f name', 'Name of function to expect, optionally with :<qualifier>') do |function_name|
26
27
  current_function = function_name
27
28
  functions[current_function] = {replies: []}
28
29
  end
30
+ opts.separator('Reply specifiers:')
29
31
  opts.on('--reply payload', '-r payload', 'Data to respond with') do |payload|
30
32
  functions[current_function][:replies] << payload
31
33
  end
@@ -52,12 +54,19 @@ def function_data(functions, function_name, qualifier)
52
54
  functions[qualified_function_name] || functions[function_name] || functions[:default]
53
55
  end
54
56
 
57
+ def log(function_name, qualifier, payload, status_code, reply)
58
+ qualifier ||= "$LATEST"
59
+ puts "#{function_name}:#{qualifier} called with #{payload}, replying #{status_code}: #{reply}"
60
+ end
61
+
55
62
  app = Proc.new do |env|
56
63
  _, version, _, function_name, _ = env['REQUEST_PATH'].split('/')
57
64
  raise "Unknown version #{version}" unless version == '2015-03-31'
58
65
  qs = Rack::Utils.parse_nested_query(env["QUERY_STRING"])
66
+ qualifier = qs["Qualifier"]
67
+ payload = env['rack.input'].read
59
68
 
60
- data = function_data(functions, function_name, qs["Qualifier"])
69
+ data = function_data(functions, function_name, qualifier)
61
70
  reply = reply_from(data[:replies])
62
71
  if reply.nil?
63
72
  status_code = '404'
@@ -69,6 +78,7 @@ app = Proc.new do |env|
69
78
  status_code = '200'
70
79
  end
71
80
 
81
+ log(function_name, qualifier, payload, status_code, reply)
72
82
  headers = {'Content-Type' => 'application/octet-stream'}
73
83
  [status_code, headers, [reply]]
74
84
  end
@@ -1,3 +1,3 @@
1
1
  module FauxLambda
2
- VERSION = '0.5'
2
+ VERSION = '0.5.1'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: faux-lambda
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.5'
4
+ version: 0.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anders Qvist