Hi Lukas, You definitely can, by adding some temporary debug puts calls interspersed in your method, and then calling your method either using ./script/runner or from within a ./script/console session.
To make that method easier to test, I'd relocate that method outside of ./app/controllers/application.rb and put it somewhere else, maybe something like ./app/models/remote_socket_server.rb. Possibly lame example, but: ###### add tmp debug calls to meth you want to test: $ cat ./app/models/remote_socket_server.rb class RemoteSocketServer HOST = .... PORT = .... def RemoteSocketServer.add_user(category, email) puts("add_user: category=#{category} email=#{email}") #DEBUG socket = TCPSocket.open(HOST, PORT) ... end ... end ###### start console and call the meth: $ ./script/console ... >> RemoteSocketServer.add_user("Stuff", "f...@bar.net") add_user: category=Stuff email=...@bar.net ... ###### or run the meth via runner: $ ./script/runner 'RemoteSocketServer.add_user("Stuff", "f...@bar.net")' add_user: category=Stuff email=...@bar.net ... Also note that instead of using puts to stdout, you could change those debug puts calls to use the environment's logger instead: ... ActionController::Base.logger.debug("add_user: category=#{category} email=#{email}") #DEBUG ... such that when that meth is called (via console, runner, or in the web app), you can just look at the env log: $ tail -100 ./log/development.log | grep "^add_user" add_user: category=Stuff email=...@bar.net ... Once you're done with your temp testing of the meth, just wipe out those debug puts/logger calls. Jeff On Feb 9, 9:59 am, lukas <lukas.zielin...@googlemail.com> wrote: > Marnen, > > thanks for your feedback. > Indeed, I'm a newbie ruby programer. I'll keep your advice in mind. > > I was just hoping I could run the method from the debugging console > and check the output directly. > > On Feb 8, 11:23 pm, Marnen Laibow-Koser <li...@ruby-forum.com> wrote: > > > > > lukas wrote: > > > Hello everyone, > > > > newbie question: > > > > I have a couple of methods that interact with a remote python server > > > in application.rb. > > > Is there a convenient way to debug them? e.g. run them from "ruby > > > script/console" - debug-console and see the return values? > > > Just set a breakpoint, run script/server -u, and play around in the > > debugger. > > > > Example-method: > > > > def addUserToServer?(category_name, useremail_address) > > > That should be add_user_to_server. camelCase is considered poor style > > in Ruby. > > > > socket = TCPSocket.open(host, port) > > > cmd = "COMMAND:adduser;;CAT:" + (category_name, > > > You know you've got mismatched parentheses, right? And string > > concatenation is more efficient with the "#{}" syntax. > > > > cmd += ";;EMAIL:" + useremail_address > > > socket.puts(cmd) > > > result = socket.rcv(1024) > > > socket.close() > > > You don't need empty parentheses when a function doesn't take arguments. > > Frankly, your code looks more like Java than Ruby. > > > > end > > > > I'd like to see contents of result f.ex. and then return true or false > > > accordingly. > > > > Rails is version 2.2.2 > > > > Any help on this or some other best practice to check those methods is > > > appreciated. > > > Test-first development will reduce the need for debugging. > > > > Lukas > > > Best, > > -- > > Marnen Laibow-Koserhttp://www.marnen.org > > mar...@marnen.org > > -- > > Posted viahttp://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-t...@googlegroups.com. To unsubscribe from this group, send email to rubyonrails-talk+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.