Contador de palabras

Feo … ademas me atreveria a decir que el word count está mal porque
“perro” y “perró” no son la misma palabra.

Francesc

On Jan 24, 2008, at 3:35 PM, Andrés gutiérrez wrote:

expression
lib/test/string_extensions_test.rb:1: syntax error, unexpected
end
escribió:
Para testear el “string_extension.rb” has de hacer …

Este el esl archivo ===>string_extensions.rb
end
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
from /usr/local/lib/ruby/gems/1.8/gems/rails- 2.0.2/lib/

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

tema del UTF-8 mas o menos bien. Pero me gustaría terminar este hilo

Ok. gracias entendido. Solo una duda ¿donde se tiene que colocar
– fxn

[email protected]
http://lists.simplelogica.net/mailman/listinfo/ror-es


name. Francesc E. i Martí
voice. +34 678.681.603

Si, deberia ser así. De hecho es Ruby, no se llega a tocar nunca el
framework.

Francesc

On Jan 24, 2008, at 5:02 PM, Andrés gutiérrez wrote:

def word_count
class TestString < Test::Unit::TestCase
Saludos

En el direcctorio raiz de mi App===> path/raiz/de/mi/App/MiApp ruby
lib/test/string_extensions_test.rb:1: Invalid char `\200’ in
kCLASS, expecting $end

end

                      ^     from /usr/local/lib/ruby/ 

Como lo pruebo una vez que tengo el codigo donde dices???.

archivo (por ejemplo el que me sugire Francesc en este hilo)
– fxn

[email protected]


Ror-es mailing list
[email protected]
http://lists.simplelogica.net/mailman/listinfo/ror-es


name. Francesc E. i Martí
voice. +34 678.681.603

On Jan 24, 2008, at 2:21 PM, Andrés gutiérrez wrote:

Jajaja que misterio, y ni siquiera se queja de las mismas opciones de
regexp. Me parece que toca divide and conquer :-).

No te sigo, lo siento :frowning:

Que script/runner no sea capaz ni de ejecutar un script vacio quiere
decir que aqui hay algo roto en algun otro lugar. Posiblemente sera
algo que intervenga en el proceso de inicializacion como codigo en
environment.rb o cargado en environment.rb. Toca investigar.

Gracias Francesc

Saludos

El día 24/01/08, Francesc E. [email protected]
escribió:

Vale, antes de nada he vuelto a intentarlo. Aqui lo muestro por pasos.

1-Abro el terminal
2-voy a mi App:
yo:~/path/de/mi/App/rails2/blog web$ script/runner
//path/de/mi/App/rails2/blog/lib/string_extensions.rb

3-Esto es lo que me suelta cuando lo ejecuto:

/Users/web/Documents/SITES/RoR/App/rails2/blog/config/routes.rb:10:
warning:
don’t put space before argument parentheses
/usr/local/lib/ruby/gems/1.8/gems/rails-2.0.2/lib/commands/runner.rb:47:
(eval):1: compile error (SyntaxError)
(eval):1: unknown regexp option - t from
/usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in
eval' from /usr/local/lib/ruby/gems/1.8/gems/rails-2.0.2 /lib/commands/runner.rb:47 from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in gem_original_require’
from
/usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in
`require’
from script/runner:3

Y así es como lo hago:
Aquí te muestro mi environment.rb [1]

[1] Parked at Loopia

Si puedo hacer algo más no tienes más que decirlo. Todo sea por
aprender.

Un saludo

2008/1/25, Xavier N. [email protected]:

On Jan 25, 2008, at 9:53 AM, Andrés gutiérrez wrote:

warning: don’t put space before argument parentheses
from script/runner:3

Y así es como lo hago:
Aquí te muestro mi environment.rb [1]

[1] Parked at Loopia

Si puedo hacer algo más no tienes más que decirlo. Todo sea por
aprender.

Lo veo canonico, please pastiea lo que haya en config/initializers.

Es solo por ir viendo cosas, es bastante extraño que en tres
ejecuciones distintas de lo mismo obtengamos tres mensajes de error
distintos, ie, las opciones de regexp de las que se queja son
distintas!!!

La consola arranca a todos esto? Puedes ejecutar script/about sin que
de un error?

– fxn

Vale al enviar el mensaje me he dado cuenta de que tenía un espacio de
mas
en mi routes.rb. Aquí está el error con eso corregido:

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
/usr/local/lib/ruby/gems/1.8/gems/rails-2.0.2/lib/commands/runner.rb:47:
(eval):1: compile error (SyntaxError)
(eval):1: unknown regexp option - t from
/usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in
eval' from /usr/local/lib/ruby/gems/1.8/gems/rails-2.0.2 /lib/commands/runner.rb:47 from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in gem_original_require’
from
/usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in
`require’
from script/runner:3
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
2008/1/25, Andrés gutiérrez [email protected]:

Esto es lo que hay en la carpeta initializers:

[1]Parked at Loopia

Esto es lo que me da al ejecutar script/about

script/about
About your application’s environment
Ruby version 1.8.6 (powerpc-darwin8.9.0)
RubyGems version 1.0.1
Rails version 2.0.2
Active Record version 2.0.2
Action Pack version 2.0.2
Active Resource version 2.0.2
Action Mailer version 2.0.2
Active Support version 2.0.2
Application root /path/de/mi/App/rails2/blog
Environment development
Database adapter mysql
Database schema version 2

El día 25/01/08, Xavier N. [email protected] escribió:

yo:~/la/ruta/a/mi/app/rails2/blog web$ script/runner
/la/ruta/buena/a/mi/archivo/en/mi/App/rails2/blog/lib/string_extensions.rb

Esto es lo que me suelta. Creo que ahora si que ha arancado. Pero dimelo
tu:

/usr/local/lib/ruby/gems/1.8/gems/rails-2.0.2/lib/commands/runner.rb:45:
(eval):1: compile error (SyntaxError)
(eval):1: syntax error, unexpected tIDENTIFIER, expecting ‘\n’ or ‘;’
class String

def word_count
frequency = Hash.new(0)
downcase.scan(/\w+/) { |word| frequency[word] += 1 }
return frequency
end

end

                                                                      ^

(eval):1: syntax error, unexpected tIDENTIFIER, expecting $end
class String

def word_count
frequency = Hash.new(0)
downcase.scan(/\w+/) { |word| frequency[word] += 1 }
return frequency
end

end

^ from
/usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in
eval' from /usr/local/lib/ruby/gems/1.8/gems/rails-2.0.2 /lib/commands/runner.rb:45 from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in gem_original_require’
from
/usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in
`require’
from script/runner:3

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Si la script/runner no funcionaba es porque a la ruta que hay que
pasarle la
faltaba la raiz ===>users/yo/…/hasta/mi/app

ya me dirás.

Gracias

2008/1/25, Xavier N. [email protected]:

On Jan 25, 2008, at 10:03 AM, Andrés gutiérrez wrote:

Rails version 2.0.2
Active Record version 2.0.2
Action Pack version 2.0.2
Active Resource version 2.0.2
Action Mailer version 2.0.2
Active Support version 2.0.2
Application root /path/de/mi/App/rails2/blog
Environment development
Database adapter mysql
Database schema version 2

Ahhhhhh, creo que entiendo lo que pasa.

Me apuesto una tapa de boquerones a que el path al archivo .rb no es
correcto. Si es asi script/runner cree que debe interpretar el
argumento como ha hecho toda la vida asumiendo que es codigo Ruby.
Como este tiene slashes el parser debe ver algun constructor de regexp
en algun lugar, que tiene a continuacion vete a saber que. Si esto es
asi la diferencia en los mensajes de error a posteriori querria decir
(seguramente, el parser deberia ser determinista para el mismo input
aunque este mal formado) que usabas paths distintos en las pruebas, y
cada uno de ellos era invalido.

– fxn

On Jan 25, 2008, at 10:39 AM, Andrés gutiérrez wrote:

def word_count
frequency = Hash.new(0)
downcase.scan(/\w+/) { |word| frequency[word] += 1 }
return frequency
end

end

No creo que pueda ayudar mucho mas ya, la situacion es que script/
runner interpreta scripts Ruby o cadenas de codigo y todo parece
normal. Creo que has de depurar el tema en local porque se tratara de
un error propio en algun lugar que por mail ya no vemos.

Sólo una aclaración:
¿me estás diciendo que script/runner funciona bien? por que es eso lo
que
mas me interesa.
lo del script (string_extensions.rb) no me interesa.
En resumen. ¿he aprendido a ejecutar un script/runner?

2008/1/25, Xavier N. [email protected]:

On Jan 25, 2008, at 11:13 AM, Andrés gutiérrez wrote:

Sólo una aclaración:
¿me estás diciendo que script/runner funciona bien? por que es eso
lo que mas me interesa.
lo del script (string_extensions.rb) no me interesa.
En resumen. ¿he aprendido a ejecutar un script/runner?

Habras aprendido en el momento en el que consigas una ejecucion
exitosa. Por ejemplo haz un hello world, ponlo en el directorio de
trabajo para no liarnos con paths, y ejecutalo con script/runner.

Vale creo que ahora si que me lo esta leyendo ya que lo he puesto en el
directorio de trabajo sin ningun path HELLO.rb esta directamente
dentro de [blog]:

yo:~/la/ruta/a/mi/app/rails2/blog yo$ script/runner hello.rb

/usr/local/lib/ruby/gems/1.8/gems/rails-2.0.2/lib/commands/runner.rb:45:
undefined local variable or method ' for main:Object (NameError) from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in eval’
from /usr/local/lib/ruby/gems/1.8/gems/rails-2.0.2
/lib/commands/runner.rb:45
from
/usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in
gem_original_require' from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in require’
from script/runner:3

Mirando el archivo afectado (runner.rb:45):

41 if code_or_file.nil?
42 $stderr.puts “Run ‘#{$0} -h’ for help.”
43 exit 1
44 elsif File.exist?(code_or_file)
45 eval(File.read(code_or_file))
46 else
47 eval(code_or_file)
48 end

Creo que si que entra a evaluar el archivo. Me da que algo me falta de
instalar. Hace una semana actualice las gemas y rails(otra gema) a la
2.0.2
No sé sólo es una teoría.

NOTA: Mi archivo hello.rb

The Greeter class

class Greeter
  def initialize(name)
    @name = name.capitalize
  end

  def salute
    puts "Hola #{@name}!"
  end
end
# Create a new object
g = Greeter.new("world")

# Output "Hello World!"
g.salute

Saludos

El día 25/01/08, Xavier N. [email protected] escribió:

A ver, ya es por amor propio. he estado leyendo la lista de cambios en
rails
2.0.2 [1]

Dice lo siguiente:

script/runner can run files, pass on arguments, and be used as a
shebang.
6286 [Tuxie, dlpond]

#!/usr/bin/env /path/to/my/app/script/runner

Example: just start using your models as if you are in

script/console
Product.find(:all).each { |product| product.check_inventory }

::::::::: A partir de esto me he dado cuenta que hay un archivo runner
en mi
App ::::

Esto es lo que hay en mi archivo runner dentro de la App

::::::::: Incio del archivo :::::::::::::

#!/usr/bin/env ruby
require File.dirname(FILE) + ‘/…/config/boot’
require ‘commands/runner’

::::::::: Fin del archivo :::::::::::::

Puede ser que rails necesite algo de ruby y no lo este consiguiendo y
por
eso no me funciona script/runner ??? (No sé, repito no sé casi nada)

[1]
http://api.rubyonrails.org/files/vendor/rails/railties/CHANGELOG.html

No sé…:frowning:

::::::::: Una duda mas :::::::::::::
Esta linea que aparece en el texto que he citado arriba:

#!/usr/bin/env /path/to/my/app/script/runner

Es un comentario más o [ #! ] tiene algún significado más?

Gracias y siento ser tan pesado, pero estas cosas me pasan porque nunca
he
programado.

Un saludo
El día 25/01/08, Andrés gutiérrez [email protected] escribió:

Perdón sigo pensando y afinando mi pregunta:
Este mi archivo runner en App/script/runner:

::::::::: runner.rb :::::::::::::
#!/usr/bin/env ruby
require File.dirname(FILE) + ‘/…/config/boot’
require ‘commands/runner’
::::::::: runner.rb :::::::::::::

la tercera linea dice que requiero runner.rb, pero de mi configuración
ruby
local.

LA PREGUNTA:
¿Cómo puedo saber si se esta “incluyendo o llamando” bien a este
archivo???

Como ya dije en un mensaje(antes) acabo de instalar Rails 2.0.2 y
dependencias

El día 25/01/08, Andrés gutiérrez [email protected] escribió:

Buenos dias, siento la tardanza y siento marearos con una tontería como
esta, pero es que acabo de probar lo que me ha dicho Xavier y hoy si
que parece que script/runner ha entrado en el archivo

::::::: foo.rb::::
puts"funciona!"
::::: fin de foo.rb :::::::

::::: lo que me da al ejecutar script/runner :::::::
script/runner foo.rb
/usr/local/lib/ruby/gems/1.8/gems/rails-2.0.2/lib/commands/runner.rb:45:
undefined method puts' for main:Object (NoMethodError) from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in eval’
from /usr/local/lib/ruby/gems/1.8/gems/rails-2.0.2
/lib/commands/runner.rb:45
from
/usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in
gem_original_require' from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in require’
from script/runner:3
::::::: Fin :::::::::

como puedes ver me dice en la primera linea: “undefined method `puts’
for
main:Object (NoMethodError)”

Parece que entra, no?

Por cierto esto si que me funciona:
::::::::::::::::: Esto se que me funciona ::::::
cat foo.rb
puts"funciona!"
::::::::::::::::: Esto se que me funciona ::::::
¿ QUÉ ES [CAT] ???

Gracias

El día 25/01/08, Xavier N. [email protected] escribió:

On Jan 25, 2008, at 2:05 PM, Andrés gutiérrez wrote:

configuración ruby local.

LA PREGUNTA:
¿Cómo puedo saber si se esta “incluyendo o llamando” bien a este
archivo???

Como ya dije en un mensaje(antes) acabo de instalar Rails 2.0.2 y
dependencias

No debes preocuparte. Ese es un archivo interno de Rails, si tienes
Rails tienes commands/runner.rb.

Esto es mas sencillo de lo que crees. A Ruby le puedes pasar un script
o una cadena con codigo (via el flag -e):

 ruby nombre_de_script
 ruby -e cadena_con_codigo

script/runner funciona igual, no hay mucha mas tela que esa. Por
motivos historicos script/runner no tiene el flag -e para cadenas (de
hecho se usa para explicitar un environment, vease script/runner -h),
recibe cualquier cosa como parametro en linea de comandos:

 script/runner nombre_de_script_o_cadena_con_codigo

script/runner determina si el argumento es un nombre de archivo a
cargar o cadena a interpretar mirandose a pelo si visto como nombre de
archivo da lugar a algo que existe. Si no, asume que es una cadena.

Escribe un hello world e interpretalo:

 $ cat foo.rb
 puts "funciona"
 $ script/runner foo.rb
 funciona

– fxn