Recommend Me


Vendredi 4 avril 2008

Bivouac 0.2.1 et iUI’s Tent 0.0.2

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

Nouvelle version Pour Bivouac et son plugin iPhone/iPod Touch : iUI’s Tent… Essentiellement de la correction de bug, mais également la détection du user-agent dans iUI’s Tent avec possibilité de rediriger l’utilisateur vers une page “alternative” s’il n’utilise pas le bon device

• • •

Mercredi 2 avril 2008

Bivouac + iUI’s Tent = VIDAL iPhone

Classé dans : Camping, Projets, Ruby, bivouac, iPhone — greg @ 19:06
iphone-bivouac.png Lors de la sortie de la première version publique du VIDAL pour iPhone, j’avais prévu une sortie de la seconde version publique utilisant bivouac et iUI

Mon travail sur bivouac de ces derniers jours dernières nuits m’a permis de faire beaucoup d’améliorations, tant sur Bivouac-Core que sur les plugins, dont le fameux iUI’s Tent.

Si vous cliquez sur l’image à gauche, vous pourrez voir un petit screencast de la future version 1.0.2ß du VIDAL pour iPhone basée sur ce travail.

Côté technique, il faut savoir que grâce au helper iUI, l’application est extrêmement simple et le code réduit à sa plus simple expression. En effet, j’ai ajouté dans ce helper la possibilité de créer des listes enchainées avec une unique méthode : iphone_hash_to_list. Cette méthode prend en paramètre un arbre décrit dans un hashage et représentant l’enchainement des listes, les feuilles étant soit nulle (nil) soit de type String, correspondant alors à un lien vers une autre partie de l’application ou un autre site.

Voici un petit exemple de représentation :

@h = {
  "Entree 01" => {
    "Entree 11" => nil,
    "Entree 12" => "http://example.com"
  },
  "Entree 02" => "#an_other_panel"
}

Je connais bien bivouac me direz vous, mais il m’a fallu moins de 3 heures pour développer intégralement cette nouvelle version, sachant que la plus grosse partie de mon temps a été consommée par la récupération et la mise en place des données… Ainsi que la correction de quelques bugs dans Bivouac et iUI’s Tent ;)

Bon, maintenant je sais que mon chef va me sauter dessus demain matin vers 9h15…

• • •

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
• • •

Mercredi 30 janvier 2008

bivouac 0.1.3

Classé dans : Camping, Projets, Ruby, bivouac — greg @ 20:09

La version 0.1.3 de bivouac est disponible. Au programme, peu de choses. Quelques bugs corrigés, l’ajout du script console et la génération d’un Rakefile permettant de faire les migrations de la base et de purger la table des sessions.

$ rake db:migrate
(in /Users/greg/temp/toto)
– create_table(:sessions, {:force=>true})
   -> 0.2465s
– create_table("toto_schema_infos")
   -> 0.0023s
==  Toto::Models::CreateUser: migrating =======================================
– create_table(:toto_users)
   -> 0.0022s
==  Toto::Models::CreateUser: migrated (0.0024s) ==============================

$ ruby script/console
>> u = User.new( :fname => "Gregoire", :lname => "Lejeune" )
=> #<Toto::Models::User id: nil, fname: "Gregoire", lname: "Lejeune">
>> u.save
=> true
>> u = User.new( :fname => "Arthur", :lname => "Lejeune" )
=> #<Toto::Models::User id: nil, fname: "Arthur", lname: "Lejeune">
>> u.save
=> true
>> User.find( :all ).each do |u|
?>   puts "#{u.fname} #{u.lname} is user ##{u.id}"
>> end
Gregoire Lejeune is user #1
Arthur Lejeune is user #2
=> [#<Toto::Models::User id: 1, fname: "Gregoire", lname: "Lejeune">, #<Toto::Models::User id: 2, fname: "Arthur", lname: "Lejeune">]
>>

• • •

Jeudi 9 août 2007

Screencast Bivouac

Classé dans : Camping, Java, Projets, Ruby — greg @ 17:59

• • •

bivouac 0.0.5

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

La version 0.0.5 de bivouac est disponibles.

Cette nouvelle version corrige un léger bug au niveau de la génération des modèles. De plus un générateur “scaffold” a été ajouté :

ruby script/generate scaffold Something

Il y a un problème de synchronisation entre les serveurs RubyForge qui bloque le téléchargement des archives et les mises à jour via RubyGems. En attendant vous pouvez faire la mise à jour via mon site de développement :

gem install bivouac –source=http://forum.rubyfr.net

Je vous ajoute également une petite vidéo montrant comment utiliser le générateur “scaffold” :

La qualité n’étant pas géniale, vous pouvez également voir cette vidée ici.

• • •

Samedi 4 août 2007

bivouac 0.0.4

Classé dans : Camping, Projets, Ruby — greg @ 1:35

Encore

sudo gem update
• • •
« Page précédentePage suivante »
Powered by: WordPress • Template adapted from the Simple Green' Wench theme - RSS