Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/collectiveidea/interactor-rails

Interactor Rails provides Rails support for the Interactor gem.
https://github.com/collectiveidea/interactor-rails

interactor interactor-rails rails ruby

Last synced: about 12 hours ago
JSON representation

Interactor Rails provides Rails support for the Interactor gem.

Awesome Lists containing this project

README

        

# Interactor Rails

[![Gem](https://img.shields.io/gem/v/interactor-rails.svg?style=flat-square)](http://rubygems.org/gems/interactor-rails)
[![Build](https://github.com/collectiveidea/interactor-rails/actions/workflows/tests.yml/badge.svg)](https://github.com/collectiveidea/interactor-rails/actions/workflows/tests.yml)
[![Coverage](https://img.shields.io/codeclimate/coverage-letter/collectiveidea/interactor-rails.svg?style=flat-square)](https://codeclimate.com/github/collectiveidea/interactor-rails)
[![Maintainability](https://img.shields.io/codeclimate/maintainability/collectiveidea/interactor-rails.svg?style=flat-square)](https://codeclimate.com/github/collectiveidea/interactor-rails)

Interactor Rails provides Rails support for the
[Interactor](https://github.com/collectiveidea/interactor) gem.

## Installation

Add this line to your application's Gemfile:

```ruby
gem "interactor-rails", "~> 2.0"
```

Interactor Rails is tested against Ruby 3.1 and newer on Rails 7.0 or newer.
For older versions of Ruby and Rails use version 2.2.1.

## Usage

Interactor Rails ensures that `app/interactors` is included in your autoload
paths, and provides generators for your convenience.

```bash
rails generate interactor authenticate_user
```

adds to `app/interactors/authenticate_user.rb`:

```ruby
class AuthenticateUser
include Interactor

def call
# TODO
end
end
```

There is also a generator for organizers.

```bash
rails generate interactor:organizer place_order charge_card send_thank_you fulfill_order
```

adds to `app/interactors/place_order.rb`:

```ruby
class PlaceOrder
include Interactor::Organizer

organize ChargeCard, SendThankYou, FulfillOrder
end
```

## Contributions

Interactor Rails is open source and contributions from the community are
encouraged! No contribution is too small.

See Interactor Rails'
[contribution guidelines](CONTRIBUTING.md) for more information.

## Thank You!

A very special thank you to [Attila Domokos](https://github.com/adomokos) for
his fantastic work on [LightService](https://github.com/adomokos/light-service).
Interactor is inspired heavily by the concepts put to code by Attila.