Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gdwrd/faat
It's Faat! Gem that will kill your fat model.
https://github.com/gdwrd/faat
Last synced: about 2 months ago
JSON representation
It's Faat! Gem that will kill your fat model.
- Host: GitHub
- URL: https://github.com/gdwrd/faat
- Owner: gdwrd
- License: mit
- Created: 2015-12-24T15:02:11.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2016-03-09T11:57:12.000Z (almost 9 years ago)
- Last Synced: 2024-10-29T12:57:58.904Z (3 months ago)
- Language: Ruby
- Homepage:
- Size: 41 KB
- Stars: 11
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Faat
[![Join the chat at https://gitter.im/xo8bit/faat](https://badges.gitter.im/xo8bit/faat.svg)](https://gitter.im/xo8bit/faat?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![Gem Version](https://badge.fury.io/rb/faat.svg)](https://badge.fury.io/rb/faat) [![Code Climate](https://codeclimate.com/repos/5683d90ecbc0bf2f17002347/badges/275483f4f40ccd7c48af/gpa.svg)](https://codeclimate.com/repos/5683d90ecbc0bf2f17002347/feed) [![Test Coverage](https://codeclimate.com/repos/5683d90ecbc0bf2f17002347/badges/275483f4f40ccd7c48af/coverage.svg)](https://codeclimate.com/repos/5683d90ecbc0bf2f17002347/coverage) [![Build Status](https://travis-ci.org/xo8bit/faat.svg?branch=develop)](https://travis-ci.org/xo8bit/faat)
Welcome to `faat` gem!
## Installation
Add this line to your application's Gemfile:
```ruby
gem 'faat'
```And then execute:
$ bundle
Or install it yourself as:
$ gem install faat
## Usage
Run ```rails generate faat:services {service_name}```,
generator will create folder ```services``` in ```app``` directory, and file ```{service_name}_service.rb```Run ```rails generate faat:forms {form_name} {attribute_name}:{attribute_type}```,
generator will create folder ```forms``` in ```app``` directory, and file ```{form_name}_form.rb```###Initialize:
```ruby
@post = Post.new
@post_service = PostService.new(@post)@post_form = PostForm.new(post_form_params)
```###Usage:
```ruby
@post_service.destroy => destroy @post
@post_service.update => update @postPostService.last => Post.last
PostService.all => Post.all
PostService.where(title: "First Test Title") => Post.where(...)
```###Examples:
In ```post_services.rb```
```ruby
class PostService < Faat::Services::Base
...def initialize(post_form)
@author = Author.create!(name: post_form.author_name, email: post_form.author_email)
@post = Post.create!(text: post_form.text, title: post_form.title)
send_confirmation_email(@author)
end...
end
```In```post_controller.rb```
```ruby
...
def create
@post_form = PostForm.new(post_form_params)
if @post_form.valid?
@post_service = PostService.new(@post_form) => create @author and @post
end
end
```Some other usage:
```ruby
@post_form = PostForm.new(post_form_params)
@post_form.valid? # or invalid?
@post_form.text => some value
@post_form.author_email => [email protected]
@ost_form.author_name => John Smith
```
## TODOAdd spec/test auto generator
## Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/xo8bit/faat. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
## License
The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).