Git status en tu prompt
Si queres visualizar en tu prompt el status de algun proyecto git inserta el siguiente codigo en el archivo .bashrc del home de tu usuario
Programador freelance
Si queres visualizar en tu prompt el status de algun proyecto git inserta el siguiente codigo en el archivo .bashrc del home de tu usuario
La creación de widgets en una aplicación es de mucho provecho ya que nos da numerosas ventajas como poder mostrar un conjunto de datos en cualquier sitio solo poniendo un codigo javascript.
Para este articulo vamos a tomar de ejemplo un codigo al estilo del.ic.ous
widget_controller.rb
class WidgetController < ApplicationController layout nil session :off before_filter :validate_api_key, :only => [:user_bookmarks] def user_bookmarks # Find bookmarks assigned to owner of the API key @bookmarks = Bookmark.find_by_user_id(@key.user_id, :order => 'created_at desc', :limit => 10) end protected def validate_api_key # Assuming we defined API_KEY_REGEX elsewhere return render(:text => 'Invalid API key.') unless params[:api_key] =~ API_KEY_REGEX # You may want to validate the key against your database and/or log the request return render(:text => 'Invalid API key.') if not @key = Key.find_by_hash(params[:api_key]) end end
Por razones de perfomance, podemos deshabilitar las sesiones del controlador y la renderizacion de los layout, ya que el usuario no esta visitando nuestro sitio fisicamente, por lo tanto no es necesario estas caracteristicas.
user_bookmarks.rhtml
(function(){
document.write('<div class="customCSSclass" id="appName-widget">');
<% @bookmarks.each do |bookmark| -%>
document.write('<a href="<%= bookmark.uri %>"><%=h bookmark.title %></a><br />')
<% end -%>
document.write('</div>') })()Lindo y simple, escribimos directamente en el DOM del objeto
Ahora solo nos queda armar la ruta en el route.rb
widget_routes.rb
map.connect '/widget/:action/:api_key', :controller => 'widget', :api_key => /.*/
ahora para embeber el widget en cualquier sitio tenemos que insertar el siguiente codigo javascript
<script type="text/javascript" src="http://yoursite.com/widget/user_bookmarks/A4923D2342JF"></script> <style type="text/css"> .customCSSclass a{text-decoration:none;} </style>
En este articulo vamos a explicar como instalar el fantastico modulo mod_rails que nos va a permitir correr aplicaciones rails en apache de una forma muy optima
1er Paso: instalación de ruby enterprise.
Primero vamos a instalar Ruby Enterprise Edition cómo recomiendan los chicos de passenger (mod_rails), también podemos usar el ruby convencional.
Para esto nos bajamos el .tar.gz con los sources y lo descomprimimos:
wget -c http://rubyforge.org/frs/download.php/51100/ruby-enterprise-1.8.6-20090201.tar.gz tar -xvzf ruby-enterprise-1.8.6-20090201.tar.gz -C /opt
Yo lo voy a instalar en /opt que es dónde se instalan los paquetes que no vienen con la distro entonces quedaría:
/opt/ruby-enterprise-1.8.6-20090201/
Instalamos las libs necesarias para compilar ruby EE:
apt-get install g++ zlib1g-dev libssl-dev build-essential libreadline5-dev libmysqlclient15-dev
ahora instalamos ruby
cd /opt/ruby-enterprise-1.8.6-20090201/ ./installer
en el caso que no funcione tratar con
./installer --no-tcmalloc
En la opcion que da para elegir el path de instalacion se puede poner:
/opt/ruby-enterprise o directamente hacer un link ln -s /opt/ruby-enterprise-1.8.6-20090201/ /opt/ruby-enterprise
Ahora tenemos que crear una serie de links simbólicos para que nos quede la versión de Ruby EE instalada correctamente en el sistema como default:
ln -fs /opt/ruby-enterprise/bin/gem /usr/bin/gem ln -fs /opt/ruby-enterprise/bin/irb /usr/bin/irb ln -fs /opt/ruby-enterprise/bin/rake /usr/bin/rake ln -fs /opt/ruby-enterprise/bin/rails /usr/bin/rails ln -fs /opt/ruby-enterprise/bin/ruby /usr/bin/ruby ln -fs /opt/ruby-enterprise/lib/ruby/ /usr/lib/ruby
2er Paso: instalación de mod_rails
Ya tenemos instalado Ruby EE entonces ahora vamos a instalar mod_rails.
bajamos los sources de passenger:
wget -c http://rubyforge.org/frs/download.php/48622/passenger-2.0.6.tar.gz tar -xvzf passenger-2.0.6.tar.gz -C /opt
Instalamos las lib necesarias para compilar:
apt-get install apache2-prefork-dev build-essential
Instalamos apache prefork:
apt-get install apache2-mpm-prefork
Ahora tenemos que instalar mod_rails:
cd /opt/passenger-2.0.6 ./bin/passenger-install-apache2-module
3er Paso: Configurar apache con modrails
Editamos el archivo /etc/apache2/mods-available/passenger.conf
y ponemos lo siguiente:
PassengerRoot /opt/passenger-2.0.6 PassengerRuby /opt/ruby-enterprise/bin/ruby
editamos el archivo /etc/apache2/mods-available/passenger.load
y ponemos lo siguiente:
LoadModule passenger_module /opt/passenger-2.0.6/ext/apache2/mod_passenger.so
luego tenemos que activar el modulo entonces ejecutamos el siguiente comando:
a2enmod passenger
Listo ahora lo único que tenemos que hacer cada vez que agregamos una app
es agregar un virtual host en apache.
Editamos el archivo /etc/apache2/sites-available/nueva_app.com
y ponemos lo siguiente:
ServerName nueva_app.com ServerAlias www.nueva_app.com DocumentRoot /var/www/apps/nueva_app.com/public RailsBaseURI / CustomLog /var/log/apache2/nueva_app.com.log "%h %l %u %t \"%r\" %>s %b"
Como pueden ver puse el archivo de log separado del lo general de apache.
luego de esto habilitamos el nuevo virtual host
a2ensite nueva_app.com habilitamos el modulo rewrite(importante! sin esto passenger no funciona) a2enmod rewrite
y reiniciamos apache:
/etc/init.d/apache2 reload
disfruten!
Una herramienta muy útil a la hora de programar en rails es la gema autospec o autotest, esta gema nos notifica todo el tiempo sobre el estado de los specs, que métodos faltan testear, etc..
Si somos linuxeros tenemos la posibilidad de configurar el sistema para que todos los mensajes del autospec se muestren como notificaciones en el escritorio.
Mumbles es un moderno plugin de notificaciones para el escritorio de gnome, muy similiar al growl de mac.
Debemos bajarlo e instalarlo segun la distribucion del inux que tengamos, la direccion es
http://www.mumbles-project.org/download/
Mumbles es un moderno plugin de notificaciones para el escritorio de gnome, muy similiar al growl de mac.
Debemos bajarlo e instalarlo segun la distribucion del inux que tengamos, la direccion es
http://www.mumbles-project.org/download/
Instalamos ZenTest
sudo gem install ZenTest
Luego corremos dentro del RAILS_ROOT el comando autotest
autotest
Editamos el archivo ~/.autotest con el siguiente contenido
module Autotest::Mumbles def self.mumbles title, msg system "mumbles-send "#{title}" "#{msg}"" end Autotest.add_hook :red do |at| errors = at.files_to_test.map { |k, v| "#{k}:n #{v.join("n ")}"}.join("nn") mumbles "TESTS FAILED", errors end Autotest.add_hook :green do |at| #res = at.results[/d+ tests.*$/] res = at.results.scan(/Finished.*failures/m).to_s.gsub(/e[32m/,'') mumbles "TESTS PASSED", res end end
y probamos!!!
Copyright © 2010 Chebyte’s Blog All rights reserved.