
Security News
CISA’s 2025 SBOM Guidance Adds Hashes, Licenses, Tool Metadata, and Context
CISA’s 2025 draft SBOM guidance adds new fields like hashes, licenses, and tool metadata to make software inventories more actionable.
Utility for mocking time across service boundaries on a per-request basis. Also passes the mock along to any background jobs enqueued during the request.
Amok Time is designed for end-to-end testing distributed systems where certain behavior is time-based. It works by allowing any client to send a request header that overrides Ruby's date and time.
What could possibly go wrong?
<img src=https://i.imgur.com/ZqAy9co.jpg height="75%" width="75%" title="Safety not guaranteed"/>
Add this line to your application's Gemfile:
gem 'amok_time'
And then execute:
$ bundle
Or install it yourself as:
$ gem install amok_time
# In a Rails initializer or equivalent file
AmokTime.enable!
# In the same initializer as above
require 'amok_time/rack_middleware'
Rails.application.config.middleware.use AmokTime::RackMiddleware
require 'amok_time/rack_middleware'
class MyApp < Sinatra::Base
use AmokTime::RackMiddleware
end
# In your sidekiq initializer
require 'amok_time/sidekiq_middlware'
Sidekiq.configure_client do |config|
config.client_middleware do |chain|
chain.add AmokTime::SidekiqMiddleware::Client
end
end
Sidekiq.configure_server do |config|
config.server_middleware do |chain|
chain.add AmokTime::SidekiqMiddleware::Server
end
# Need this again for any downstream jobs enqueued
config.client_middleware do |chain|
chain.add AmokTime::SidekiqMiddleware::Client
end
end
For a given HTTP request to a service with Amok Time enabled, you can add the following header
req.headers['X-Amok-Time'] = timestamp.to_s # any Date or Time object will work
The app will then behave as if the request was sent at that date.
After checking out the repo, run bin/setup
to install dependencies. Then, run rake spec
to run the tests. You can also run bin/console
for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run bundle exec rake install
. To release a new version, update the version number in version.rb
, and then run bundle exec rake release
, which will create a git tag for the version, push git commits and tags, and push the .gem
file to rubygems.org.
Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/amok_time.
The gem is available as open source under the terms of the MIT License.
FAQs
Unknown package
We found that amok_time demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
CISA’s 2025 draft SBOM guidance adds new fields like hashes, licenses, and tool metadata to make software inventories more actionable.
Security News
A clarification on our recent research investigating 60 malicious Ruby gems.
Security News
ESLint now supports parallel linting with a new --concurrency flag, delivering major speed gains and closing a 10-year-old feature request.