Loading ...
Sorry, an error occurred while loading the content.

Re: [id-ruby] gmn supaya efisien

Expand Messages
  • Arie Kusuma Atmaja
    ... pasti sesudah ini adit langsung berpikir untuk menaruh code dari herry masuk ke wrapper helper ;-) ... -- r9 = { nama: Arie, nick: ariekeren, ym!: riyari3,
    Message 1 of 12 , Jun 29, 2007
    • 0 Attachment
      Herryanto Siatono wrote:
      > Aditya, cubain kayak gini: :-)
      >
      >
      >
      > <%= link_to 'Edit', :controller => 'albums', :action =>'edit_onepic', :id =>
      > photo.onepic.id, :at=>onepic_page_id(i) if session[:user] and
      > session[:user][:id].to_s == params[:id] %>

      pasti sesudah ini adit langsung berpikir untuk menaruh code dari herry masuk ke
      wrapper helper ;-)

      > -----Original Message-----
      > From: id-ruby@yahoogroups.com [mailto:id-ruby@yahoogroups.com] On Behalf Of
      > Aditya Agustyana
      > Sent: 29 June 2007 14:16
      > To: id-ruby@yahoogroups.com
      > Subject: [id-ruby] gmn supaya efisien
      >
      >
      >
      > aku punya kode, di view
      >
      > <% if session[:user] %>
      > <% if session[:user][:id].to_i==params[:id].to_i%>
      > <%= link_to 'Edit'.t, :controller => 'albums', :action =>
      > 'edit_onepic', :id => photo.onepic.id, :at=>onepic_page_id(i) %>
      > <% end %>
      > <% end %>
      >
      > itu sebetulnya udah jalan, cuma penasaran gmn caranya spy bisa efisien
      > dengan memakai satu IF nggak 2 IF ?
      >
      > asalnya aku coba kayak gini aja
      >
      > <% if session[:user][:id].to_i==params[:id].to_i%>
      > <%= link_to 'Edit'.t, :controller => 'albums', :action =>
      > 'edit_onepic', :id => photo.onepic.id, :at=>onepic_page_id(i) %>
      > <% end %>
      >
      > tapi kode kayak gitu akan menyebabkan error manakala session[:user]
      > nya nil
      >
      > nah teman2 ada yg punya solusi gak gmn spy IF-nya cuma satu ajah ?
      >
      > makasih sebelumnya



      --
      r9 = { nama: Arie, nick: ariekeren, ym!: riyari3,
      blog: http://ariekusumaatmaja.wordpress.com,
      myst: http://groups.yahoo.com/groups/id-ruby,
      vilr: %Q~
      function! WhitePearl()
      perl << EOF
      VIM::Msg("pearls are nice for necklaces");
      VIM::Msg("rubys for rings");
      VIM::Msg("pythons for bags");
      VIM::Msg("tcls????");
      EOF
      endfunction
      ~ }
    • Arie Kusuma Atmaja
      ... ini si penanya awal (si adit) tampaknya bermasalah dengan masalah koneksi kenapa belum confirm confirm juga bagaimana bentuk codes akhirnya... apakah sudah
      Message 2 of 12 , Jul 4, 2007
      • 0 Attachment
        Arie Kusuma Atmaja wrote:
        > Herryanto Siatono wrote:
        >> Aditya, cubain kayak gini: :-)
        >>
        >>
        >>
        >> <%= link_to 'Edit', :controller => 'albums', :action =>'edit_onepic',
        >> :id =>
        >> photo.onepic.id, :at=>onepic_page_id(i) if session[:user] and
        >> session[:user][:id].to_s == params[:id] %>
        >
        > pasti sesudah ini adit langsung berpikir untuk menaruh code dari herry
        > masuk ke wrapper helper ;-)

        ini si penanya awal (si adit) tampaknya bermasalah dengan masalah koneksi kenapa
        belum confirm confirm juga bagaimana bentuk codes akhirnya... apakah sudah ditaroh
        di helper atau mungkin punya cara yield ;-)

        saya mewakili adit, waktu di bandung kemarin pas saya tagih mana itu
        pertanyaan/klarifikasi si yohanes tentang Proc dan lambda itu coba dijawab dulu,
        ternyata yang bersangkutan mengaku masih benar-benar blank dan belum pernah lihat
        codes nya di rails.... Tapi itu adalah sekitar 2 atau 3 minggu yang lalu sewaktu
        saya ada di bandung, jadi mungkin-mungkin saja kalau setiap hari setiap jam adit
        selalu belajar rails belajar ruby bisa saja sekarang adit sudah menjadi jedi ruby
        di tingkat yang berbeda alias sudah bisa Proc dan lambda sedikit2x...

        >
        >> -----Original Message-----
        >> From: id-ruby@yahoogroups.com [mailto:id-ruby@yahoogroups.com] On
        >> Behalf Of
        >> Aditya Agustyana
        >> Sent: 29 June 2007 14:16
        >> To: id-ruby@yahoogroups.com
        >> Subject: [id-ruby] gmn supaya efisien
        >>
        >>
        >>
        >> aku punya kode, di view
        >>
        >> <% if session[:user] %>
        >> <% if session[:user][:id].to_i==params[:id].to_i%>
        >> <%= link_to 'Edit'.t, :controller => 'albums', :action =>
        >> 'edit_onepic', :id => photo.onepic.id, :at=>onepic_page_id(i) %>
        >> <% end %>
        >> <% end %>
        >>
        >> itu sebetulnya udah jalan, cuma penasaran gmn caranya spy bisa efisien
        >> dengan memakai satu IF nggak 2 IF ?
        >>
        >> asalnya aku coba kayak gini aja
        >>
        >> <% if session[:user][:id].to_i==params[:id].to_i%>
        >> <%= link_to 'Edit'.t, :controller => 'albums', :action =>
        >> 'edit_onepic', :id => photo.onepic.id, :at=>onepic_page_id(i) %>
        >> <% end %>
        >>
        >> tapi kode kayak gitu akan menyebabkan error manakala session[:user]
        >> nya nil
        >>
        >> nah teman2 ada yg punya solusi gak gmn spy IF-nya cuma satu ajah ?
        >>
        >> makasih sebelumnya
        >
        >
        >


        --
        r9 = { nama: Arie, nick: ariekeren, ym!: riyari3,
        blog: http://ariekusumaatmaja.wordpress.com,
        myst: http://groups.yahoo.com/groups/id-ruby,
        vilr: %Q~
        function! WhitePearl()
        perl << EOF
        VIM::Msg("pearls are nice for necklaces");
        VIM::Msg("rubys for rings");
        VIM::Msg("pythons for bags");
        VIM::Msg("tcls????");
        EOF
        endfunction
        ~ }
      • Kusno Mudiarto
        Halo Semua, barusan ketemu ilham, cuman saya nggak tahu seberapa berbahaya. Mungkin para pakar ruby disini bisa bilangin. Jadi hack ini bisa ditaruh di
        Message 3 of 12 , Jul 11, 2007
        • 0 Attachment
          Halo Semua,

          barusan ketemu ilham, cuman saya nggak tahu seberapa berbahaya. Mungkin para
          pakar ruby disini bisa bilangin.
          Jadi "hack" ini bisa ditaruh di application.rb atau dimana saja yang diload
          duluan.

          class NilClass
          def method_missing method_id, *args
          nil
          end
          end

          kalau tanpa code diatas contohnya :

          a={}
          => nil
          a[:user]
          => nil
          a[:user][:id]
          NoMethodError: undefined method `[]' for nil:NilClass
          from (irb):3


          nah, kalau ada code diatas, jadinya :

          a={}
          => nil
          a[:user]
          => nil
          a[:user][:id]
          => nil

          dengan "Hack" diatas, kamu nggak perlu ngecek if session[:user] &&
          session[:user][:id] .. bisa diterobos langsung if session[:user][:id] .. :-)

          cuman warning sekali lagi. kalau ada code itu, object yang nil bisa dibilang
          nggak keliatan lagi, semuanya berjalan dengan baik. Jadi kalau ada bug
          mungkin lebih susah debugnya. Saya juga nggak tahu apa ada effectnya dengan
          code-code lain (terutama rails code).

          Semoga membantu,


          kusno mudiarto




          >
          > >> -----Original Message-----
          > >> From: id-ruby@yahoogroups.com <id-ruby%40yahoogroups.com> [mailto:
          > id-ruby@yahoogroups.com <id-ruby%40yahoogroups.com>] On
          > >> Behalf Of
          > >> Aditya Agustyana
          > >> Sent: 29 June 2007 14:16
          > >> To: id-ruby@yahoogroups.com <id-ruby%40yahoogroups.com>
          > >> Subject: [id-ruby] gmn supaya efisien
          > >>
          > >>
          > >>
          > >> aku punya kode, di view
          > >>
          > >> <% if session[:user] %>
          > >> <% if session[:user][:id].to_i==params[:id].to_i%>
          > >> <%= link_to 'Edit'.t, :controller => 'albums', :action =>
          > >> 'edit_onepic', :id => photo.onepic.id, :at=>onepic_page_id(i) %>
          > >> <% end %>
          > >> <% end %>
          > >>
          > >> itu sebetulnya udah jalan, cuma penasaran gmn caranya spy bisa efisien
          > >> dengan memakai satu IF nggak 2 IF ?
          > >>
          > >> asalnya aku coba kayak gini aja
          > >>
          > >> <% if session[:user][:id].to_i==params[:id].to_i%>
          > >> <%= link_to 'Edit'.t, :controller => 'albums', :action =>
          > >> 'edit_onepic', :id => photo.onepic.id, :at=>onepic_page_id(i) %>
          > >> <% end %>
          > >>
          > >> tapi kode kayak gitu akan menyebabkan error manakala session[:user]
          > >> nya nil
          > >>
          > >> nah teman2 ada yg punya solusi gak gmn spy IF-nya cuma satu ajah ?
          > >>
          > >> makasih sebelumnya
          > >
          > >
          > >
          > .
          >
          >
          >


          [Non-text portions of this message have been removed]
        • Yohanes Santoso
          [peringatan: yang baca melalui web interface, set message display optionnya untuk memakai Fixed-Width Font, kalau tidak code2xnya tidak karuan identasinya.
          Message 4 of 12 , Jul 11, 2007
          • 0 Attachment
            [peringatan: yang baca melalui web interface, set message display
            optionnya untuk memakai Fixed-Width Font, kalau tidak code2xnya tidak
            karuan identasinya. yang baca melalui proper email client, set untuk
            memilih menayangkan content text/plain dan bukan text/html].

            "Kusno Mudiarto" <mudiarto@...> writes:

            > barusan ketemu ilham, cuman saya nggak tahu seberapa berbahaya.

            Terlalu bahaya karena merubah fundamental behaviournya NilClass yang
            diperlukan untuk fail-fast.

            Kenapa tidak:
            def fronobitz
            yield
            rescue NoMethodError
            nil
            end
            end

            fronobitz { a[:user][:id] }

            >> >> <% if session[:user] %>
            >> >> <% if session[:user][:id].to_i==params[:id].to_i%>
            >> >> nah teman2 ada yg punya solusi gak gmn spy IF-nya cuma satu ajah ?

            <% if session[:user] and session[:user][:id].to_i==params[:id].to_i %>
            atau
            <% if fronobitz{session[:user][:id]}.to_i==params[:id].to_i %>

            yang akan berkelakuan salah karena nil.to_i => 0 kecuali jika tidak
            ada id yang valuenya 0 (0 is a special value).


            Merubah kelakuan NilClass seperti ini memang kelihatannya harmless
            karena contoh2xnya memang trivial. Tapi perlu diingat bahwa contextnya
            NilClass itu global. Pada umumnya, ide jelek untuk merubah kelakuan
            standard classes seperti NilClass ini karena kode2x harus bisa
            setidak2xnya bertumpu pada beberapa behaviour yang concrete.

            YS.
          • freez z
            Saya tertarik sekali belajar Ruby, ada yang tau ga dimana saya bisa ikut kursusnya????????????????? Kalau belajar dari milis2 ga ngerti. Kalau belajar dari
            Message 5 of 12 , Jul 12, 2007
            • 0 Attachment
              Saya tertarik sekali belajar Ruby, ada yang tau ga dimana saya bisa ikut kursusnya????????????????? Kalau belajar dari milis2 ga ngerti. Kalau belajar dari buku , ga ada buku yang bahasa indonesianya. Bahasa inggris saya kurang bagus.


              ---------------------------------
              Be a better Heartthrob. Get better relationship answers from someone who knows.
              Yahoo! Answers - Check it out.

              [Non-text portions of this message have been removed]
            • Hendy Irawan
              ... Mas Arie bales dong... Sekarang kita blom tau yah lembaga pendidikan yang ngasih kurikulum Ruby... Kalo privat, mungkin ke Mas Arie ato temen2 yang lain :D
              Message 6 of 12 , Jul 13, 2007
              • 0 Attachment
                On 7/12/07, freez z <frezzz_05@...> wrote:
                >
                >
                >
                > Saya tertarik sekali belajar Ruby, ada yang tau ga dimana saya bisa ikut
                > kursusnya????????????????? Kalau belajar dari milis2 ga ngerti. Kalau
                > belajar dari buku , ga ada buku yang bahasa indonesianya. Bahasa inggris
                > saya kurang bagus.
                >
                >
                Mas Arie bales dong...

                Sekarang kita blom tau yah lembaga pendidikan yang ngasih kurikulum Ruby...

                Kalo privat, mungkin ke Mas Arie ato temen2 yang lain :D

                Kalo belajar dari internet, di ilmukomputer.com ada beberapa artikel Ruby
                .....

                somebody build a Ruby college please :-)

                --
                Hendy Irawan -- Yahoo: ceefour666
                www.hendyirawan.com


                [Non-text portions of this message have been removed]
              • Aria Rajasa Masna
                Mungkin ada baiknya kalau belajar bahasa inggris lebih dalam dulu. Bahasa ruby sangat natural secara penggunaan dan grammar. Kalau kita bisa bilang si,
                Message 7 of 12 , Jul 13, 2007
                • 0 Attachment
                  Mungkin ada baiknya kalau belajar bahasa inggris lebih dalam dulu. Bahasa
                  ruby sangat natural secara penggunaan dan grammar. Kalau kita bisa bilang
                  si, mendekati bahasa manusia :D Dan lagi untuk terus belajar lebih banyak
                  lagi akan terus memerlukan source artikel dan buku yang berbahasa inggris.

                  Jika terus menunggu-nunggu kursus atau terjemahan artikel, maka tidak akan
                  bisa lebih maju dari orang terakhir yang menerjemahkan dong?

                  ~justMy2cents

                  On 7/14/07, Hendy Irawan <ceefour@...> wrote:
                  >
                  > On 7/12/07, freez z <frezzz_05@... <frezzz_05%40yahoo.com>> wrote:
                  > >
                  > >
                  > >
                  > > Saya tertarik sekali belajar Ruby, ada yang tau ga dimana saya bisa ikut
                  > > kursusnya????????????????? Kalau belajar dari milis2 ga ngerti. Kalau
                  > > belajar dari buku , ga ada buku yang bahasa indonesianya. Bahasa inggris
                  > > saya kurang bagus.
                  > >
                  > >
                  > Mas Arie bales dong...
                  >
                  > Sekarang kita blom tau yah lembaga pendidikan yang ngasih kurikulum
                  > Ruby...
                  >
                  > Kalo privat, mungkin ke Mas Arie ato temen2 yang lain :D
                  >
                  > Kalo belajar dari internet, di ilmukomputer.com ada beberapa artikel Ruby
                  > .....
                  >
                  > somebody build a Ruby college please :-)
                  >
                  > --
                  > Hendy Irawan -- Yahoo: ceefour666
                  > www.hendyirawan.com
                  >
                  >
                  > [Non-text portions of this message have been removed]
                  >
                  >
                  >



                  --
                  Aria Rajasa Masna
                  <a href="http://rajasa.com">PT. Rajasa Grafika</a>

                  <a href="http://sharingfoto.com/aria">My Photo Album</a>
                  <a href="http://rajasa.com/blog">My Blog</a>


                  [Non-text portions of this message have been removed]
                • Hendy Irawan
                  ... Yup saya setuju banget sama mas Arie... And at least harus ada teaser Ruby dalam bahasa Indonesia...... semacam tutorial atau buku ato resource2 gitu
                  Message 8 of 12 , Jul 13, 2007
                  • 0 Attachment
                    On 7/14/07, Aria Rajasa Masna <rajasa@...> wrote:
                    >
                    > Mungkin ada baiknya kalau belajar bahasa inggris lebih dalam dulu. Bahasa
                    > ruby sangat natural secara penggunaan dan grammar. Kalau kita bisa bilang
                    > si, mendekati bahasa manusia :D Dan lagi untuk terus belajar lebih banyak
                    > lagi akan terus memerlukan source artikel dan buku yang berbahasa inggris.
                    >
                    > Jika terus menunggu-nunggu kursus atau terjemahan artikel, maka tidak akan
                    > bisa lebih maju dari orang terakhir yang menerjemahkan dong?
                    >
                    > ~justMy2cents
                    >
                    Yup saya setuju banget sama mas Arie...

                    And at least harus ada 'teaser' Ruby dalam bahasa Indonesia...... semacam
                    tutorial atau buku ato resource2 gitu yang meskipun levelnya 'basic' tapi
                    cukup bisa membuat orang tertarik untuk njeburr ke Ruby (dan Rails). Nah
                    begitu sampai di dalam... lama2 kalo asyik pasti pingin tau lebih jauh, kalo
                    emang niat pasti bakalan nyari artikel2 english dan kalo misalnya dikasih
                    resource English jawabannya bukan 'yah koq inggris sih' tapi dia (semoga)
                    akan berusaha..... bukan karena dia pingin belajar English tapi karena udah
                    telanjur asik mainan Ruby.......

                    Kayak ArieKeren tuh bela2in nginstall OS X di PowerBook-nya cuma demi
                    njalanin 'git' (*lhoh, apa hubungannya*)


                    --
                    Hendy Irawan -- Yahoo: ceefour666
                    www.hendyirawan.com


                    [Non-text portions of this message have been removed]
                  • Arie Kusuma Atmaja
                    ... hm, kelamaan confirmnya ini saya kasihkan aja dah. mari kita analisis dan belajar bersama. sayang:~/2 arie$ rails pawangsession --database=sqlite3 && cd
                    Message 9 of 12 , Jul 16, 2007
                    • 0 Attachment
                      Arie Kusuma Atmaja wrote:
                      > Arie Kusuma Atmaja wrote:
                      >> Herryanto Siatono wrote:
                      >>> Aditya, cubain kayak gini: :-)
                      >>>
                      >>> <%= link_to 'Edit', :controller => 'albums', :action =>'edit_onepic',
                      >>> :id =>
                      >>> photo.onepic.id, :at=>onepic_page_id(i) if session[:user] and
                      >>> session[:user][:id].to_s == params[:id] %>
                      >>
                      >> pasti sesudah ini adit langsung berpikir untuk menaruh code dari herry
                      >> masuk ke wrapper helper ;-)
                      >
                      > ini si penanya awal (si adit) tampaknya bermasalah dengan masalah
                      > koneksi kenapa belum confirm confirm juga bagaimana bentuk codes
                      > akhirnya... apakah sudah ditaroh di helper atau mungkin punya cara yield
                      > ;-)
                      >
                      > saya mewakili adit, waktu di bandung kemarin pas saya tagih mana itu
                      > pertanyaan/klarifikasi si yohanes tentang Proc dan lambda itu coba
                      > dijawab dulu, ternyata yang bersangkutan mengaku masih benar-benar blank
                      > dan belum pernah lihat codes nya di rails.... Tapi itu adalah sekitar 2
                      > atau 3 minggu yang lalu sewaktu saya ada di bandung, jadi
                      > mungkin-mungkin saja kalau setiap hari setiap jam adit selalu belajar
                      > rails belajar ruby bisa saja sekarang adit sudah menjadi jedi ruby di
                      > tingkat yang berbeda alias sudah bisa Proc dan lambda sedikit2x...
                      >
                      >>
                      >>> -----Original Message-----
                      >>> From: id-ruby@yahoogroups.com [mailto:id-ruby@yahoogroups.com] On
                      >>> Behalf Of
                      >>> Aditya Agustyana
                      >>> Sent: 29 June 2007 14:16
                      >>> To: id-ruby@yahoogroups.com
                      >>> Subject: [id-ruby] gmn supaya efisien
                      >>>
                      >>> aku punya kode, di view
                      >>>
                      >>> <% if session[:user] %>
                      >>> <% if session[:user][:id].to_i==params[:id].to_i%>
                      >>> <%= link_to 'Edit'.t, :controller => 'albums', :action =>
                      >>> 'edit_onepic', :id => photo.onepic.id, :at=>onepic_page_id(i) %>
                      >>> <% end %>
                      >>> <% end %>
                      >>>
                      >>> itu sebetulnya udah jalan, cuma penasaran gmn caranya spy bisa efisien
                      >>> dengan memakai satu IF nggak 2 IF ?
                      >>>
                      >>> asalnya aku coba kayak gini aja
                      >>>
                      >>> <% if session[:user][:id].to_i==params[:id].to_i%>
                      >>> <%= link_to 'Edit'.t, :controller => 'albums', :action =>
                      >>> 'edit_onepic', :id => photo.onepic.id, :at=>onepic_page_id(i) %>
                      >>> <% end %>
                      >>>
                      >>> tapi kode kayak gitu akan menyebabkan error manakala session[:user]
                      >>> nya nil
                      >>>
                      >>> nah teman2 ada yg punya solusi gak gmn spy IF-nya cuma satu ajah ?

                      hm, kelamaan confirmnya ini saya kasihkan aja dah.

                      mari kita analisis dan belajar bersama.



                      sayang:~/2 arie$ rails pawangsession --database=sqlite3 && cd pawangsession &&
                      script/plug
                      in install http://svn.techno-weenie.net/projects/plugins/acts_as_authenticated
                      create
                      create app/controllers
                      create app/helpers
                      create app/models
                      create app/views/layouts
                      create config/environments
                      create components
                      create db
                      create doc
                      create lib
                      create lib/tasks
                      create log
                      create public/images
                      create public/javascripts
                      create public/stylesheets
                      create script/performance
                      create script/process
                      create test/fixtures
                      create test/functional
                      create test/integration
                      create test/mocks/development
                      create test/mocks/test
                      create test/unit
                      create vendor
                      create vendor/plugins
                      create tmp/sessions
                      create tmp/sockets
                      create tmp/cache
                      create tmp/pids
                      create Rakefile
                      create README
                      create app/controllers/application.rb
                      create app/helpers/application_helper.rb
                      create test/test_helper.rb
                      create config/database.yml
                      create config/routes.rb
                      create public/.htaccess
                      create config/boot.rb
                      create config/environment.rb
                      create config/environments/production.rb
                      create config/environments/development.rb
                      create config/environments/test.rb
                      create script/about
                      create script/breakpointer
                      create script/console
                      create script/destroy
                      create script/generate
                      create script/performance/benchmarker
                      create script/performance/profiler
                      create script/process/reaper
                      create script/process/spawner
                      create script/process/inspector
                      create script/runner
                      create script/server
                      create script/plugin
                      create public/dispatch.rb
                      create public/dispatch.cgi
                      create public/dispatch.fcgi
                      create public/404.html
                      create public/500.html
                      create public/index.html
                      create public/favicon.ico
                      create public/robots.txt
                      create public/images/rails.png
                      create public/javascripts/prototype.js
                      create public/javascripts/effects.js
                      create public/javascripts/dragdrop.js
                      create public/javascripts/controls.js
                      create public/javascripts/application.js
                      create doc/README_FOR_APP
                      create log/server.log
                      create log/production.log
                      create log/development.log
                      create log/test.log
                      + ./acts_as_authenticated/CHANGELOG
                      + ./acts_as_authenticated/README
                      + ./acts_as_authenticated/generators/authenticated/USAGE
                      + ./acts_as_authenticated/generators/authenticated/authenticated_generator.rb
                      + ./acts_as_authenticated/generators/authenticated/templates/authenticated_system.rb
                      +
                      ./acts_as_authenticated/generators/authenticated/templates/authenticated_test_helper.rb
                      + ./acts_as_authenticated/generators/authenticated/templates/controller.rb
                      + ./acts_as_authenticated/generators/authenticated/templates/fixtures.yml
                      + ./acts_as_authenticated/generators/authenticated/templates/functional_test.rb
                      + ./acts_as_authenticated/generators/authenticated/templates/helper.rb
                      + ./acts_as_authenticated/generators/authenticated/templates/index.rhtml
                      + ./acts_as_authenticated/generators/authenticated/templates/login.rhtml
                      + ./acts_as_authenticated/generators/authenticated/templates/migration.rb
                      + ./acts_as_authenticated/generators/authenticated/templates/model.rb
                      + ./acts_as_authenticated/generators/authenticated/templates/signup.rhtml
                      + ./acts_as_authenticated/generators/authenticated/templates/unit_test.rb
                      + ./acts_as_authenticated/generators/authenticated_mailer/USAGE
                      +
                      ./acts_as_authenticated/generators/authenticated_mailer/authenticated_mailer_generator.rb
                      + ./acts_as_authenticated/generators/authenticated_mailer/templates/activation.rhtml
                      + ./acts_as_authenticated/generators/authenticated_mailer/templates/notifier.rb
                      + ./acts_as_authenticated/generators/authenticated_mailer/templates/notifier_test.rb
                      + ./acts_as_authenticated/generators/authenticated_mailer/templates/observer.rb
                      +
                      ./acts_as_authenticated/generators/authenticated_mailer/templates/signup_notification.rhtml
                      + ./acts_as_authenticated/install.rb
                      acts_as_authenticated generator
                      ====

                      This is a basic authentication generator for rails, very much in the spirit of
                      xal's original Login Generator.

                      To use:

                      ./script/generate authenticated user account

                      This generates a basic user model, a controller, some basic views, and tests.
                      Extra functionality can be unlocked by
                      removing the comments for them. I have a few examples such as user activation and
                      reversible encrypted passwords.

                      The user migration is also generated unless you pass --skip-migration.

                      Generate your mailer:

                      ./script/generate authenticated_mailer user

                      Consult the Acts As Authenticated wiki for more:
                      http://technoweenie.stikipad.com/plugins/show/Acts+as+Authenticated

                      sayang:~/2/pawangsession arie$




                      kemudian buka terminal (di iTerm saya tekan apple T untuk membuka tab baru),

                      Last login: Sat Jul 14 07:43:53 on ttype
                      Okaeri Arie-sama
                      23349 ?? R 2:00.89 /opt/local/bin/ruby /opt/local/bin/mongrel_rails start -d
                      1008 p1 S 38:40.38 /opt/local/bin/ruby /opt/local/bin/gem_server
                      sayang:~ arie$ cd 2/pawangsession/
                      sayang:~/2/pawangsession arie$ tail -f log/development.log




                      buka lagi satu tab lagi (untuk tail -f log/test.log)

                      Last login: Sat Jul 14 07:50:47 on ttypc
                      Okaeri Arie-sama
                      23349 ?? R 2:00.95 /opt/local/bin/ruby /opt/local/bin/mongrel_rails start -d
                      1008 p1 S 38:40.93 /opt/local/bin/ruby /opt/local/bin/gem_server
                      sayang:~ arie$ cd 2/pawangsession/
                      sayang:~/2/pawangsession arie$ tail -f log/test.log




                      nah ada 3 terminal yang dibuka sekarang kita kembali lagi ke terminal pertama.




                      sayang:~/2/pawangsession arie$ script/generate authenticated user account
                      exists app/models/
                      exists app/controllers/
                      exists app/helpers/
                      create app/views/account
                      exists test/functional/
                      exists test/unit/
                      create app/models/user.rb
                      create app/controllers/account_controller.rb
                      create lib/authenticated_system.rb
                      create lib/authenticated_test_helper.rb
                      create test/functional/account_controller_test.rb
                      create app/helpers/account_helper.rb
                      create test/unit/user_test.rb
                      create test/fixtures/users.yml
                      create app/views/account/index.rhtml
                      create app/views/account/login.rhtml
                      create app/views/account/signup.rhtml
                      create db/migrate
                      create db/migrate/001_create_users.rb
                      sayang:~/2/pawangsession arie$




                      perhatikan disini kita dibuatkan model user, controller account, termasuk sampai
                      test testnya, bahkan sampai view juga sudah tersedia. perhatikan juga rick
                      ngerancang ini langsung bikinkan file buat nongkrong di direktori lib yang
                      nantinya dipanggil sebagai mixin lewat controller yg membutuhkan. kita lihat juga
                      nongol 001 untuk migrate, ya, tinggal kita migrate




                      sayang:~/2/pawangsession arie$ rake db:migrate --trace
                      (in /Users/arie/2/pawangsession)
                      ** Invoke db:migrate (first_time)
                      ** Invoke environment (first_time)
                      ** Execute environment
                      ** Execute db:migrate
                      == CreateUsers: migrating =====================================================
                      -- create_table("users", {:force=>true})
                      -> 0.1259s
                      == CreateUsers: migrated (0.1276s) ============================================

                      ** Invoke db:schema:dump (first_time)
                      ** Invoke environment
                      ** Execute db:schema:dump
                      sayang:~/2/pawangsession arie$




                      awas! sambil migrate kita sambil ngintip terminal satunya! kalau di iTerm caranya
                      tekan apple panah kanan, disitu kita lihat tail -f log/development.log nya
                      gerak-gerak :-B




                      sayang:~/2/pawangsession arie$ tail -f log/development.log
                      SQL (0.012095) CREATE TABLE schema_info (version integer)
                      SQL (0.003948) INSERT INTO schema_info (version) VALUES(0)
                      SQL (0.000000) SQLite3::SQLException: table schema_info already exists:
                      CREATE TABLE schema_info (version integer)
                      SQL (0.001227) SELECT version FROM schema_info
                      Migrating to CreateUsers (1)
                      SQL (0.000000) SQLite3::SQLException: no such table: users: DROP TABLE users
                      SQL (0.005717) CREATE TABLE users ("id" INTEGER PRIMARY KEY NOT NULL, "login"
                      varchar(255) DEFAULT NULL, "email" varchar(255) DEFAULT NULL, "crypted_password"
                      varchar(40) DEFAULT NULL, "salt" varchar(40) DEFAULT NULL, "created_at" datetime
                      DEFAULT NULL, "updated_at" datetime DEFAULT NULL, "remember_token" varchar(255)
                      DEFAULT NULL, "remember_token_expires_at" datetime DEFAULT NULL)
                      SQL (0.008792) UPDATE schema_info SET version = 1
                      SQL (0.001204) SELECT * FROM schema_info
                      SQL (0.001887) SELECT name FROM sqlite_master WHERE type = 'table'
                      SQL (0.000489) PRAGMA index_list(users)




                      sudah .. ngintipnya jangan kelamaan, nanti bisa benjol, kita balik lagi ke
                      terminal kerja satunya tadi, periksa aja status kita sekarang... apakah masih
                      single atau sudah nikah oops maksudnya, schema nya udah pasti berubah jadi 1 atau
                      masih nol alias kosong / pengen lihat doang sih, walau dari log nya sebetulnya
                      sudah kelihatan kan...




                      sayang:~/2/pawangsession arie$ script/about
                      About your application's environment
                      Ruby version 1.8.6 (powerpc-darwin8.9.0)
                      RubyGems version 0.9.4
                      Rails version 1.2.3
                      Active Record version 1.15.3
                      Action Pack version 1.13.3
                      Action Web Service version 1.2.3
                      Action Mailer version 1.3.3
                      Active Support version 1.4.2
                      Application root /Users/arie/2/pawangsession
                      Environment development
                      Database adapter sqlite3
                      Database schema version 1




                      nah nanti kalau sudah kebiasaan makan-makan rails, pasti sudah titen (kenal/biasa)
                      sama polanya, paling tinggal tangkap gini aja kalau sudah biasa nanti




                      sayang:~/2/pawangsession arie$ script/about |awk '/schema/' -
                      Database schema version 1
                      sayang:~/2/pawangsession arie$




                      lho.. gampang toh. ternyata schema sudah versi 1 sekarang sodara-sodara.

                      OK, lanjut... buka editor favorit masing2x (no flame editor plis/ah editor lagi
                      editor lagi, dasar pegel ngetik!)

                      file apa aja yang diintip? err dibuka?

                      ya, coba aja buka file user.rb (harus pasti tau lah ada di app/models dir) nah
                      trus buka lagi controller account, nah disitu keliatan aja udah ada nongol mixin
                      minta dipindahin ke application.rb, ya udah tinggal cut-paste. yg ada login from
                      cookienya sementara kasih komen aja biar dicuekin/diabaikan.


                      jadi ini sebelum:




                      sayang:~/2/pawangsession arie$ cat app/controllers/application.rb
                      # Filters added to this controller apply to all controllers in the application.
                      # Likewise, all the methods added will be available for all controllers.

                      class ApplicationController < ActionController::Base
                      # Pick a unique cookie name to distinguish our session data from others'
                      session :session_key => '_pawangsession_session_id'
                      end




                      sesudah di cut paste dari controller account, jadi kayak gini:




                      sayang:~/2/pawangsession arie$ cat app/controllers/application.rb
                      # Filters added to this controller apply to all controllers in the application.
                      # Likewise, all the methods added will be available for all controllers.

                      class ApplicationController < ActionController::Base
                      # Pick a unique cookie name to distinguish our session data from others'
                      session :session_key => '_pawangsession_session_id'

                      # Be sure to include AuthenticationSystem in Application Controller instead
                      include AuthenticatedSystem
                      # If you want "remember me" functionality, add this before_filter to
                      Application Controller
                      # before_filter :login_from_cookie

                      end
                      sayang:~/2/pawangsession arie$




                      sekarang kita lihat lagi controller account




                      sayang:~/2/pawangsession arie$ cat app/controllers/account_controller.rb
                      class AccountController < ApplicationController

                      # say something nice, you goof! something sweet.
                      def index
                      redirect_to(:action => 'signup') unless logged_in? || User.count > 0
                      end




                      maksudnya kalau yang klik account/index nggak/belum login atau kalau pas dihitung
                      record di tabel users eh ternyata masih belum lebih besar daripada nol (artinya
                      tabel emang kosong/user belum ada yang pernah daftar sama sekali) maka redirect ke
                      metode/page signup.

                      ya udah, kayaknya kalau dilihat-lihat udah bakalan bisa jalan itu mainan AAA nya
                      (Acts As Authenticated).

                      cobain nyalain mongrelnya.



                      sayang:~/2/pawangsession arie$ mongrel_rails start -d -p 3001
                      sayang:~/2/pawangsession arie$




                      ya, sekarang tinggal ngebros ke http://localhost:3001/account/index

                      eit, beneran kita di redirect tuh, nih liat lognya




                      Processing AccountController#index (for 127.0.0.1 at 2007-07-14 08:53:06) [GET]
                      Session ID: 3f09816f1ffdbf30bb313645b4e78819
                      Parameters: {"action"=>"index", "controller"=>"account"}
                      SQL (0.002523) SELECT count(*) AS count_all FROM users
                      Redirected to http://localhost:3001/account/signup
                      Completed in 1.27428 (0 reqs/sec) | DB: 0.00252 (0%) | 302 Found
                      [http://localhost/account/index]


                      Processing AccountController#signup (for 127.0.0.1 at 2007-07-14 08:53:08) [GET]
                      Session ID: 3f09816f1ffdbf30bb313645b4e78819
                      Parameters: {"action"=>"signup", "controller"=>"account"}
                      Rendering account/signup
                      Completed in 0.10292 (9 reqs/sec) | Rendering: 0.03382 (32%) | DB: 0.00000 (0%) |
                      200 OK [http://localhost/account/signup]

                      ya udah, ini artinya emang User nggak ada/kosong. ya kita isi aja, mis.
                      login=ariekeren email=ariekeren@... password=ariejelek13 confirm
                      password=ariejelek13

                      ...




                      tunggu dulu! adit protes, mas arie.. walau aing nggak sempat confirm kemaren karna
                      mainan pindah pindah port, kalo gitu aja kurang menantang, aing hayang lewat
                      terminal aja / gak usah lewat web. bisa nggak?

                      iyah.. bisa...

                      coba liatin view source nya (karena tadi udah terlanjut lewat camino browser):

                      tapi kalau mau lewat terminal aja juga bisa kok:




                      sayang:~/2/pawangsession arie$ GET http://localhost:3001/account/index

                      <form action="/account/signup" method="post"><p><label for="login">Login</label><br/>
                      <input id="user_login" name="user[login]" size="30" type="text" /></p>

                      <p><label for="email">Email</label><br/>
                      <input id="user_email" name="user[email]" size="30" type="text" /></p>

                      <p><label for="password">Password</label><br/>
                      <input id="user_password" name="user[password]" size="30" type="password" /></p>

                      <p><label for="password_confirmation">Confirm Password</label><br/>
                      <input id="user_password_confirmation" name="user[password_confirmation]"
                      size="30" type="password" /></p>

                      <p><input name="commit" type="submit" value="Sign up" /></p>
                      </form>sayang:~/2/pawangsession arie$




                      eit, itu tapi ada GET yang dari LWP nya CPAN (Perl) :-) kalau belum ada LWP dan
                      mau pakai ruby ya pakai :




                      sayang:~/2/pawangsession arie$ ruby -r net/http -e 'Net::HTTP.get_print
                      URI.parse("http://
                      localhost:3001/account/index/")'
                      <html><body>You are being <a
                      href="http://localhost:3001/account/signup">redirected</a>.</body></html>sayang:~/2/pawangsession



                      arie$

                      nah lo, diredirect.. PR buat adit ya :-) biar jangan2 nanti herryanto lagi yang
                      nongol keluar / turun gunung perguruan sakti mandraguna. kali aja ada yg pakai
                      open yang require http2 itu lho ;-)



                      OK, OK, mainan Get get nya udahan sekarang kita beneran masukin langsung user nih,
                      bahasa SQL nya kita mau INSERT user baru ya... pakai AR (ActiveRecord)




                      sayang:~/2/pawangsession arie$ script/runner 'User.create :login => "ariekeren",
                      :email =>
                      "ariekeren@...", :password => "ariejelek13",
                      :password_confirmation => "ar
                      iejelek13"; puts User.count; puts User.find(:all).to_yaml'
                      1
                      ---
                      - !ruby/object:User
                      attributes:
                      salt: 188aa1d3cc3d05481e290c5f8c5d3d0945fd532d
                      updated_at: 2007-07-14 11:07:11
                      crypted_password: d7ab2ba265021909ba3ac912e06757e1e0e6d234
                      remember_token_expires_at:
                      id: "1"
                      remember_token:
                      login: ariekeren
                      email: ariekeren@...
                      created_at: 2007-07-14 11:07:11
                      sayang:~/2/pawangsession arie$



                      lho lho... sudah masuk tuh.. kok tau sih? dari mana taunya? ya tau.. nyontek dari
                      name nya si input tag itu to. walah alasannya kokk gak keren, yang keren
                      sebetulnya ada di user.rb model itu sendiri.




                      validates_presence_of :login, :email
                      validates_presence_of :password, :if => :password_required?
                      validates_presence_of :password_confirmation, :if => :password_required?
                      validates_length_of :password, :within => 4..40, :if => :password_required?
                      validates_confirmation_of :password, :if => :password_required?
                      validates_length_of :login, :within => 3..40
                      validates_length_of :email, :within => 3..100
                      validates_uniqueness_of :login, :email, :case_sensitive => false
                      before_save :encrypt_password



                      tapi BTW itu tadi lognya belum diintip, kan katanya kebiasaan tukang ngintip, ya
                      udah kita pencet apple panah kanan buat ngintip log:




                      Processing AccountController#index (for 127.0.0.1 at 2007-07-14 09:06:09) [GET]
                      Session ID: 07ddc069a23ce6ed54fa593131464386
                      Parameters: {"action"=>"index", "controller"=>"account"}
                      SQL (0.001564) SELECT count(*) AS count_all FROM users
                      Redirected to http://localhost:3001/account/signup
                      Completed in 0.05840 (17 reqs/sec) | DB: 0.00156 (2%) | 302 Found
                      [http://localhost/account/index/]
                      User Load (0.001155) SELECT * FROM users WHERE (LOWER(users.login) =
                      'ariekeren') LIMIT 1
                      User Load (0.000596) SELECT * FROM users WHERE (LOWER(users.email) =
                      'ariekeren@...') LIMIT 1
                      SQL (0.021461) INSERT INTO users ("salt", "updated_at", "crypted_password",
                      "remember_token_expires_at", "remember_token", "login", "created_at", "email")
                      VALUES('188aa1d3cc3d05481e290c5f8c5d3d0945fd532d', '2007-07-14 11:07:11',
                      'd7ab2ba265021909ba3ac912e06757e1e0e6d234', NULL, NULL, 'ariekeren', '2007-07-14
                      11:07:11', 'ariekeren@...')
                      SQL (0.001606) SELECT count(*) AS count_all FROM users
                      User Load (0.005734) SELECT * FROM users




                      trus mau kemana? mana mana mau kemana????
                      hm, harus lanjut ya?
                      iya.


                      OK, coba URL di browser yang tadi ganti dengan ini :
                      http://localhost:3001/account/index

                      eit, udah langsung nampilkan halaman index aja tuh. wah kenapa?
                      harus bisa dijawab itu! hayo dijawab.

                      coba sekarang logout deh.


                      # update, hari minggu, 15 Juli 2007

                      antisipasi kelamaan diconfirm adit, ini gw kasih sekarang aja
                      # heheotan deui aing

                      kenapa langsung ditampilkan index nya? karna belum di before_filter!

                      coba sekarang controller account tambahin ini:




                      class AccountController < ApplicationController
                      before_filter :login_required, :except => [:signup, :login]

                      # say something nice, you goof! something sweet.
                      def index
                      redirect_to(:action => 'signup') unless logged_in? || User.count > 0
                      end



                      OK, coba sekarang direfresh di URL ini:

                      http://localhost:3001/account/index



                      fuh, liatin deh lognya ;-)



                      Processing AccountController#index (for 127.0.0.1 at 2007-07-15 19:57:37) [GET]
                      Session ID: 2b8340c0d255cc0cd805d40bd276746f
                      Parameters: {"action"=>"index", "controller"=>"account"}
                      Redirected to http://localhost:3001/account/login
                      Filter chain halted as
                      [#<ActionController::Filters::ClassMethods::SymbolFilter:0x352f028
                      @filter=:login_required>] returned false.
                      Completed in 0.00554 (180 reqs/sec) | 302 Found [http://localhost/account/index]


                      Processing AccountController#login (for 127.0.0.1 at 2007-07-15 19:57:38) [GET]
                      Session ID: 2b8340c0d255cc0cd805d40bd276746f
                      Parameters: {"action"=>"login", "controller"=>"account"}
                      Rendering account/login
                      Completed in 0.02853 (35 reqs/sec) | Rendering: 0.02566 (89%) | 200 OK
                      [http://localhost/account/login]



                      yup! sudah di redirect, user harus login dulu, baru boleh lihat-lihat index ;-)



                      Processing AccountController#login (for 127.0.0.1 at 2007-07-15 20:09:57) [POST]
                      Session ID: 2b8340c0d255cc0cd805d40bd276746f
                      Parameters: {"commit"=>"Log in", "action"=>"login", "controller"=>"account",
                      "login"=>"ariekeren", "password"=>"ariejelek13"}
                      User Load (0.002177) SELECT * FROM users WHERE (users."login" = 'ariekeren')
                      LIMIT 1
                      Redirected to http://localhost:3001/account/index
                      Completed in 0.08181 (12 reqs/sec) | DB: 0.00218 (2%) | 302 Found
                      [http://localhost/account/login]


                      Processing AccountController#index (for 127.0.0.1 at 2007-07-15 20:09:57) [GET]
                      Session ID: 2b8340c0d255cc0cd805d40bd276746f
                      Parameters: {"action"=>"index", "controller"=>"account"}
                      User Load (0.001919) SELECT * FROM users WHERE (users."id" = 1) LIMIT 1
                      Rendering account/index
                      Completed in 0.06655 (15 reqs/sec) | Rendering: 0.00511 (7%) | DB: 0.00192 (2%) |
                      200 OK [http://localhost/account/index]




                      ya, adit tanya lagi, itu dapat symbol :login_required makhluk darimana??? Nah, itu
                      metode punya'nya si mixin yang kita include di application.rb, ingat khan?

                      include AuthenticatedSystem

                      nah, adit tanya lagi, itu "class" AuthenticatedSystem kok bisa di include darimana
                      asalnya?

                      bagus, itu tempatnya di direktori lib, ya, di file authenticated_system.rb

                      Nah, kalau sudah dilihat filenya, woh itu bukan "class" tapi "module", ya iya lah,
                      kalau mixin pakai module. tanya lagi, lha jadi itu otomatis dari huruf kecil pakai
                      garis bawah berubah jadi huruf kapital pas di include? ya. karena? lihat sendiri
                      source railsnya ya.. kelamaan ini atuh / jadi panjang banget postingnya :-P

                      BTW balik lagi ke file di lib itu, itulah kenapa rick pernah bilang duluu banget
                      di milis rails kita juga sebetulnya bisa nghapus plugin AAA acts_as_authenticated,
                      karena itu tadi, sudah ada file yang disediakan di dir lib buat di include, kalau
                      mekanisme plugin lain biasanya kan ada juga yang musti tetap disono pluginnya.

                      kelihatan kan metode login_required nya ? ;-)




                      sebelum beranjak, eit.. itu tadi di textfield sih inputnya disembunyikan, tapi di
                      lognya keliatan, kalau dihack terus keliatan dong, nah makanya biar gak keliatan
                      pakai:

                      filter_parameter_logging :password



                      Processing AccountController#login (for 127.0.0.1 at 2007-07-15 20:28:22) [POST]
                      Session ID: de0ec74961a358461e4fd8c5855ad821
                      Parameters: {"commit"=>"Log in", "action"=>"login", "controller"=>"account",
                      "password"=>"[FILTERED]", "login"=>"ariekeren"}



                      ini lho, passwordnya sekarang difilter..



                      User Load (0.005737) SELECT * FROM users WHERE (users."login" = 'ariekeren')
                      LIMIT 1
                      Redirected to http://localhost:3001/account
                      Completed in 0.09381 (10 reqs/sec) | DB: 0.00574 (6%) | 302 Found
                      [http://localhost/account/login]


                      Processing AccountController#index (for 127.0.0.1 at 2007-07-15 20:28:23) [GET]
                      Session ID: de0ec74961a358461e4fd8c5855ad821
                      Parameters: {"action"=>"index", "controller"=>"account"}
                      User Load (0.002180) SELECT * FROM users WHERE (users."id" = 1) LIMIT 1
                      Rendering account/index
                      Completed in 0.07333 (13 reqs/sec) | Rendering: 0.00401 (5%) | DB: 0.00218 (2%) |
                      200 OK [http://localhost/account]




                      wah, ariekeren masih diprotes, itu tadi ditaroh dimana????

                      ini ni ini:




                      sayang:~/2/pawangsession arie$ cat app/controllers/application.rb
                      # Filters added to this controller apply to all controllers in the application.
                      # Likewise, all the methods added will be available for all controllers.

                      class ApplicationController < ActionController::Base
                      # Pick a unique cookie name to distinguish our session data from others'
                      session :session_key => '_pawangsession_session_id'

                      # Be sure to include AuthenticationSystem in Application Controller instead
                      include AuthenticatedSystem
                      # If you want "remember me" functionality, add this before_filter to
                      Application Controller
                      # before_filter :login_from_cookie

                      filter_parameter_logging "password"
                      end
                      sayang:~/2/pawangsession arie$




                      ya, sekarang kita lanjut, itu kan baru satu user. gimana kalau ada RBAC ? OK, buat
                      mempersingkat session kali ini, kita tentukan kalau loginnya ariekeren maka dia
                      admin (gak usah sampai jadi God ya ;-) ), yang bagus tentu yang lebih ++fleksibel
                      daripada ini.




                      kalau selain ariekeren, berarti bukan admin, yaa anggap aja selir begitu. OK? Kita
                      bikin dulu data pura-pura nya ya.




                      sayang:~/2/pawangsession arie$ script/runner "%w(vera siti merlyn cinta
                      azumi).each { |e| Use
                      r.create :login => e, :email => %Q~#{e}@...~, :password => %Q~#{e}13~,
                      :password_confir
                      mation => %Q~#{e}13~ }; puts User.count; puts User.find(:all).to_yaml"
                      6
                      ---
                      - !ruby/object:User
                      attributes:
                      salt: 188aa1d3cc3d05481e290c5f8c5d3d0945fd532d
                      updated_at: 2007-07-15 20:27:54
                      crypted_password: d7ab2ba265021909ba3ac912e06757e1e0e6d234
                      remember_token_expires_at:
                      id: "1"
                      remember_token:
                      login: ariekeren
                      email: ariekeren@...
                      created_at: 2007-07-14 11:07:11
                      - !ruby/object:User
                      attributes:
                      salt: a512c3934c73fbc1f937f16954d5a44c9bf1c215
                      updated_at: 2007-07-15 20:45:19
                      crypted_password: 4b7f9a652abcbf00dcbf7d0f2fa75368988a7a8f
                      remember_token_expires_at:
                      id: "2"
                      remember_token:
                      login: vera
                      email: vera@...
                      created_at: 2007-07-15 20:45:19
                      - !ruby/object:User
                      attributes:
                      salt: 06274722a8087492231521144df46db8bfc25443
                      updated_at: 2007-07-15 20:45:19
                      crypted_password: f129d636c335021af7405c9a6b9ec80c2840407c
                      remember_token_expires_at:
                      id: "3"
                      remember_token:
                      login: siti
                      email: siti@...
                      created_at: 2007-07-15 20:45:19
                      - !ruby/object:User
                      attributes:
                      salt: 6987cc743729a710f81cccc73b8718d45310b97a
                      updated_at: 2007-07-15 20:45:19
                      crypted_password: 33a7553759622c6666e57a83e0c996b4adeeb162
                      remember_token_expires_at:
                      id: "4"
                      remember_token:
                      login: merlyn
                      email: merlyn@...
                      created_at: 2007-07-15 20:45:19
                      - !ruby/object:User
                      attributes:
                      salt: 8b1b25f9aa21d0fde3859e45ea14bba6d87a685d
                      updated_at: 2007-07-15 20:45:19
                      crypted_password: e1acb06d76340bfe967402a1ad5562585cb465b8
                      remember_token_expires_at:
                      id: "5"
                      remember_token:
                      login: cinta
                      email: cinta@...
                      created_at: 2007-07-15 20:45:19
                      - !ruby/object:User
                      attributes:
                      salt: f86d605e7bd57a76ccef7ffe1879df63cd085d19
                      updated_at: 2007-07-15 20:45:19
                      crypted_password: 83a7919e14f89bcd097163b41109b457c0b389bc
                      remember_token_expires_at:
                      id: "6"
                      remember_token:
                      login: azumi
                      email: azumi@...
                      created_at: 2007-07-15 20:45:19
                      sayang:~/2/pawangsession arie$




                      nah, sekarang user totalnya sudah jadi 6 biji user ups record.

                      Codes below would be Bad smell ;-)




                      sayang:~/2/pawangsession arie$ cat app/views/account/index.rhtml
                      iya sayang sudah masuk..
                      <br />
                      <%= 'cuma admin yg boleh lihat ini' if current_user.login == 'ariekeren' %>
                      sayang:~/2/pawangsession arie$



                      di bawah ini juga masih bau ;-)




                      sayang:~/2/pawangsession arie$ cat app/views/account/index.rhtml
                      iya sayang sudah masuk..
                      <br />
                      <%= 'cuma admin yg boleh lihat ini' if admin?(current_user.login) %>




                      sayang:~/2/pawangsession arie$ cat app/helpers/application_helper.rb
                      # Methods added to this helper will be available to all templates in the application.
                      module ApplicationHelper

                      def admin?(user)
                      user == 'ariekeren'
                      end
                      end
                      sayang:~/2/pawangsession arie$




                      arghghgh adit masih belum puas tentunya, pingin yang pakai yield!
                      OK, OK, karena diiming-imingi makanan super lezat sedunia-akhirat maka gw copy
                      paste coding di helper berikut ini, silakan diprotes untuk yang tidak setuju :-D




                      sayang:~/2/pawangsession arie$ cat app/helpers/application_helper.rb
                      # Methods added to this helper will be available to all templates in the application.
                      module ApplicationHelper

                      def admin?(user)
                      user == 'ariekeren'
                      end

                      def admin_content(&block)
                      yield if @current_user.login == 'ariekeren'
                      end

                      end
                      sayang:~/2/pawangsession arie$



                      yang di view,




                      sayang:~/2/pawangsession arie$ cat app/views/account/index.rhtml
                      iya sayang sudah masuk..
                      <br />
                      <%= 'cuma admin yg boleh lihat ini' if admin?(current_user.login) %>

                      <% admin_content do |e| -%>
                      <%= content_tag :strong, e %><br />
                      cuma admin yg boleh lihat ini
                      <% end %>
                      sayang:~/2/pawangsession arie$




                      yak, silakan di tes, di improve, hayo coding3x...




                      #####################################

                      tapi ada lagi yang masih protes, itu kan yang selama ini kalau arie bilang coding
                      manja, udah disediakan... gimana kalau session nya bikin sendiri! gak usah pakai
                      plugin plugin - an.

                      Nah bagus kalau ada yang komen gitu. Coba bongkar2x itu toombila si Niwatori,
                      pasti ngikuti jalan berpikirnya mudah ttg session ini. ;-)

                      Jadi selamat menjabat sebagai pawang session.- Merdeka!


                      ############

                      secercah codes toombila, moshiwake arimasen, niwatori ;-)

                      sayang:~/2 arie$ cd toombila/
                      sayang:~/2/toombila arie$ ls
                      COPYING MAINTAINER TODO config/ lib/ script/ vendor/
                      ChangeLog README app/ db/ log/ test/
                      GPL Rakefile components/ doc/ public/ tmp/
                      sayang:~/2/toombila arie$ svn info
                      Path: .
                      URL: svn+ssh://ariekusuma@.../var/svn/toombila/trunk
                      Repository Root: svn+ssh://ariekusuma@.../var/svn/toombila
                      Repository UUID: ceb0740c-32dd-4bc6-ba5b-8021fa1d6934
                      Revision: 26
                      Node Kind: directory
                      Schedule: normal
                      Last Changed Author: ariekusuma
                      Last Changed Rev: 26
                      Last Changed Date: 2007-04-09 17:49:36 +0700 (Mon, 09 Apr 2007)

                      sayang:~/2/toombila arie$ cat app/controllers/application.rb
                      class ApplicationController < ActionController::Base
                      before_filter :set_user

                      #########
                      protected
                      #########

                      def set_user
                      @user = User.find(session[:id]) if @...? && session[:id]
                      # temporary redundant assignment, use this for alias session[:id]
                      @current_user = @user
                      end

                      def login_required
                      return true if @user
                      access_denied
                      return false
                      end


                      --
                      r9 = { nama: Arie, nick: ariekeren, ym!: riyari3,
                      blog: http://ariekusumaatmaja.wordpress.com,
                      myst: http://groups.yahoo.com/groups/id-ruby,
                      vilr: %Q~
                      function! WhitePearl()
                      perl << EOF
                      VIM::Msg("pearls are nice for necklaces");
                      VIM::Msg("rubys for rings");
                      VIM::Msg("pythons for bags");
                      VIM::Msg("tcls????");
                      EOF
                      endfunction
                      ~ }
                    • Arie Kusuma Atmaja
                      ... teman-teman yang suka sama rails ada analisa kenapa railers sering suka meninggalkan kebiasaan default suatu field nya NULL ? apakah karna terlalu dimanja
                      Message 10 of 12 , Jul 16, 2007
                      • 0 Attachment
                        > sayang:~/2/pawangsession arie$ tail -f log/development.log
                        > SQL (0.012095) CREATE TABLE schema_info (version integer)
                        > SQL (0.003948) INSERT INTO schema_info (version) VALUES(0)
                        > SQL (0.000000) SQLite3::SQLException: table schema_info already exists:
                        > CREATE TABLE schema_info (version integer)
                        > SQL (0.001227) SELECT version FROM schema_info
                        > Migrating to CreateUsers (1)
                        > SQL (0.000000) SQLite3::SQLException: no such table: users: DROP
                        > TABLE users
                        > SQL (0.005717) CREATE TABLE users ("id" INTEGER PRIMARY KEY NOT
                        > NULL, "login"
                        > varchar(255) DEFAULT NULL, "email" varchar(255) DEFAULT NULL,
                        > "crypted_password"
                        > varchar(40) DEFAULT NULL, "salt" varchar(40) DEFAULT NULL, "created_at"
                        > datetime
                        > DEFAULT NULL, "updated_at" datetime DEFAULT NULL, "remember_token"
                        > varchar(255)
                        > DEFAULT NULL, "remember_token_expires_at" datetime DEFAULT NULL)
                        > SQL (0.008792) UPDATE schema_info SET version = 1
                        > SQL (0.001204) SELECT * FROM schema_info
                        > SQL (0.001887) SELECT name FROM sqlite_master WHERE type = 'table'
                        > SQL (0.000489) PRAGMA index_list(users)

                        teman-teman yang suka sama rails ada analisa kenapa railers sering suka
                        meninggalkan kebiasaan default suatu field nya NULL ?

                        apakah karna terlalu dimanja ORM ActiveRecord (AR) ? Bahkan tidak peduli MyISAM
                        kah InnoDB kah atau analisa/pertanyaan saya ini salah dan tidak relefan?
                        Go ahead, baby...

                        > filter_parameter_logging :password

                        analisa lagi, kenapa acts_as_authenticated tidak memberlakukan kelakuan ini
                        sebagai default saja? Coba, kenapa bahkan login saja dibebaskan bisa huruf besar
                        dan seterusnya! lihat patch saya di toombila ada regex tambahan tuh yang kasih si
                        onta, tapi belum dites seberapa aman... feel free to check out that.

                        > ya, sekarang kita lanjut, itu kan baru satu user. gimana kalau ada RBAC
                        > ? OK, buat
                        > mempersingkat session kali ini, kita tentukan kalau loginnya ariekeren
                        > maka dia
                        > admin (gak usah sampai jadi God ya ;-) ), yang bagus tentu yang lebih
                        > ++fleksibel
                        > daripada ini.

                        yang bagus adalah yang fleksibel yang bahkan tidak ditentukan siapakah siapa hak
                        akses level yang berlaku. mis. bisa dari:

                        God -> Admin -> User

                        bisa juga:

                        beda-beda lagi:

                        admin
                        reviewer
                        author

                        pertanyaan beratnya adalah bagaimana mendesain sefleksibel itu?? Coba ajukan
                        pemecahan masalah berupa codes nya ;-)

                        > <% admin_content do |e| -%>
                        > <%= content_tag :strong, e %><br />
                        > cuma admin yg boleh lihat ini
                        > <% end %>

                        ya, semoga aja ada banyak variasi gaya (coding) lagi dari teman2x disini,
                        wek, wek, wek,
                        duck-typing,
                        yield, yield, yield.

                        --
                        r9 = { nama: Arie, nick: ariekeren, ym!: riyari3,
                        blog: http://ariekusumaatmaja.wordpress.com,
                        myst: http://groups.yahoo.com/groups/id-ruby,
                        vilr: %Q~
                        function! WhitePearl()
                        perl << EOF
                        VIM::Msg("pearls are nice for necklaces");
                        VIM::Msg("rubys for rings");
                        VIM::Msg("pythons for bags");
                        VIM::Msg("tcls????");
                        EOF
                        endfunction
                        ~ }
                      Your message has been successfully submitted and would be delivered to recipients shortly.