Recommend Me


Lundi 31 mars 2008

Oui… Ce soir !

Classé dans : Camping, Projets, Ruby, bivouac — greg @ 23:05

En effet, la version 0.2.0 de bivouac est disponible !

Pour fêter cela, je vous propose de voir comment créer une application pour iPhone avec le plugin iui_s_tent.

Commencez par créer une nouvelle application :

$ bivouac iui_test
        create /Users/greg/temp/iui_test
        …
        create /Users/greg/temp/iui_test/app/controllers/index.rb
$

Ajoutez ensuite le plugin iui_s_tent à votre nouvelle application :

$ cd iui_test
$ ruby script/plugin install iui_s_tent
A    iui_s_tent/LICENCE

A    iui_s_tent/README
Checked out revision 59.
$

Installez le plugin :

$ ake plugin:iui_s_tent:install
(in /Users/greg/temp/iui_test)
Install /Users/greg/temp/iui_test/public/images/backButton.png

Install /Users/greg/temp/iui_test/public/stylesheets/iui_extension.css
$

Vous avez maintenant deux nouveaux générateurs disponibles :

$ ruby script/generate -h
Usage: script/generate generator [options] [args]

Generators
  Builtin: controller, model, migration, view, test
  Plugins: iphone_view, iphone_controller

Commun options:
    -h, –help                    Show general help message
$

Nous allons donc créer un contrôleur pour iPhone :

$ uby script/generate iphone_controller test
        create /Users/greg/temp/iui_test/app/controllers/iphone_test.rb
        create /Users/greg/temp/iui_test/app/views/iphone_test.rb
$

Voici le code de la vue app/views/iphone_test.rb que nous obtenons :

  1. #
  2. #  Project IuiTest
  3. #
  4. #  Created using bivouac on Mon Mar 31 23:36:03 +0200 2008.
  5. #  Copyright (c) 2008 __My__. All rights reserved.
  6. #
  7.  
  8. module IuiTest::Views
  9.   def iphone_test
  10.     iphone( :title => "My iPhone App" ) do
  11.       navigation_bar( )
  12.       panel( :title => "Home", :selected => "true" ) do
  13.         span "See iUI’s Tent documentation…"
  14.       end
  15.     end
  16.   end
  17. end

Si vous démarrez tout de suite votre application, voici ce que vous devez obtenir :


iui_001.png

Nous allons modifier le code de la vue de façon à lui ajouter un texte un peu plus joli ainsi qu’un formulaire de recherche. Modifiez donc le code de app/views/iphone_test.rb comme ceci :

  1. #
  2. #  Project IuiTest
  3. #
  4. #  Created using bivouac on Mon Mar 31 23:36:03 +0200 2008.
  5. #  Copyright (c) 2008 __My__. All rights reserved.
  6. #
  7.  
  8. module IuiTest::Views
  9.   def iphone_test
  10.     iphone( ) do
  11.       navigation_bar( :search_form => "my_search_id" )
  12.  
  13.       panel( :selected => "true" ) do
  14.         h2 "My iPhone App"
  15.         ul {
  16.           li {
  17.             text "Version 1.0.0"; br
  18.             small "© 2008, Gregoire Lejeune"
  19.           }
  20.           li { label "I love bivouac!" }
  21.         }
  22.       end
  23.  
  24.       search_form( "Search User", R(Search), "my_search_id", :submit_label => "Ok" ) do
  25.         label "User"
  26.         input :id => "user", :type => "text", :name => "user"
  27.       end
  28.     end
  29.   end
  30. end

Notre formulaire de recherche envoie les données vers un nouveau contrôleur Search. Nous devons donc le créer. A la différence de tout à l’heure, nous allons demander à créer un contrôleur avec une vue vide en utilisant l’option -e ou –empty :

$ ruby script/generate iphone_controller -e search
        create /Users/greg/temp/iui_test/app/controllers/iphone_search.rb
        create /Users/greg/temp/iui_test/app/views/iphone_search.rb
$

Comme vous pouvez le constater, dans ce cas, la vue (views/iphone_search.rb) créée est bien vide :

  1. #
  2. #  Project IuiTest
  3. #
  4. #  Created using bivouac on Mon Mar 31 23:48:16 +0200 2008.
  5. #  Copyright (c) 2008 __My__. All rights reserved.
  6. #
  7.  
  8. module IuiTest::Views
  9.   def iphone_search
  10.     # …
  11.   end
  12. end

Avant de modifier cette vue, nous allons modifier son contrôleur de façon à récupérer le contenu du champ user du formulaire. Il suffit pour cela, simplement d’ajouter la ligne suivante dans controllers/iphone_search.rb :

  1. @search_term = input.user

Terminez en modifiant le code de la vue view/iphone_search.rb :

  1. #
  2. #  Project IuiTest
  3. #
  4. #  Created using bivouac on Mon Mar 31 23:48:16 +0200 2008.
  5. #  Copyright (c) 2008 __My__. All rights reserved.
  6. #
  7.  
  8. module IuiTest::Views
  9.   def iphone_search
  10.     list( :title => "Results", :selected => "true" ) do
  11.       item @search_term, :href => "#my_pan"
  12.       item @search_term, :href => "#my_pan"
  13.       item @search_term, :href => "#my_pan"
  14.       item @search_term, :href => "#my_pan"
  15.     end
  16.    
  17.     panel( :id => "my_pan", :title => "#{@search_term}" ) do
  18.       text "About #{@search_term}"
  19.     end
  20.   end
  21. end

Faite maintenant pointer votre iPhone ou votre iPod Touch sur l’adresse http://votreserveur:3301/iphone_test :


iui_002.png

Si vous cliquez sur le bouton Search en haut à droite, vous verrez apparaître le formulaire :


iui_003.png

Saisissez en texte quelconque en cliquez sur Ok. Vous arrivez sur une liste de résultats :


iui_004.png

En cliquant sur un résultat, vous arrivez sur un panel d’information :


iui_005.png

• • •

Bivouac 0.2.0 (bientôt)

Classé dans : Camping, Projets, Ruby, bivouac — greg @ 18:45

Je devrais très bientôt (ce soir ?) mettre à disposition la version 0.2.0 de bivouac.

Il s’agit d’une version majeur dans laquelle le générateur a été réécrit en grande partie. Ceci afin non seulement d’améliorer le code, mais également de permettre le support des générateurs dans les plugins. Je profite donc pour déplacer le générateur scaffold et le proposer comme nouveau plugin.

Le plugin iUI’s Tent, permettant de créer des applications pour iPhone, passe en version alpha-2. Il est encore loin d’être fonctionnel, mais donne déjà une bonne vision de ses futures possibilités.

La branche 0.2.x ouvre la voie vers la première version stable. En attendant, il reste pas mal de choses à faire :

  • Réorganisation de certaines classes de façon à faciliter la création de plugins.
  • Ajout du générateur mailer.
  • Support des WebServices.
  • Stabilisation des plugins iUI’s Tent et Scaffold’s Tent.
  • Modification du script plugin afin de support la récupération via http (en plus de svn)
  • Documentation…
• • •

Lundi 24 mars 2008

Bivouac 0.1.6

Classé dans : Camping, Projets, Ruby, Web, bivouac — greg @ 4:43

Les versions s’enchaînent… Dans celle-ci, j’ai supprimé tooltip pour le rétrograder au rang de plugin. Ceci est possible grâce au support des tâches rake dans les plugins.

Vous trouverez également dans le repository une pre-version du plugin iUI.

Pour utiliser le plugin tooltip :

$ bivouac test_tooltip
        create /Users/greg/temp/test_tooltip
        …
        create /Users/greg/temp/test_tooltip/app/controllers/index.rb

$ ruby script/plugin install tooltip
A    tooltip/LICENCE
A    tooltip/init.rb
A    tooltip/tasks
A    tooltip/tasks/tooltip.rake
A    tooltip/INSTALL
A    tooltip/lib
A    tooltip/lib/tooltip
A    tooltip/lib/tooltip/view_helpers.rb
A    tooltip/copy_on_install
A    tooltip/copy_on_install/public
A    tooltip/copy_on_install/public/javascripts
A    tooltip/copy_on_install/public/javascripts/tooltip.js
A    tooltip/README
Checked out revision 31.

$ rake plugin:tooltip:install
(in /Users/greg/temp/test_tooltip)
Install /Users/greg/temp/test_tooltip/public/javascripts/tooltip.js

$ ruby script/generate controller tooltip
        create /Users/greg/temp/test_tooltip/app/controllers/tooltip.rb
        create /Users/greg/temp/test_tooltip/app/views/tooltip.rb
        create /Users/greg/temp/test_tooltip/test/test_tooltip.rb

Puis, modifiez app/views/tooltip.rb comme ceci :

  1. module Ttt::Views
  2.   def testtt
  3.     html do
  4.       head do
  5.         javascript_include_tag :defaults
  6.         javascript_include_tag "tooltip"
  7.       end
  8.       body do
  9.         div( :id => "tooltip_me" ) do
  10.           "Hello World"
  11.         end
  12.         tooltip( "i_m_the_tooltip", "tooltip_me" ) do
  13.           "Content of the tooltip"
  14.         end
  15.       end
  16.     end
  17.   end
  18. end
• • •

Dimanche 23 mars 2008

Bivouac 0.1.5

Classé dans : Camping, Projets, Ruby, Web, bivouac — greg @ 21:41

La version 0.1.5 de bivouac est disponible. Au programme, le passage à la version 1.6.0.2 de prototype et à la version 1.8.1 de Script.aculo.us. J’en ai profité pour ajouter un nouveau helper sound. Voici un petit bout de code (directement inspiré des exemples de Script.aculo.us) que vous pourrez retrouver dans bivouac_sample :

module BivouacSample::Views
  def sound
    html do
      head do
        javascript_include_tag :defaults
      end
      body do
        h1 "Sound"
        a "play sound (parallel)", :href => "#", :onclick => play_sound_js( "sound/sword.mp3" ); br
        a "play sound (overwrite)", :href => "#", :onclick => play_sound_js( "sound/sword.mp3", :replace => true ); br
        a "Mute", :href => "#", :onclick => disable_sound_js
        a "Enable sounds", :href => "#", :onclick => enable_sound_js
      end
    end
  end
end
• • •

Jeudi 20 mars 2008

Bivouac 0.1.4 et Roo’s Tent 1.0.0

Classé dans : Projets, Ruby, Web, bivouac — greg @ 23:09

Je viens de mettre à disposition la version 0.1.4 de bivouac. Cette nouvelle version comprend les modifications suivantes :

  • Support de Thin, qui devient le serveur par défaut.
  • Ajout de la fonction image_path.
  • Ajout du script plugin permettant d’ajouter des plugins :
    ruby script/plugin <plugin_name>
  • Arrêt du support des applications ERB et JOF.
  • Correction de la classe Public pour le support de Thin.
  • Mise à jour de la page d’index.

Avec cette nouvelle version, j’en ai profité pour mettre (enfin) à jour le repository SVN sur RubyForge, utilisé pour récupérer les plugins.

Enfin, j’ajoute un nouveau plugin : Roo’s Tent. Ce plugin utilise Roo afin de vous permettre de présenter des feuilles de calcul dans vos applications. Par exemple, créez un fichier OpenOffice contenant ceci :

screen-capture.png

Créez ensuite une nouvelle application avec bivouac et installez le plugin roo_s_tent :

$ bivouac test_roo
        create /Users/greg/temp/test_roo
        …
        create /Users/greg/temp/test_roo/app/controllers/index.rb
$ cd test_roo
$ ruby script/plugin install roo_s_tent
A    roo_s_tent/LICENCE
A    roo_s_tent/init.rb
A    roo_s_tent/INSTALL
A    roo_s_tent/lib
A    roo_s_tent/lib/roo_s_tent
A    roo_s_tent/lib/roo_s_tent/view_helpers.rb
A    roo_s_tent/README
Checked out revision 16.
$

Créez ensuite un nouveau controller :

$ ruby script/generate controller sheet
        create /Users/greg/temp/test_roo/app/controllers/sheet.rb
        create /Users/greg/temp/test_roo/app/views/sheet.rb
        create /Users/greg/temp/test_roo/test/test_sheet.rb

Puis modifier test_roo/app/controllers/sheet.rb de la façon suivante :

  1. module TestRoo::Controllers
  2.   class Sheet < R ‘/sheet’
  3.     def get
  4.       @oo = Openoffice.new("/Users/greg/test_roo.ods")
  5.       render :sheet
  6.     end
  7.     def post
  8.       render :sheet
  9.     end
  10.   end
  11. end

Puis test_roo/app/views/sheet.rb :

  1. module TestRoo::Views
  2.   def sheet
  3.     h1.header { "Contenu de test_roo.ods [Feuille1]" }
  4.    
  5.     spreadsheet @oo, ["Feuille1"]
  6.   end
  7. end

Voici ce que vous obtiendrez dans votre navigateur préféré :

roo.png

That’s all folks !

• • •

Dimanche 9 mars 2008

SDK iPhone

Classé dans : Apple, iPhone — greg @ 17:07

Téléchargé… Installé… En cours de tests…

J’ai regardé du côté de Dashcode. En effet, cet outil offre maintenant la possibilité de développer des WebApps. Mais franchement je n’arrive pas à accrocher avec ce truc. J’y passerai un peu plus de temps, mais plus tard.

Du côté de Xcode… Tout est là. J’ai commencé un petit développement dans le cadre de mon (vrai) travail (professionnel je veux dire). Et je dois avouer que c’est (pour le moment) beaucoup plus simple que ce que je pensais pour la partie interface. Concernant la partie données, il faut que j’approfondisse un peu plus… En effet, mon employeur étant fournisseur d’une base de données médicamenteuses, il y a pas mal de données à stocker.

À suivre…

• • •

Eee PC

Classé dans : Linux, Ruby, Tout et rien — greg @ 16:53

Il est arrivé vendredi. Et depuis je l’ai exploré en long en large et en travers…

Première chose, bien qu’ayant seulement 512Mo de mémoire, j’ai été épaté par l’utilisation d’OpenOffice. J’ai terminé un article pour GLMF avec. Et à part un besoin d’adaptation à la taille du clavier, c’est idéal pour ce genre de travail.

Si vous craquez, pensez à modifier le source.list afin de pouvoir installer correctement Ruby, RDoc, GCC et autre afin de pouvoir développer correctement. J’ai également ajouté une carte de 4Go pour travailler. Attention cependant, si vous utilisez RubyInline, il ne faut pas oublier que, par défaut, le répertoire ~/.ruby_inline a tendance à se remplir rapidement… Pour ma part, j’ai positionné INLINEDIR de façon à ne pas charger le disque système.

Franchement, avec un clavier “Mac”, ça serait parfait ;)

• • •

Dimanche 2 mars 2008

Return to Dark Castel… La demo

Classé dans : Important, MacOSX, Tout et rien — greg @ 19:15

C’est ici

Pour la version finale, c’est very, VERY soon

• • •

Bivouac sous Windows

Classé dans : Projets, Ruby, bivouac — greg @ 19:10

Suite à une discussion sur le groupe rubyfr-public, j’ai profité de la présence d’un Windows à la maison pour regarder le problème de la gestion des processus sur cet OS, avec Ruby.

Les conséquences sont les suivantes : La prochaine version de Bivouac devrait fonctionner un peu mieux sous Windows. En fait il sera possible de démarrer une application Bivouac en tant que démon, à condition d’avoir installé win32-process. Cependant si le start fonctionne, ce n’est pas le cas du stop ;(

Je vais donc me pencher sur le code de simple-daemon afin de chercher (et trouver) une solution à ce problème.

• • •
Powered by: WordPress • Template adapted from the Simple Green' Wench theme - RSS