A Rake-like DSL for writing AWS Lambda handlers
MIT License
Full Changelog: https://github.com/amancevice/yake/compare/v1.0.0...v1.1.0
Published by amancevice over 1 year ago
Added Hash#deep_merge
adapted from activesupport
gem
Added Hash#to_dynamodb
and Hash#to_h_from_dynamodb
Published by amancevice over 1 year ago
Initial release
Published by amancevice over 1 year ago
Improvements to the Yake::Logger
module
Include or extend Yake::Logger
on a class to access the logger, eg
class Fizz
extend Yake::Logger
end
Fizz.logger == Yake.logger
# => true
Published by amancevice over 1 year ago
Added ANY
route handler:
require "yake/api"
any "/path/to/resource" do |event|
# …
end
# …
Published by amancevice over 1 year ago
Updated logger
Published by amancevice over 1 year ago
Allow route
method to accept a block:
get '/my-resource' do |event|
# handle request…
end
handler :proxy do |event|
route event do |res|
# augment the response…
end
end
Published by amancevice over 1 year ago
Added Yake::DSL#logger
method to make logger more accessible from handler blocks.
Published by amancevice over 1 year ago
Add helper for using Datadog with yake.
Example usage:
require 'yake/datadog'
Datadog::Lambda.configure_apm { |config| config.use :aws }
datadog :handler do |event, context|
# …
end
Published by amancevice over 1 year ago
Update logger formatting when requiring datadog module
Published by amancevice over 1 year ago
Small improvement to datadog module
Published by amancevice over 1 year ago
Log event/result using JSON.pretty_generate
by default
To disable this feature:
logging pretty: false
# or
Yake.pretty = false
Published by amancevice almost 2 years ago
Adds support for datadog-lambda
v2
Published by amancevice about 2 years ago
Change default logging pretty value to false
Published by amancevice about 2 years ago
Added Hash#to_struct
and Hash#to_deep_struct
in yake/support:
{ f: 'g', a: { d: 'e', b: 'c' } }.to_struct
# => #<OpenStruct f="g", a={:d=>"e", :b=>"c"}>
{ f: 'g', a: { d: 'e', b: 'c' } }.to_deep_struct
# => #<OpenStruct f="g", a=#<OpenStruct d="e", b="c">>
Added String#utc
in yake/support:
'2009-02-13T23:31:30Z'.utc
# => 2009-02-13 23:31:30 UTC
Published by amancevice about 2 years ago
Add Yake::Errors::[]
method to look up errors by code
Published by amancevice about 2 years ago
Fixed Hash#deep_transform_keys/#deep_transform_keys! to work for Hashes nested in Arrays
Published by amancevice over 2 years ago
Added support methods to Hash
:
Hash#deep_keys
returns all nested keys in a HashHash#deep_transform_keys
transforms all nested keys in a HashHash#deep_transform_keys!
transforms all nested keys in a Hash in placeHash#stringify_names!
stringifies names in placeHash#symbolize_names!
symbolizes names in placeHash#symbolize_names
and Hash#stringify_names
now use Hash#deep_transform_keys
{ a: { b: 'c', d: 'e' }, f: 'g' }.deep_keys
# => [:a, :b, :d, :f]
{ a: { b: 'c', d: 'e' }, f: 'g' }.deep_transform_keys(&:to_s)
# => { "a" => { "b" => "c", "d" => "e" }, "f" => "g" }
hash = { a: { b: 'c', d: 'e' }, f: 'g' }
hash.deep_transform_keys!(&:to_s)
# => { "a" => { "b" => "c", "d" => "e" }, "f" => "g" }
Published by amancevice over 2 years ago
Logger uses STDERR by default instead of STDOUT
Published by amancevice over 2 years ago
Added &block
to Object#try
in yake/support
:
10.try(:some_method) { |x| x ** 2 }
# => 100
Added Hash#deep_sort
and Hash#to_json_sorted
in yake/support
:
{ f: 'g', a: { d: 'e', b: 'c' } }.deep_sort
# => { a: { b: 'c', d: 'e' }, f: 'g' }
{ f: 'g', a: { d: 'e', b: 'c' } }.to_json_sorted
# => '{"a":{"b":"c","d":"e"},"f":"g"}'
Added String#md5sum
and String#sha1sum
in yake/support
:
'fizz'.md5sum
# => "b6bfa6c318811be022d4f73070597660"
'fizz'.sha1sum
# => "c25f5985f2ab63baeb2408a2d7dbc79d8f29d02f"