Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Railties @ GuruSC

Railties @ GuruSC

Carlos Antonio

September 18, 2010
Tweet

More Decks by Carlos Antonio

Other Decks in Programming

Transcript

  1. Carlos Antonio @cantoniodasilva
    blog.plataformatec.com.br
    RAILTIES
    OU
    COMO DESENVOLVER
    PLUGINS/GEMS PARA RAILS
    Sunday, November 6, 11

    View Slide

  2. Carlos Antonio @cantoniodasilva
    blog.plataformatec.com.br
    $ WHOAMI
    Sunday, November 6, 11

    View Slide

  3. Carlos Antonio @cantoniodasilva
    blog.plataformatec.com.br
    CARLOS ANTONIO DA SILVA
    @cantoniodasilva
    Sunday, November 6, 11

    View Slide

  4. Carlos Antonio @cantoniodasilva
    blog.plataformatec.com.br
    BSI NA UNIDAVI - RIO DO SUL
    GP NO SENAC - RIO DO SUL/
    FLORIANÓPOLIS
    Sunday, November 6, 11

    View Slide

  5. Carlos Antonio @cantoniodasilva
    blog.plataformatec.com.br
    TRABALHO NA
    Sunday, November 6, 11

    View Slide

  6. Carlos Antonio @cantoniodasilva
    blog.plataformatec.com.br
    DEVISE
    Sunday, November 6, 11

    View Slide

  7. Carlos Antonio @cantoniodasilva
    blog.plataformatec.com.br
    SIMPLE_FORM
    Sunday, November 6, 11

    View Slide

  8. Carlos Antonio @cantoniodasilva
    blog.plataformatec.com.br
    RESPONDERS
    Sunday, November 6, 11

    View Slide

  9. Carlos Antonio @cantoniodasilva
    blog.plataformatec.com.br
    Railties
    ?
    Sunday, November 6, 11

    View Slide

  10. Carlos Antonio @cantoniodasilva
    blog.plataformatec.com.br
    Railties
    WTF???
    ?
    Sunday, November 6, 11

    View Slide

  11. Carlos Antonio @cantoniodasilva
    blog.plataformatec.com.br
    Railties
    ?
    Application
    Initialization
    Engine
    Generators
    Sunday, November 6, 11

    View Slide

  12. Carlos Antonio @cantoniodasilva
    blog.plataformatec.com.br
    Railties
    ?
    Application
    Initialization
    Engine
    Generators
    HOOKS
    Sunday, November 6, 11

    View Slide

  13. Carlos Antonio @cantoniodasilva
    blog.plataformatec.com.br
    Railties
    ?
    Hooks
    GENERATORS
    module FooBar
    class Railtie < Rails::Railtie
    config.generators.orm = :foo_bar
    end
    end
    Sunday, November 6, 11

    View Slide

  14. Carlos Antonio @cantoniodasilva
    blog.plataformatec.com.br
    Railties
    ?
    Hooks
    RAKE TASKS
    module FooBar
    class Railtie < Rails::Railtie
    rake_tasks do
    load 'foo_bar/foo.rake'
    end
    end
    end
    Sunday, November 6, 11

    View Slide

  15. Carlos Antonio @cantoniodasilva
    blog.plataformatec.com.br
    Railties
    ?
    Hooks
    INIT
    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
    Sunday, November 6, 11

    View Slide

  16. Carlos Antonio @cantoniodasilva
    blog.plataformatec.com.br
    Railties
    ?
    Hooks
    INIT
    module FooBar
    class Railtie < Rails::Railtie
    initializer 'foo_bar.do_whatever' do |app|
    puts "I'm initializing!"
    # load your stuff here
    end
    end
    end
    Sunday, November 6, 11

    View Slide

  17. Carlos Antonio @cantoniodasilva
    blog.plataformatec.com.br
    ?
    FRAMEWORK LOADING
    ActiveSupport.on_load(:active_record) do
    include FooBar::ActiveRecordExtensions
    end
    Sunday, November 6, 11

    View Slide

  18. Carlos Antonio @cantoniodasilva
    blog.plataformatec.com.br
    E O QUE EU FAÇO COM
    ESSE NEGÓCIO DE
    FRAMEWORK LOADING?
    Sunday, November 6, 11

    View Slide

  19. Carlos Antonio @cantoniodasilva
    blog.plataformatec.com.br
    Railties
    ?
    Hooks
    INIT
    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
    Sunday, November 6, 11

    View Slide

  20. Carlos Antonio @cantoniodasilva
    blog.plataformatec.com.br
    EXEMPLO REAL???
    Sunday, November 6, 11

    View Slide

  21. Carlos Antonio @cantoniodasilva
    blog.plataformatec.com.br
    ?
    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
    Sunday, November 6, 11

    View Slide

  22. @cantoniodasilva
    blog.plataformatec.com.br
    Obrigado
    !
    ?!
    Sunday, November 6, 11

    View Slide