Neo::Rails
neo-rails
contains some tools helping us doing Rails.
Gem | Source | Documentation
This gem includes:
- Mocks
- Presenters
- View Models
- Exposure
- Scenarios
Installation
Add this line to your application's Gemfile:
gem 'neo-rails', '~> 0.4.1'
And then execute:
$ bundle
Or install it yourself as:
$ gem install neo-rails
You can generate base classes for your presenters, mocks and view models with
$ rake neo-rails:setup
Usage
Generators
Create files and tests...
Example 'User':
rails g presenter User
rails g mock User
rails g view_model UserProfile
Presenter
In app/presenters/presenter.rb
class Presenter
include Neo::Rails::Presenter
end
class UserPresenter < Presenter
def initialize(user)
@user = user
end
def name
@user.name
end
def profile_path
view_context.link_to view_context.user_profile_path(@user), name
end
end
In test/test_helper.rb
require 'neo/rails/presenter/test_helper'
Neo::Rails::Presenter::TestHelper.setup
Exposures
In app/controllers/pages_controller.rb
class PagesController < ApplicationController
include Neo::Rails::Exposure
exposes :title, :description
def faq
expose :title, "A title"
expose :description, "A description"
end
end
In app/views/pages/faq.html.erb
<div class="title">
<%= title %>
</div>
<div class="description">
<%= description %>
</div>
Scenarios
In app/assets/stylesheets/application.css:
/*= require neo-rails */
In app/assets/javascript/application.js
//= require neo-rails
In app/layouts/application.html.erb
<%= render_scenarios_list %>
Testing
rm -f Gemfile.lock
export RAILS_VERSION=3.2 # or 4.0
bundle
bundle exec rake
TODO
- Test scenarios!
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Added some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request
Release
Follow these steps to release this gem:
# Bump version in
edit lib/neo/rails/version.rb
edit README.md
git commit -m "Release X.Y.Z"
rake release