railties @ encontro guru sc (nao apresentado) - 2010.09.18
1. RAILTIES
OU
COMO DESENVOLVER
PLUGINS/GEMS PARA RAILS
Carlos Antonio blog.plataformatec.com.br @cantoniodasilva
Sunday, November 6, 11
2. $ WHOAMI
Carlos Antonio blog.plataformatec.com.br @cantoniodasilva
Sunday, November 6, 11
3. CARLOS ANTONIO DA SILVA
@cantoniodasilva
Carlos Antonio blog.plataformatec.com.br @cantoniodasilva
Sunday, November 6, 11
4. BSI NA UNIDAVI - RIO DO SUL
GP NO SENAC - RIO DO SUL/
FLORIANÓPOLIS
Carlos Antonio blog.plataformatec.com.br @cantoniodasilva
Sunday, November 6, 11
5. TRABALHO NA
Carlos Antonio blog.plataformatec.com.br @cantoniodasilva
Sunday, November 6, 11
6. DEVISE
Carlos Antonio blog.plataformatec.com.br @cantoniodasilva
Sunday, November 6, 11
7. SIMPLE_FORM
Carlos Antonio blog.plataformatec.com.br @cantoniodasilva
Sunday, November 6, 11
8. RESPONDERS
Carlos Antonio blog.plataformatec.com.br @cantoniodasilva
Sunday, November 6, 11
9. Railties
?
Carlos Antonio blog.plataformatec.com.br @cantoniodasilva
Sunday, November 6, 11
10. Railties
?
WTF???
Carlos Antonio blog.plataformatec.com.br @cantoniodasilva
Sunday, November 6, 11
11. Initialization
Application Railties Engine
?
Generators
Carlos Antonio blog.plataformatec.com.br @cantoniodasilva
Sunday, November 6, 11
12. Initialization
? HOOKS
Application Railties Engine
Generators
Carlos Antonio blog.plataformatec.com.br @cantoniodasilva
Sunday, November 6, 11
13. Railties GENERATORS Hooks
module FooBar
class Railtie < Rails::Railtie
config.generators.orm = :foo_bar
? end
end
Carlos Antonio blog.plataformatec.com.br @cantoniodasilva
Sunday, November 6, 11
14. Railties RAKE TASKS Hooks
module FooBar
class Railtie < Rails::Railtie
rake_tasks do
load 'foo_bar/foo.rake'
? end
end
end
Carlos Antonio blog.plataformatec.com.br @cantoniodasilva
Sunday, November 6, 11
15. Railties INIT Hooks
module FooBar
class Railtie < Rails::Railtie
# initialization hooks
config.before_configuration {}
config.before_eager_load {}
?
config.before_initialize {}
config.after_initialize {}
config.to_prepare {}
end
end
Carlos Antonio blog.plataformatec.com.br @cantoniodasilva
Sunday, November 6, 11
16. Railties INIT Hooks
module FooBar
class Railtie < Rails::Railtie
initializer 'foo_bar.do_whatever' do |app|
puts "I'm initializing!"
?
# load your stuff here
end
end
end
Carlos Antonio blog.plataformatec.com.br @cantoniodasilva
Sunday, November 6, 11
17. FRAMEWORK LOADING
ActiveSupport.on_load(:active_record) do
include FooBar::ActiveRecordExtensions
end
?
Carlos Antonio blog.plataformatec.com.br @cantoniodasilva
Sunday, November 6, 11
18. E O QUE EU FAÇO COM
ESSE NEGÓCIO DE
FRAMEWORK LOADING?
Carlos Antonio blog.plataformatec.com.br @cantoniodasilva
Sunday, November 6, 11
19. Railties INIT Hooks
module FooBar
class Railtie < Rails::Railtie
initializer 'foo_bar.do_whatever' do |app|
ActiveSupport.on_load(:active_record) do
?
include FooBar::ActiveRecordExtensions
end
end
end
end
Carlos Antonio blog.plataformatec.com.br @cantoniodasilva
Sunday, November 6, 11
20. EXEMPLO REAL???
Carlos Antonio blog.plataformatec.com.br @cantoniodasilva
Sunday, November 6, 11
21. module Responders
autoload :FlashResponder, 'responders/flash_responder'
autoload :HttpCacheResponder, 'responders/http_cache_responder'
autoload :CollectionResponder, 'responders/collection_responder'
require 'responders/controller_method'
class Railtie < ::Rails::Railtie
config.responders = ActiveSupport::OrderedOptions.new
config.generators.scaffold_controller = :responders_controller
# Add load paths straight to I18n, so engines and application can overwrite it.
require 'active_support/i18n'
I18n.load_path << File.expand_path('../responders/locales/en.yml', __FILE__)
? initializer "responders.flash_responder" do |app|
if app.config.responders.flash_keys
Responders::FlashResponder.flash_keys = app.config.responders.flash_keys
end
end
end
end
Carlos Antonio blog.plataformatec.com.br @cantoniodasilva
Sunday, November 6, 11
22. @cantoniodasilva
?! blog.plataformatec.com.br
Obrigado
!
Sunday, November 6, 11