Skip to content

geoffharcourt/active_model_lint-rspec

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Code Climate

ActiveModel Lint for RSpec

Form objects are a great way to move logic out of your controllers and models while ensuring that classes focus on their core responsibility. When you implement ActiveModel behavior in a class, this gem provides a one-line test to ensure that your class implements required behavior such as the #persisted? method that is required for your form object to function within a Rails form.

The code here was shamelessly cribbed from an example published by Mike Gehard at Pivotal Labs. It appears in this blog post. This gem merely puts the shared example into a gem for easy distribution into your project.

Example

Just one line to attach the shared example to your spec.

describe MyFormObjectClass do

  it_behaves_like 'an ActiveModel'

end

Then run your specs:

MyFormObjectClass
  behaves like an ActiveModel
    test persisted?
    test to param
    test to partial path
    test to key
    test model naming
    test errors aref

Installation

###Rails and other Bundler projects

Add the gem to your test group.

group :test do
  gem "active_model_lint-rspec"
end

Other Ruby projects

Require the gem after RSpec has been required.

require 'rspec'
require 'active_model_lint-rspec'

Further reading

Credits

ActiveModelLint-RSpec is packaged by Geoff Harcourt. It was built using code from a blog post written by Mike Gehard.

License

ActiveModelLint-Rspec is free software, and may be redistributed under the terms of the MIT license.

About

Easy shared example for ActiveModel linting in RSpec

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages