Do Ruby ao Ruby on Rails em 3hs

Do Ruby ao Ruby on Rails em 3hs

Curso de Ruby on Rails ministrado na Jornada Acadêmica da FACIN (PUC-RS)

C5df370a883b65279af5a7ca94a5eed7?s=128

Jean Carlo Emer

September 25, 2014
Tweet

Transcript

  1. 3.
  2. 4.
  3. 7.

    O front-end é a marcação, aparência, acessibilidade, usabilidade e performance

    da sua aplicação em múltiplas plataformas Front-end
  4. 11.
  5. 12.
  6. 13.
  7. 14.

    1. Qualquer valor é um objeto 2. Objetos comunicam-se através

    de mensagens 3. Objetos mantém estado 4. Objetos são instâncias de uma classe 5. Classes são repositórios de operações Alan Kay (Smalltalk) considera fundamental em OOP: http://c2.com/cgi/wiki?AlanKaysDefinitionOfObjectOriented
  8. 15.

    OOP to me means only messaging, local retention and protection

    and hiding of state- process, and extreme late binding of all things. - Alan Kay
  9. 16.

    $ _

  10. 19.

    Numeric String Symbol Array Hash 1,  2,  3.1   'string'

      :symbol   [1,  'string']   {  key:  'value'  } Algumas Core Classes do Ruby
  11. 20.

    1  +  2
 =>  3   5  *  5  +

     2
 =>  27   'Ruby  '  +  '  on  '  +  '  Rails'
 =>  "Ruby    on    Rails"
  12. 21.

    [1,  3]  +  [2]   [1,  2]  -­‐  [2]  

    'I  like  Ruby  /  '  *  4
  13. 22.

    [1,  3]  +  [2]  
 =>  [1,  3,  2]  

    [1,  2]  -­‐  [2]
 =>  [1]   'I  like  Ruby  /  '  *  4
 =>  "I  like  Ruby  /  I  like  Ruby  /  I   like  Ruby  /  I  like  Ruby  /  "
  14. 23.

    A documentação das classes da linguagem é uma ótima referência

    http://www.ruby-doc.org/core-2.1.2/Array.html http://www.ruby-doc.org/core-2.1.2/String.html
  15. 34.
  16. 40.

    class  Task
    def  initialize(name)
        @name  =

     name
    end
 
    def  name
        @name
    end
 end
  17. 48.

    class  String
    def  hello
        "Hello,  #{self}"


       end
 end   "Jean".hello
 =>  "Hello,  Jean"
  18. 50.

    class  Task    def  initialize(name)          @name

     =  name      end            def  to_s          @name      end   end   ! puts  Task.new  "Clean  the  house"
  19. 51.

    class  Task      def  +(task)        

     @name  +=  "  and  #{task.name}"      end
 end   ! a  =  Task.new  "Clean  the  house"   b  =  Task.new  "Take  out  the  trash"   ! puts  a  +  b
  20. 52.

    class  Person      attr_accessor  :name,  :age   !  

     def  initialize(name,  age)          @name,  @age  =  name,  age      end   !    def  >(person)          age  >  person.age      end   end
  21. 53.
  22. 54.

    class  EventTask  <  Task      attr_reader  :hours   !

       def  initialize(name,  hours)          @name    =  name          @hours  =  hours      end   !    def  to_s          "#{hours.to_s}  ~  #{name}"      end   end
  23. 55.

    class  EventTask  <  Task      attr_reader  :time   !

       def  initialize(name,  time)          @name,  @time  =  name,  time      end   !    def  to_s          "#{time.to_s}  ~  #{name}"      end   end
  24. 56.
  25. 57.

    module  Status      def  done?        

     @done  ||  false      end   !    def  done!          @done  =  true      end   end
  26. 58.

    module  Status      def  done?        

     @done  ||  false      end   !    def  done!          @done  =  true      end   end
  27. 59.

    class  Issue      include  Status      attr_reader  :name

      !    def  initialize(name)          @name  =  name      end   end   ! class  Task      include  Status   end
  28. 60.

    issue  =  Issue.new('The  refrigerator  is  broken')   task    =

     Task.new('Fix  the  refrigerator')   ! issue.done!   puts  issue.done?   ! task.done!   puts  task.done?
  29. 64.

    class  Sample      def  method_missing(m,  *args,  &block)    

         "Method  '#{m}'  missing!"      end   end   ! puts  Sample.new.some_method
  30. 65.
  31. 67.

    HTMLForm.generate(STDOUT)  do      comment  "This  is  a  simple  HTML

     form"      form  name:  "registration",  action:  "/"  do          content  "Name:"          input  name:  "name"          content  "Address:"          textarea  name:  "address",  rows:  6,  cols:  40  do              "Please  enter  your  mailing  address  here"          end   !        button  do              "Submit"          end      end   end
  32. 68.

    =>  <!-­‐-­‐  This  is  a  simple  HTML  form  -­‐-­‐>  

    ! <form  name='registration'  action='http:// www.example.com/register.cgi'  method='GET'   enctype='application/x-­‐www-­‐form-­‐urlencoded'>      Name:      <input  name='name'  type='text'/>            Address:      <textarea  name='address'  rows='6'  cols='40'          Please  enter  your  mailing  address  here      </textarea>   !    <button  type='submit'>Submit</button>   </form>
  33. 69.

    A facilidade em criar DSLs em Ruby é um dos

    maiores poderes da linguagem
  34. 70.
  35. 71.
  36. 74.

    $ _

  37. 95.
  38. 96.

    Bundle constrói o mapa de dependências e mantém as gems

    adequadas para o funcionamento da aplicação
  39. 103.
  40. 108.