Undefined method `parse' for String:Class

Hi,

I use a script called : add_admin.rake
When i execute this : ‘rake -s -f Rakefile mailserv:add_admin --trace
i have this error :
** Invoke mailserv:add_admin (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute mailserv:add_admin
rake aborted!
undefined method parse' for String:Class /usr/local/lib/ruby/gems/1.8/gems/highline-1.6.9/lib/highline/question.rb:329:in convert’
/usr/local/lib/ruby/gems/1.8/gems/highline-1.6.9/lib/highline.rb:268:in
ask' /var/mailserv/admin/lib/tasks/add_admin.rake:36 /usr/local/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:205:in call’
/usr/local/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:205:in
execute' /usr/local/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:200:in each’
/usr/local/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:200:in
execute' /usr/local/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:158:in invoke_with_call_chain’
/usr/local/lib/ruby/1.8/monitor.rb:242:in synchronize' /usr/local/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:151:in invoke_with_call_chain’
/usr/local/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:144:in
invoke' /usr/local/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:116:in invoke_task’
/usr/local/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:94:in
top_level' /usr/local/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:94:in each’
/usr/local/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:94:in
top_level' /usr/local/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:133:in standard_exception_handling’
/usr/local/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:88:in
top_level' /usr/local/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:66:in run’
/usr/local/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:133:in
standard_exception_handling' /usr/local/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:63:in run’
/usr/local/lib/ruby/gems/1.8/gems/rake-0.9.2.2/bin/rake:33
/usr/local/bin/rake:19:in `load’
/usr/local/bin/rake:19
Tasks: TOP => mailserv:add_admin

Any idea ?

‘gem env’ give me :
RubyGems Environment:

  • RUBYGEMS VERSION: 1.8.10
  • RUBY VERSION: 1.8.7 (2011-12-28 patchlevel 357) [i386-openbsd]
  • INSTALLATION DIRECTORY: /usr/local/lib/ruby/gems/1.8
  • RUBY EXECUTABLE: /usr/local/bin/ruby18
  • EXECUTABLE DIRECTORY: /usr/local/bin
  • RUBYGEMS PLATFORMS:
    • ruby
    • x86-unknown
  • GEM PATHS:
    • /usr/local/lib/ruby/gems/1.8
    • /root/.gem/ruby/1.8
  • GEM CONFIGURATION:
    • :update_sources => true
    • :verbose => true
    • :benchmark => false
    • :backtrace => false
    • :bulk_threshold => 1000
  • REMOTE SOURCES:

‘gem list rails’ give me :
rails (3.1.3, 2.3.4)

the file add_admin.rake :
namespace :mailserv do
def ask_passwords
pass1 = ask("Password: ") do |q|
q.echo = “"
q.validate = /^.{6,31}$/
q.responses[:not_valid] = “Please use a stronger password (min 6
characters)”
end
pass2 = ask("Password Confirm: ") {|q| q.echo = "
” }
while pass1 != pass2
say “\nPasswords don’t match”
pass1 = ask("Password: ") do |q|
q.echo = “"
q.validate = /^.{6,31}$/
q.responses[:not_valid] = “Please use a stronger password (min 6
characters)”
end
pass2 = ask("Password Confirm: ") {|q| q.echo = "
” }
end
return pass1
end

Alias for add_admin

task :create_admin do
Rake::Task[‘mailserv:add_admin’].execute
end
desc “Create a new user.”
task :add_admin => :environment do
require ‘highline/import’
say “Add an Administrator to the system”
begin
begin
username = ask("username: ", String) do |q|
q.validate = /^([a-zA-Z0-9_-]+)$/
q.responses[:not_valid] = “Please use characters ‘a-z, A-Z,
0-9, _-’ only.”
end
email = ask("E-mail (used to send status updates - not needed):
")
password = ask_passwords
end while !agree("Is this correct? “, true)
admin = Admin.new(:username => username, :email => email,
:password => password)
unless admin.save
say “\n” + admin.errors.full_messages.join(”, ") + “\n\n”
end
end while !admin.errors.size.zero?
end
end

And my Rakefile:
require(File.join(File.dirname(FILE), ‘config’, ‘boot’))
require ‘rake’
require ‘rake/testtask’
require ‘rdoc/task’
require ‘thread’
require ‘tasks/rails’

Thank you very much for your help.

i find the solution update Highline using : gem install highline


Wesley MOUEDINE ASSABY