Archive | Ruby on Rails RSS for this section

How to downgrade rails version on debian

If you want to downgrade rails (aka install an old version of rails) on debian first of all install rails gems. Execute next command as root:

apt-get install rubygems

Remove rails package of debian if it’s actually installed

apt-get remove rails

Now install rails by gems utility and force the right version. Example:

gem install -v=2.0.2 rails --include-dependencies

Now put gems bin folder on bash PATH. Edit /etc/bash.bashrc

export PATH=$PATH:/var/lib/gems/1.8/bin

Note: version of rubygems may be different, check your right PATH to gems bin folder

If all goes right now you can use your preferred rails version. Note, rails command from gems is little different between the script that debian package installs. Just check params: call rails command without params.

$ rails
Usage: /var/lib/gems/1.8/bin/rails /path/to/your/app [options]
Options:
-r, --ruby=path Path to the Ruby binary of your choice (otherwise scripts use env, dispatchers current path).
Default: /usr/bin/ruby1.8
-d, --database=name Preconfigure for selected database (options: mysql/oracle/postgresql/sqlite2/sqlite3).
Default: mysql
-f, --freeze Freeze Rails in vendor/rails from the gems generating the skeleton
Default: false
Rails Info:
-v, --version Show the Rails version number and quit.
-h, --help Show this help message and quit.
General Options:
-p, --pretend Run but do not make any changes.
--force Overwrite files that already exist.
-s, --skip Skip files that already exist.
-q, --quiet Suppress normal output.
-t, --backtrace Debugging: show backtrace on errors.
-c, --svn Modify files with subversion. (Note: svn must be in path)

That’s all folks! 🙂

Advertisements

Estendere Ruby con C

Capita a volte di aver bisogno di estendere Ruby con codice C.
I motivi principali riguardano le performance dell’applicativo e la comodità garantita da un linguaggio di basso livello come C.
Altre motivazioni possono riguardare la necessità di utilizzare con Ruby una libreria C non disponibile in Ruby.

Nel mio caso ho trovato estremamente utile, se non del tutto necessario, utilizzare C per eseguire operazioni di compressione/decompressione con l’algoritmo di Huffman, in special modo sentivo particolarmente la mancanza dei comodi puntatori C.

Dopo una breve ricerca ho trovato un buon tutorial in lingua inglese su rubyinside.com.
Seguendo il tutorial potrete compilare la vostra libreria in C e creare un modulo da utilizzare per estendere una classe Ruby.

Per completezza, ho trovato anche altri metodi per ottenere risultati similari, tra i quali Ruby Inline, Swig e DL. A mio parere però, nessuno di questi metodi ha la linearità e la semplicità del metodo offerto da `How to create a Ruby extension in C in under 5 minutes` di Peter Cooper.

A breve creerò un tutorial per questa utile funzionalità.

Ruby on Rails & Compressed Prototype

Hello! Today I’m wandering about a compressed version of prototype to use in my brand new ruby on rails application.
Initialy I didn’t understand why rails doesn’t provide a compressed version of prototype but after some googling I’ve found some usefull answers.

Concept is simply clear.

Why use a compressed/packed version of prototype if we can provide it to clients throught gzip compression with best results? There isn’t a valid reason.
So we need to provide a gzip compressed version of prototype.

Read More…

Rails è veloce, comodo, ma sarà anche sicuro?

Rails è sicuro? In quanti se lo saranno chiesto fino ad ora. Sicuramente la risposta è sì, ma come in ogni programma tutto dipende dallo sviluppatore. Php ad esempio di per se non implementa alcuna misura di sicurezza, ogni implementazione, dalla più piccola alla più complessa è richiesta direttamente all’utente.
Questo aspetto può comportare gravi rischi per chi non sa quello che fa, ma aiuta il professionista a concentrarsi a fondo sui dettagli, senza trascurare nulla.

Rails invece permette di creare sistemi di autenticazione e gestione dei permessi in tempi rapidissimi, con una velocità degna di una formula 1. Ma qual è lo scotto?

Read More…