amazing-activist

Your friendly neighborhood activist.

MIT License

Downloads
2.7K
Stars
2

= AmazingActivist :ci-url: https://github.com/ixti/amazing-activist/actions/workflows/ci.yml?query=branch%3Amain :ci-img: https://github.com/ixti/amazing-activist/actions/workflows/ci.yml/badge.svg?branch=main :codecov-url: https://codecov.io/gh/ixti/amazing-activist/tree/main :codecov-img: https://codecov.io/gh/ixti/amazing-activist/graph/badge.svg?token=LXaGWwv5xl

ifdef::env-github[] {ci-url}[image:{ci-img}[CI]] {codecov-url}[image:{codecov-img}[codecov]] endif::[]

== Installation

Add this line to your application's Gemfile:

$ bundle add amazing-activist

Or install it yourself as:

$ gem install amazing-activist

== Usage

[source,ruby]

class ApplicationActivity < AmazingActivist::Base end

class OnboardingActivity < ApplicationActivity def call user = User.new(params)

return failure(:invalid_params, user: user) unless user.save

success(user)

end end

class UsersController < ApplicationController
def create
case OnboardingActivity.call(**params.require(:user).permit(:password))
in success: user
redirect_to user_bashboard_url(user)
in failure: :invalid_params, context: { user: user }
@user = user
render :new
else
head :bad_request
end
end
end

== Compatibility

This library aims to support and is tested against:

If something doesn't work on one of these versions, it's a bug.

This library may inadvertently work (or seem to work) on other Ruby versions, however support will only be provided for the versions listed above.

== Development

bundle install bundle exec rake

== Contributing

  • Fork amazing-activist
  • Make your changes
  • Ensure all tests pass (bundle exec rake)
  • Send a merge request
  • If we like them we'll merge them
  • If we've accepted a patch, feel free to ask for commit access!