Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/elcuervo/cuba-sugar
Give cuba some sugar!
https://github.com/elcuervo/cuba-sugar
Last synced: 3 months ago
JSON representation
Give cuba some sugar!
- Host: GitHub
- URL: https://github.com/elcuervo/cuba-sugar
- Owner: elcuervo
- License: other
- Created: 2011-03-30T03:13:25.000Z (almost 14 years ago)
- Default Branch: master
- Last Pushed: 2016-07-05T14:45:34.000Z (over 8 years ago)
- Last Synced: 2024-05-16T21:06:19.216Z (8 months ago)
- Language: Ruby
- Homepage:
- Size: 34.2 KB
- Stars: 20
- Watchers: 3
- Forks: 9
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Cuba/Sugar
==========![Build Status](https://secure.travis-ci.org/elcuervo/cuba-sugar.png)
_n_. bundled sugar for [cuba](https://github.com/soveran/cuba)
!["See this fucking sugar road? I just fucking made it"](http://maynardswitzer.com/library/Cuba/2002CubaSugarCaneCutterInField.A.jpg)
Description
-----------It's like contrib stuff but with a cooler name.
Provides helpers and utilities to use with cuba.Usage
-----Like any other cuba app, but provides:
You have two choices:
* `require` only the tool you want eg: `require 'cuba/sugar/content_for'`
* `require` all the tools eg: `require 'cuba/sugar'`### content_for
```ruby
require "cuba"
require "cuba/sugar/content_for"Cuba.plugin Cuba::Sugar::ContentFor
```In your views to define where the content block will be rendered
```erb
<% yield_for :menu %># And when you want to define a content
<% content_for :menu do %>
- Home
- Users
<% end %>
```
### as
```ruby
require "cuba"
require "cuba/sugar/as"
Cuba.use Rack::Session::Cookie
Cuba.plugin Cuba::Sugar::As
Cuba.define do
on post do
on "users" do
# create user
as 201, {"Content-Location" => "http://somewhere.com/users/705"} do
"user #{user.id} created"
end
end
end
end
```
### as_json
```ruby
require "cuba"
require "cuba/sugar/as"
Cuba.use Rack::Session::Cookie
Cuba.plugin Cuba::Sugar::As
Cuba.define do
on get do
on "weather" do
as_json do
{
city: 'La Habana',
temperature: '19 °C',
pressure: '1014 hPa',
}
end
end
end
end
```
### csrf_tag && csrf_token
In the forms:
```ruby
<%= csrf_tag %>
```
In the code:
```ruby
require "cuba"
require "cuba/sugar/csrf"
Cuba.use Rack::Csrf
Cuba.plugin Cuba::Sugar::Csrf
Cuba.define do
# Automatic csrf validation
on post
end
end
```
### helpers
```ruby
require "cuba"
require "cuba/sugar"
Cuba.plugin Cuba::Sugar
Cuba.define do
helpers do
def now
Time.now
end
end
on "time" do
as { "The current time is: #{now}" }
end
end
```
### subdomain
```ruby
require "cuba"
require "cuba/sugar/routes"
Cuba.plugin Cuba::Sugar::Routes
Cuba.define do
on subdomain("wsdl") do
run WSDL
end
on subdomain("api") do
on root do
as do
"Welcome to API"
end
end
on "users" do
as_json do
Users.all.to_json
end
end
end
end
```
Contributors
------------
* [bemurphy](https://github.com/bemurphy) (Brendon Murphy)
Installation
------------
```bash
$ gem install cuba-sugar
```