Google Spreadsheet & Rails

Embed Size (px)

Text of Google Spreadsheet & Rails

  • Google Spreadsheet on Rails

    Jan Filipowski (Arkency)

    13 lipca 2010

    Jan Filipowski (Arkency) Google Spreadsheet on Rails

  • 5 Whys

    I zmiana wielu pl za jednym klikniciemI korzystanie z gotowych funkcji GSI przerzucenie UI do GSI ludzie lubi ExcelaI ...

    Jan Filipowski (Arkency) Google Spreadsheet on Rails

  • Przykad 1

    Zarzdzanie kolekcjami

    1. tworzymy worksheet ze wszystkimi obiektami

    2. tworzymy worksheet z obiektami kolekcji

    3. copy-paste tych obiektw, ktre chcemy w kolekcji

    4. zapisujemy

    5. importujemy do naszej appki

    Jan Filipowski (Arkency) Google Spreadsheet on Rails

  • Przykad 2

    Masowa edycja atrybutw

    1. tworzymy worksheet z obiektami kolekcji

    2. edytujemy wszystkie atrybuty, ktre chcemy

    3. zapisujemy

    4. importujemy do appki

    Jan Filipowski (Arkency) Google Spreadsheet on Rails

  • Gem

    google-spreadsheet-ruby (github)

    I autoryzacja login-haso lub OAuthI tworzenie spreadsheetI dostp do wszystkich worksheetw przez numerI dostp do pl - wierszami bd komrkamiI zapis na danie

    Jan Filipowski (Arkency) Google Spreadsheet on Rails

  • Samo micho

    s e s s i o n = G o o g l e S p r e a d s h e e t . l o g i n ( yashke , kaka )

    s p r e a d s h e e t = s e s s i o n . s p r e a d s h e e t b y k e y ( ew32das321 )

    ws = s p r e a d s h e e t . w o r k s h e e t s [ 0 ]ws . rows#=> [ [ xx , yy ] , [ bb , dd ] ]ws [ 2 , 1 ]#=> bb

    Jan Filipowski (Arkency) Google Spreadsheet on Rails

  • Rails Way

    model Spreadsheet

    I inicjalizacja poczeniaI metoda fill in do wypeniania worksheetwI metoda get ids do wczytywania kolekcjiI metoda get objects do wczytywania penych obiektw kolekcji

    Jan Filipowski (Arkency) Google Spreadsheet on Rails

  • fill in

    d e f f i l l i n ( ws name , c o l l e c t i o n , h e a d e r s )ws = g e t w o r k s h e e t ( ws name )h e a d e r s . e a c h w i t h i n d e x do | h e a d e r p a i r , i |

    ws [ 1 , i +1] = h e a d e r p a i r [ 1 ]endc o l l e c t i o n . e a c h w i t h i n d e x do | member , i n d e x |

    h e a d e r s . e a c h w i t h i n d e x do | h e a d e r p a i r , i |ws [ i n d e x + 2 , i +1] = member . send (

    h e a d e r p a i r [ 0 ] )end

    endws . s a v e

    end

    Jan Filipowski (Arkency) Google Spreadsheet on Rails

  • get ids

    d e f g e t i d s ( ws name )ws = g e t w o r k s h e e t ( ws name )ws . rows . map{ | x | x [ 0 ] }

    end

    Jan Filipowski (Arkency) Google Spreadsheet on Rails

  • get objects

    d e f g e t o b j e c t s ( ws name , k l a s s , s e t t e r s )ws = g e t w o r k s h e e t ( ws name )ws . rows . map do | row |

    o b j = k l a s s . f i n d ( row [ 0 ] )s e t t e r s . e a c h w i t h i n d e x do | s e t t e r , i n d e x |

    o b j . send ( s e t t e r . to sym , row [ i n d e x + 1 ] )endo b j

    endend

    Jan Filipowski (Arkency) Google Spreadsheet on Rails

  • Dzikuj

    Kontakttwitter: @janfilipowskiflaker: @januemail: jachuf@gmail.com

    Jan Filipowski (Arkency) Google Spreadsheet on Rails