yake 0.7.0 → 0.8.0

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
  SHA256:
3
- metadata.gz: 8b15fb667d8aba0f2fed790898bac47dc745883203f5cc7adda48e5f9c1c58bd
4
- data.tar.gz: e07bd79d34cb1a6e841eda84df0b392d8419e0ed3bcbcdb5bf49d2319b47b3c7
3
+ metadata.gz: 27610c07a200a3f10913adf3a8ce42a892383de03663587f885770b903b48c03
4
+ data.tar.gz: 062e3bcfab24054137e70643435c39bfe9e61e37b6882a9fc720b0fb57ded05f
5
5
  SHA512:
6
- metadata.gz: 26e801e5d27b2a8c0241d465f7507cae64913e05e67d91a085ee179e8ec675c06d7e058013464e152e8255343a1790c4a9b7a1c2db45a74461c5a46524549687
7
- data.tar.gz: 272b1c2ee937e87fdce222ad8228893614c18b4dd01072b050ce3ba24095c577a8ee6a40988ca00968156d916d87b0b0a9da04a668c2efde79c8ec798721dd94
6
+ metadata.gz: c9dbfc3ff7244e92d1a963054ef23007fe31cfabce8a00423d0d4d926fa130017b84e1737d8ba527cb274afce62a06cc59f129c97906bdabfd7c683b99ded112
7
+ data.tar.gz: 4d6e4458f0e305468499bef5e069dda1b6912969083c0d18469ffcd7e906c2f29536a670ddaf1bcd63e8734a56b72ec041abaa69898ab6963393128eee6254b7
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # λake
2
2
 
3
- ![gem](https://img.shields.io/gem/v/yake?color=crimson&logo=rubygems&logoColor=eee&style=flat-square)
3
+ [![gem](https://img.shields.io/gem/v/yake?color=crimson&logo=rubygems&logoColor=eee&style=flat-square)](https://rubygems.org/gems/yake)
4
4
  [![rspec](https://img.shields.io/github/workflow/status/amancevice/yake/RSpec?logo=github&style=flat-square)](https://github.com/amancevice/yake/actions)
5
5
  [![coverage](https://img.shields.io/codeclimate/coverage/amancevice/yake?logo=code-climate&style=flat-square)](https://codeclimate.com/github/amancevice/yake/test_coverage)
6
6
  [![maintainability](https://img.shields.io/codeclimate/maintainability/amancevice/yake?logo=code-climate&style=flat-square)](https://codeclimate.com/github/amancevice/yake/maintainability)
@@ -331,6 +331,8 @@ UTC.now
331
331
 
332
332
  As of `~> 0.4`, `yake` comes with a helper for writing Lambdas that integrate with Datadog's `datadog-ruby` gem.
333
333
 
334
+ As of `~> 0.8`, `yake` uses the v2 Datadog Lambda gem.
335
+
334
336
  Creating a Lambda handler that wraps the Datadog tooling is easy:
335
337
 
336
338
  ```ruby
@@ -338,7 +340,7 @@ require 'aws-sdk-someservice'
338
340
  require 'yake/datadog'
339
341
 
340
342
  # Configure Datadog to use AWS tracing
341
- Datadog::Lambda.configure_apm { |config| config.use :aws }
343
+ Datadog::Lambda.configure_apm { |c| c.tracing.instrument :aws }
342
344
 
343
345
  datadog :handler do |event|
344
346
  # …
@@ -0,0 +1,61 @@
1
+ # frozen_string_literal: true
2
+ require 'logger'
3
+
4
+ require 'datadog/lambda'
5
+ require 'yake'
6
+
7
+ module Yake
8
+ module Datadog
9
+ class Formatter < ::Logger::Formatter
10
+ Format = "[%s] %s %s %s %s\n"
11
+
12
+ def call(severity, time, progname, msg)
13
+ Format % [
14
+ severity,
15
+ time.utc.strftime('%Y-%m-%dT%H:%M:%S.%LZ'),
16
+ progname.nil? ? '-' : progname.split.last,
17
+ ::Datadog.tracer.active_correlation,
18
+ msg2str(msg).strip,
19
+ ]
20
+ end
21
+ end
22
+
23
+ class MockContext < Struct.new(
24
+ :clock_diff,
25
+ :deadline_ms,
26
+ :aws_request_id,
27
+ :invoked_function_arn,
28
+ :log_group_name,
29
+ :log_stream_name,
30
+ :function_name,
31
+ :memory_limit_in_mb,
32
+ :function_version)
33
+
34
+ def invoked_function_arn
35
+ @invoked_function_arn ||= begin
36
+ region = ENV['AWS_REGION'] || ENV['AWS_DEFAULT_REGION'] || 'us-east-1'
37
+ "arn:aws:lambda:#{region}:123456789012:function-name"
38
+ end
39
+ end
40
+ end
41
+
42
+ module DSL
43
+ include Yake::DSL
44
+
45
+ ##
46
+ # Datadog handler wrapper
47
+ def datadog(name, &block)
48
+ define_method(name) do |event:nil, context:nil|
49
+ context ||= MockContext.new
50
+ ::Datadog::Lambda.wrap(event, context) do
51
+ Yake.wrap(event, context, &block)
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
57
+
58
+ logger.formatter = Datadog::Formatter.new
59
+ end
60
+
61
+ extend Yake::Datadog::DSL
@@ -0,0 +1,61 @@
1
+ # frozen_string_literal: true
2
+ require 'logger'
3
+
4
+ require 'datadog/lambda'
5
+ require 'yake'
6
+
7
+ module Yake
8
+ module Datadog
9
+ class Formatter < ::Logger::Formatter
10
+ Format = "[%s] %s %s %s %s\n"
11
+
12
+ def call(severity, time, progname, msg)
13
+ Format % [
14
+ severity,
15
+ time.utc.strftime('%Y-%m-%dT%H:%M:%S.%LZ'),
16
+ progname.nil? ? '-' : progname.split.last,
17
+ ::Datadog::Tracing.log_correlation,
18
+ msg2str(msg).strip,
19
+ ]
20
+ end
21
+ end
22
+
23
+ class MockContext < Struct.new(
24
+ :clock_diff,
25
+ :deadline_ms,
26
+ :aws_request_id,
27
+ :invoked_function_arn,
28
+ :log_group_name,
29
+ :log_stream_name,
30
+ :function_name,
31
+ :memory_limit_in_mb,
32
+ :function_version)
33
+
34
+ def invoked_function_arn
35
+ @invoked_function_arn ||= begin
36
+ region = ENV['AWS_REGION'] || ENV['AWS_DEFAULT_REGION'] || 'us-east-1'
37
+ "arn:aws:lambda:#{region}:123456789012:function-name"
38
+ end
39
+ end
40
+ end
41
+
42
+ module DSL
43
+ include Yake::DSL
44
+
45
+ ##
46
+ # Datadog handler wrapper
47
+ def datadog(name, &block)
48
+ define_method(name) do |event:nil, context:nil|
49
+ context ||= MockContext.new
50
+ ::Datadog::Lambda.wrap(event, context) do
51
+ Yake.wrap(event, context, &block)
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
57
+
58
+ logger.formatter = Datadog::Formatter.new
59
+ end
60
+
61
+ extend Yake::Datadog::DSL
data/lib/yake/datadog.rb CHANGED
@@ -1,61 +1,3 @@
1
1
  # frozen_string_literal: true
2
- require 'logger'
3
-
4
2
  require 'datadog/lambda'
5
- require 'yake'
6
-
7
- module Yake
8
- module Datadog
9
- class Formatter < ::Logger::Formatter
10
- Format = "[%s] %s %s %s %s\n"
11
-
12
- def call(severity, time, progname, msg)
13
- Format % [
14
- severity,
15
- time.utc.strftime('%Y-%m-%dT%H:%M:%S.%LZ'),
16
- progname.nil? ? '-' : progname.split.last,
17
- ::Datadog.tracer.active_correlation,
18
- msg2str(msg).strip,
19
- ]
20
- end
21
- end
22
-
23
- class MockContext < Struct.new(
24
- :clock_diff,
25
- :deadline_ms,
26
- :aws_request_id,
27
- :invoked_function_arn,
28
- :log_group_name,
29
- :log_stream_name,
30
- :function_name,
31
- :memory_limit_in_mb,
32
- :function_version)
33
-
34
- def invoked_function_arn
35
- @invoked_function_arn ||= begin
36
- region = ENV['AWS_REGION'] || ENV['AWS_DEFAULT_REGION'] || 'us-east-1'
37
- "arn:aws:lambda:#{region}:123456789012:function-name"
38
- end
39
- end
40
- end
41
-
42
- module DSL
43
- include Yake::DSL
44
-
45
- ##
46
- # Datadog handler wrapper
47
- def datadog(name, &block)
48
- define_method(name) do |event:nil, context:nil|
49
- context ||= MockContext.new
50
- ::Datadog::Lambda.wrap(event, context) do
51
- Yake.wrap(event, context, &block)
52
- end
53
- end
54
- end
55
- end
56
- end
57
-
58
- logger.formatter = Datadog::Formatter.new
59
- end
60
-
61
- extend Yake::Datadog::DSL
3
+ require_relative "datadog/v#{Datadog::Lambda::VERSION::MAJOR}"
data/lib/yake/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Yake
4
- VERSION = '0.7.0'
4
+ VERSION = '0.8.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yake
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexander Mancevice
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-10-18 00:00:00.000000000 Z
11
+ date: 2022-11-24 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description:
14
14
  email:
@@ -22,6 +22,8 @@ files:
22
22
  - lib/yake.rb
23
23
  - lib/yake/api.rb
24
24
  - lib/yake/datadog.rb
25
+ - lib/yake/datadog/v1.rb
26
+ - lib/yake/datadog/v2.rb
25
27
  - lib/yake/dsl.rb
26
28
  - lib/yake/errors.rb
27
29
  - lib/yake/logger.rb