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.