rails e suas gems

Post on 16-May-2015

860 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Rails e suas Gems

@rr_martinsRodrigo Martinsrodrigo@rrmartins.com

Gems?

É bom assim por dentro?É bom assim por dentro?

Gems?

http://docs.rubygems.org/

Gerenciador de pacotes do Ruby.

Uiiii... Uma Joia... :DUiiii... Uma Joia... :D

Um pouco de Ruby! (String)

>> string = " liberdade Interativa! eu Fui!" => " liberdade Interativa! eu Fui!" >> def chamada(evento="LI") >> puts evento.to_s+" Eu fui!" >> end >> chamada("Liberdade Interativa") => Liberdade Interativa Eu fui! >> chamada => LI Eu fui!

Um pouco de Ruby! (Array)

>> evento = Array.new >> evento << "LI" => ["LI"] >> evento << "Liberdade Interativa" => ["LI", "Liberdade Interativa"] >> evento << "RockOnRails" => ["LI", "Liberdade Interativa", "RockOnRails"]

Um pouco de Ruby! (Array)

>> def chamada(evento) >> evento.each do |even| >> puts even.to_s+" Eu Fui! :D" >> end >> end >> chamada(evento) => LI Eu Fui! :D => Liberdade Interativa Eu Fui! :D => RockOnRails Eu Fui! :D

Já posso usar as Gems?

Calma! Vamos com calma,

as Gems precisam do Rails!

Projeto Blog!

Gems Apresentadas!

→ Paperclip→github.com/thoughtbot/paperclip

Sugestão: Rodrigo Mendonça (rails-br)

→ Devise → github.com/plataformatec/devise

Sugestão: Celso Dantas (rails-br)

→ Twitter → github.com/jnunemaker/twitter

Projeto Rails criado..

rails new <projeto>

Gems Apresentadas!

→ Paperclip

→github.com/thoughtbot/paperclip

Sugestão: Rodrigo Mendonça (rails-br)

→ Devise → github.com/plataformatec/devise

Sugestão: Celso Dantas (rails-br)

→ Twitter → github.com/jnunemaker/twitter

PaperClipNo GemFile:

gem "paperclip", "~> 2.4"

No Model: (Post)

has_attached_file :image, :styles => { :medium => "300x300>", :thumb => "100x100>" }

PaperClipMigrate:

class AddImageToPost < ActiveRecord::Migration

def self.up

add_column :posts, :image_file_name, :string

add_column :posts, :image_content_type, :string

add_column :posts, :image_file_size, :integer

add_column :posts, :image_updated_at, :datetime

end

def self.down

remove_column :posts, :image_updated_at

remove_column :posts, :image_file_size

remove_column :posts, :image_content_type

remove_column :posts, :image_file_name

end

end

PaperClip

<%= form_for :post, :url => posts_path, :

html => { :class => :form, :multipart => true } do |f| -%>

<div class="field">

<strong><%= f.label :data %></strong>

<%= f.hidden_field :data, :value => Time.now %>

<%= f.label Time.now.to_date %>

</div>

<div class="field">

<%= f.label :titulo %><br />

<%= f.text_field :titulo %>

</div>

<div class="field">

<%= f.label :chamada %><br />

<%= f.text_field :chamada %>

</div>

PaperClip

<div class="field">

<%= f.label :texto %><br />

<%= f.text_area :texto %>

</div>

<div class="field">

<%= f.label "Imagem" %>

<%= f.file_field :image %>

</div>

<div class="actions">

<%= f.submit %>

</div>

<% end -%>

PaperClip

View Show:

<%= image_tag @post.image.url if !@post.image_file_name.nil? %>

<%= image_tag @post.image.url(:medium) if !@post.image_file_name.nil? %>

<%= image_tag @post.image.url(:thumb) if !@post.image_file_name.nil? %>

PaperClip

Gems Apresentadas!

→ Paperclip→github.com/thoughtbot/paperclip

Sugestão: Rodrigo Mendonça (rails-br)

→ Devise → github.com/plataformatec/devise

Sugestão: Celso Dantas (rails-br)

→ Twitter → github.com/jnunemaker/twitter

Devise

Devise

Gemfile:

gem “devise”

Iniciando o Devise:

rails generate devise:install

Configurando um model:

rails generate devise usuario

Devise

Devise

Rodando Migrate:

Devise

Autenticando Controller:

before_filter :authenticate_user!

before_filter :authenticate_user!,

:except => [:index, :show, :create]

Gems Apresentadas!

→ Paperclip→github.com/thoughtbot/paperclip

Sugestão: Rodrigo Mendonça (rails-br)

→ Devise → github.com/plataformatec/devise

Sugestão: Celso Dantas (rails-br)

→ Twitter → github.com/jnunemaker/twitter

Twitter

Twitter

GemFile:

gem 'twitter'

Twitter

<table border="0">

<tr>

<td><%= image_tag Twitter.profile_image("rr_martins", :size => 'bigger') %></td>

<td><%= Twitter.user('rr_martins').location %>

<br> <%= Twitter.user('rr_martins').description %>

</td>

Twitter

</tr>

<% Twitter.user_timeline("rr_martins",{:count=>5}).each do |twit| %>

<tr>

<td colspan="2"><%= twit.text %></td>

</tr>

<% end %>

</table>

Fonteshttp://github.com

https://www.ruby-toolbox.com

http://rubygems.org/

Em breve:

http://rrmartins.com

https://github.com/rrmartins/blog

Duvidas?

@rr_martinsRodrigo Martinsrodrigo@rrmartins.com

Obrigado!

@rr_martinsRodrigo Martinsrodrigo@rrmartins.com

top related