Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

transition_through

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

transition_through

  • 1.0.0
  • Rubygems
  • Socket score

Version published
Maintainers
1
Created
Source

transition_through

CI Gem Version

Assert state changes in sequence. Like change { ... }, but for asserting multiple changes in RSpec.

Sponsored by:

Keygen

A fair source software licensing and distribution API.

Installation

Add this line to your application's Gemfile:

gem 'transition_through'

And then execute:

$ bundle

Or install it yourself as:

$ gem install transition_through

Usage

it 'should transition through' do
  counter = Counter.new
  count   = -> {
    counter.count = 0
    counter.increment
    counter.count  = counter.count + 3
    counter.count -= 2
    counter.decrement(by: 2)
  }

  expect { count.call }.to transition { counter.count }.through [0, 1, 4, 2, 0]
end

it 'should transition nowhere' do
  counter = Counter.new
  count   = -> {}

  expect { count.call }.to transition { counter.count }.nowhere
end

Note on instance variables

Currently, mutating state through an instance variable is not supported. This due to the fact that instance variables cannot be observed for changes like an accessor can. For more information, see the tests.

If you know of a way to support ivars, please open an issue or PR.

Supported Rubies

transition_through supports Ruby 3.1 and above. We encourage you to upgrade if you're on an older version. Ruby 3 provides a lot of great features, like better pattern matching and a new shorthand hash syntax.

Is it any good?

Yes.

Contributing

If you have an idea, or have discovered a bug, please open an issue or create a pull request.

License

The gem is available as open source under the terms of the MIT License.

FAQs

Package last updated on 14 Aug 2024

Did you know?

Socket

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.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc