rails e suas gems
TRANSCRIPT
Rails e suas Gems
@rr_martinsRodrigo [email protected]
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 [email protected]_file_name.nil? %>
<%= image_tag @post.image.url(:medium) if [email protected]_file_name.nil? %>
<%= image_tag @post.image.url(:thumb) if [email protected]_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
GemFile:
gem '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>
</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 [email protected]
Obrigado!
@rr_martinsRodrigo [email protected]