No commit activity in last 3 years
No release in over 3 years
Pattern generator provides you with convenient commands to generate patterns in your Rails app.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

>= 0
>= 0

Runtime

>= 4.0.0
 Project Readme

Pattern Generator Build Status

Pattern Generator lets you generate various Rails patterns and tests with a single command.

Install

In your Gemfile, add the gem in the development group.

gem 'pattern_generator', group: :development

Run bundle install to install the gem.

Now you are ready to rock the pattern generator!

Usage

rails generate [PATTERN_TYPE] [YOUR_FILE_NAME (in snake_case)]

Currently, PATTERN_TYPE can be:

  • Service
  • Policy
  • PORO (Plain Old Ruby Object)
  • Form

Destroy command is also supported.

Examples

Here are usage examples with commands and generated files.

Service

rails generate service find_match

generates:

app/services/find_match_service.rb

class FindMatchService
  def initialize

  end
end

spec/services/find_match_service_spec.rb

require 'rails_helper'

RSpec.describe FindMatchService, type: :service do
  describe '#call' do
    pending "Add some tests to #{__FILE__}"
  end
end

Policy

rails generate policy voting

generates:

app/policies/voting_policy.rb

class VotingPolicy
  def initialize

  end
end

spec/policies/voting_policy_spec.rb

require 'rails_helper'

RSpec.describe VotingPolicy, type: :policy do
  describe '#policy_method' do
    pending "Add some tests to #{__FILE__}"
  end
end

PORO (Plain Old Ruby Object)

a minimalistic non-ActiveRecord model that can be customized to fit your needs

rails generate poro payment_gateway

generates:

app/models/payment_gateway.rb

class PaymentGateway
  def initialize

  end
end

spec/policies/payment_gateway_spec.rb

require 'rails_helper'

RSpec.describe PaymentGateway do
  describe 'something' do
    pending "Add some tests to #{__FILE__}"
  end
end

Options

  • --minitest

    • Will create your test files inside test folder.
  • DEFAULT: --rspec

    • Will create your test files inside spec folder.
  • Usage: rails generate service subscribe_user --minitest

Where can I learn about more patterns?

Feel free to add good blog articles or tutorials here.

Contributing

Know your patterns? Open a pull request!

This project respects the contributor code of conduct.

License

This project rocks and uses MIT-LICENSE.