Estoy probando el sistema NeoBux cualquiera que tenga ganas de ver si funciona (supuestamente te pagan por cada clic que realices), bueno les dejo el link por si les interesa
viernes, 30 de octubre de 2009
jueves, 23 de julio de 2009
Selenium ejemplo
Como instalar selenium en rails
ruby script/plugin install http://svn.openqa.org/svn/selenium-on-rails/selenium-on-rails
Una vez que esta instalado en nuestro proyecto debemos configurarlo, para eso debemos hacer lo siguiente copiamos el archivo que se encuentra en vendor/plugins/selenium-on-rails/ llamado config.yml.example a config/ y lo renombramos como selenium.yml. Luego lo editamos y para configurarlo seguimos los pasos que dice dentro del archivo.
Una vez que se termino de configurar, vamos a hacer un archivo de prueba, para ellos corremos el siguiente comando en la carpeta del proyecto ruby script/generate selenium login.rsel, esto nos genera una carpeta test/selenium en caso de que no exista y el archivo login.rsel, bien ahora que se puede hacer con el archivo
archivo login.rsel
setup
open "/" # => Abre el navegador en la url que se configuro en selenium.yml
assert_title "Titulo de la pagina" # => Hace el assert con respecto al titulo de la pagina
type "user_email", "usuario" # => Escribe en el input user_email el texto usuario
type "user_password", "pass" # => Escribe en el input user_password el texto pass
click "commit" # => Hace click en el commit
wait_for_page_to_load 20000 # => Espera a que se termine de cargar la pagina tiene un timeout de 20000ms
assert_title "Nuevo titulo de la pagina" # => Hace el assert con respecto al titulo de la pagina
miércoles, 22 de julio de 2009
Serializacion de elementos
Dentro de una pagina web nosotros podemos serializar algunos elementos (para hacer peticiones ajax o cualquier otra cosa que se nos ocurra).
Scriptaculus nos ofrece una manera sencilla de hacerlo, por ejemplo si queremos serializar un form Form.serialize('id_del_form'), tambien podemos serializar cualquier otro objeto que lo permita utilizando también Form.serialize('id_del_objeto') o directamente obteniendo el objeto por id y serializandolo $('id_del_objeto').serialize()
En rails esto nos sirve por ejemplo para utilizar el siguiente helper
observe_field("id_campo", :url => action_path, :update => "en caso de que quieras actualizar algo", :with => "$('objeto').serialize()")
Scriptaculus nos ofrece una manera sencilla de hacerlo, por ejemplo si queremos serializar un form Form.serialize('id_del_form'), tambien podemos serializar cualquier otro objeto que lo permita utilizando también Form.serialize('id_del_objeto') o directamente obteniendo el objeto por id y serializandolo $('id_del_objeto').serialize()
En rails esto nos sirve por ejemplo para utilizar el siguiente helper
observe_field("id_campo", :url => action_path, :update => "en caso de que quieras actualizar algo", :with => "$('objeto').serialize()")
jueves, 26 de marzo de 2009
Scroll con javascript y prototype
He escrito un script para hacer scroll con javascript, es muy sencillo de utilizar para ver ejemplos ir a la pagina http://www.assembla.com/wiki/show/dJVe6ogHur3Q7ceJe5aVNr, y para bajarlo o ver el codigo fuente ir a http://code.assembla.com/scroller/subversion/nodes
lunes, 9 de febrero de 2009
Ordenar array utilizando multiples elementos
Supongamos que tenemos un arreglo que tiene un objeto que tiene dos atributos llamados red_cards y yellow_cards (estos dos atributos son numericos), ahora lo que queremos hacer es ordenar el array primero por la cantidad de tarjetas rojas y luego por la cantidad de amarillas.
Lo podemos hacer de la siguiente manera:
array.sort! {|x, y| ((y.red_cards * 1000) + y.yellow_cards) <=> ((x.red_cards * 1000) + x.yellow_cards) }
Elegimos 1000 por que sabemos que nunca se va a tener ese numero de tarjetas.
Lo podemos hacer de la siguiente manera:
array.sort! {|x, y| ((y.red_cards * 1000) + y.yellow_cards) <=> ((x.red_cards * 1000) + x.yellow_cards) }
Elegimos 1000 por que sabemos que nunca se va a tener ese numero de tarjetas.
viernes, 30 de enero de 2009
Codigo para generar un fixture de futbol (muy eficiente)
Aca les dejo un codigo que sirve para generar un fixture de futbol, de la manera mas eficiente que he visto hasta el momento.
Para genrar un fixture lo que debes hacer es DeportFixture.new(lista de cuadros).groups eso te debuelve el fixture.
class DeportFixture
def initialize(elements)
@elements = elements
@elements << nil if elements.length.odd?
@round_number = @elements.length - 1
@rounds = Array.new(@round_number, nil)
@last_element = @elements[-1]
end
def groups
fixture = Array.new(@round_number, nil)
@round_number.times do |time|
@rounds[time] ||= []
if time == 0
(@elements.length / 2).times do |element_id|
@rounds[time] << @elements[element_id]
@rounds[time] << @elements[-(element_id+1)]
end
else
previous_round = @rounds[time-1].clone
first_element, second_element = previous_round[-1], @last_element
first_element, second_element = @last_element, previous_round[-1] if time.odd?
previous_round.delete(first_element)
previous_round.delete(second_element)
previous_round.compact!
@rounds[time] << first_element
@rounds[time] << second_element
new_round_elements = []
while not previous_round.empty?
elements = previous_round.slice!(-2,2)
elements.each {|element| new_round_elements << element}
end
new_round_elements.each {|element| @rounds[time] << element}
end
end
@rounds.each_with_index do |round, index|
fixture[index] = []
(round.length / 2).times do |team|
item_1 = round[(team * 2)]
item_2 = round[(team * 2) + 1]
fixture[index] << [item_1, item_2] unless item_1.nil? or item_2.nil?
end
end
fixture
end
end
Para genrar un fixture lo que debes hacer es DeportFixture.new(lista de cuadros).groups eso te debuelve el fixture.
class DeportFixture
def initialize(elements)
@elements = elements
@elements << nil if elements.length.odd?
@round_number = @elements.length - 1
@rounds = Array.new(@round_number, nil)
@last_element = @elements[-1]
end
def groups
fixture = Array.new(@round_number, nil)
@round_number.times do |time|
@rounds[time] ||= []
if time == 0
(@elements.length / 2).times do |element_id|
@rounds[time] << @elements[element_id]
@rounds[time] << @elements[-(element_id+1)]
end
else
previous_round = @rounds[time-1].clone
first_element, second_element = previous_round[-1], @last_element
first_element, second_element = @last_element, previous_round[-1] if time.odd?
previous_round.delete(first_element)
previous_round.delete(second_element)
previous_round.compact!
@rounds[time] << first_element
@rounds[time] << second_element
new_round_elements = []
while not previous_round.empty?
elements = previous_round.slice!(-2,2)
elements.each {|element| new_round_elements << element}
end
new_round_elements.each {|element| @rounds[time] << element}
end
end
@rounds.each_with_index do |round, index|
fixture[index] = []
(round.length / 2).times do |team|
item_1 = round[(team * 2)]
item_2 = round[(team * 2) + 1]
fixture[index] << [item_1, item_2] unless item_1.nil? or item_2.nil?
end
end
fixture
end
end
martes, 16 de diciembre de 2008
Nuevo plugin
He creado un nuevo plugin que nos ayudara a escribir codigo javascript mas claro en las vistas es bastante sencillo en realidad pero queria subirlo para los que escriben algo de codigo javascript en las vistas, la idea es utilzar el mismo helper que se utiliza en los rjs, bueno les dejo la direccion
Wiki:
http://www.assembla.com/wiki/show/view_javascript_helper
Svn:
http://subversion.assembla.com/svn/view_javascript_helper
Agile Web Development:
lunes, 15 de diciembre de 2008
Ajax
Cuando necesitamos hacer cosas con ajax, existe un helper que nos facilita ciertas cosas como por ejemplo si queremos actualizar el div de un elemento por ejemplo el div con id element_5 (siendo element el modelo) podemos utilizar el helper div_for o content_tag_for en el primero simplemente le pasamos el modelo y el nos genera automaticamente un div con el id y la clase asociados a nuestro modelo y el segundo ademas de ese parametro le tenemos que pasar el elemento que deseamos generar.
Ejemplo
@post = Post.find(3)
div_for @post do
# Contenido del div
end
luego cuando llamamos a la accion ajax acutalizamos el elemento con el id post_3 (para este ejemplo) , ya que la linea de arriba nos genera un div que tiene como id post_3 y como clase post
miércoles, 12 de noviembre de 2008
Como saber todas las rutas de un proyecto
Para conocer todas las rutas que estan definidas en el archivo de rutas y a que controller se dirige cada una basta con hacer lo siguiente:
Lo primero que debemos hacer es ir a la ruta de la aplicción en una ventana de comandos, y en ella escribimos
rake routes
Esto nos envia las rutas por pantalla, si las deseamos almacenar en un archivo
rake routes > "archivo.txt"
viernes, 7 de noviembre de 2008
Funciones de Strings
En este post voy a poner algunas de las funciones interesantes de los string en ruby
Dado un string
cadena = " Hola "
Para retornar el largo de una cadena
cadena.length o cadena.length() # retorna 6
Para retornar la cantidad de una letra x
cadena.count('o') # retorna 1
Para sacarle los espacios en blanco de la izquierda y derecha
cadena.strip # retorna la cadena sin los espacios en blanco en la
# izquierda y derecha
Para concatenarle elementos a un string
numero = 5
cadena_texto "hola"
"esta es la cadena #{cadena_texto} y este es el numero #{numero}"
# retorna la cadena "esta es la cadena hola y este es el numero 5"
Para repetir un string x veces
cadena * 5 # " Hola Hola Hola Hola Hola "
Como obtener una parte de un string
cadena[0..2] # " Ho"
Para dar vulta un string
cadena.reverse # " aloH "
Para hacer que un string quede todo en mayuscula
cadena.upcase # " HOLA "
Para hacer que quede todo en minuscula
cadena.downcase # " hola "
Para dejarlo en la forma camel
"hola_como_andas".camelize # "HolaComoAndas"
Para volver la cadena a como se encontraba antes
"HolaComoAndas".underscore # "hola_como_andas"
Para dejar una cadena con la forma de titulo
"hola esto es un titlo" # "Hola Esto Es Un Titulo"
"titlo-subtitulo" # "Titulo Subtitulo"
Para poner en plural una palabra (por defecto solo funciona en ingles, si queres que funcione en español hay que tocar el archivo inflections.rb)
"user".pluralize # "users"
Para poner en singular una palabra (por defecto solo funciona en ingles, si queres que funcione en español hay que tocar el archivo inflections.rb)
"users".singularize # "user"
Suscribirse a:
Entradas (Atom)