I cant start webrick

when i try to start webrick i get this message

./easyhtmlserver:12: syntax error, unexpected tASSOC, expecting kEND
        :Port => 80
                      ^
./easyhtmlserver:14: syntax error, unexpected tASSOC, expecting kEND
        :Port => 801
                      ^
./easyhtmlserver:11: warning: found = in conditional, should be ==
./easyhtmlserver:16: syntax error, unexpected tSYMBEG, expecting ')'
      :DocumentRoot => "/home/" + $home + "/easyhtml/" + $pro
       ^
./easyhtmlserver:17: syntax error, unexpected ')', expecting kEND
./easyhtmlserver:28: syntax error, unexpected $end, expecting kEND

this is my code

#!/usr/bin/env ruby

#require the libaries
require 'webrick'
include WEBrick

#make the class
class EasyHTMLServer
  def initalize
    s = HTTPServer.new(
      if $port = 80
        :Port => 80
      else
        :Port => 801
      end
      :DocumentRoot => "/home/" + $home + "/easyhtml/" + $pro
      )
  end
end

#declare the varibles
$home = ARGV[0]
$pro = ARGV[1]
$port = ARGV[2]

#load the server
EasyHTMLServer.new

···

--
Posted via http://www.ruby-forum.com/.

when i try to start webrick i get this message

./easyhtmlserver:12: syntax error, unexpected tASSOC, expecting kEND
       :Port => 80
                     ^
./easyhtmlserver:14: syntax error, unexpected tASSOC, expecting kEND
       :Port => 801
                     ^
./easyhtmlserver:11: warning: found = in conditional, should be ==
./easyhtmlserver:16: syntax error, unexpected tSYMBEG, expecting ')'
     :DocumentRoot => "/home/" + $home + "/easyhtml/" + $pro
      ^
./easyhtmlserver:17: syntax error, unexpected ')', expecting kEND
./easyhtmlserver:28: syntax error, unexpected $end, expecting kEND

This should work:

#make the class
class EasyHTMLServer
def initalize
   s = HTTPServer.new(
     (if $port = 80
       :Port => 80
     else
       :Port => 801
     end),
     :DocumentRoot => "/home/" + $home + "/easyhtml/" + $pro
     )
end
end

But that code is pretty nasty to look at.

Regards,
Ben

···

On Wed, Jul 8, 2009 at 9:41 PM, Alex Gore <gjgfuj@y7mail.com> wrote:

s = HTTPServer.new(:Port => $port == 80 ? 80 : 801, :DocumentRoot => 'etc...')

···

On Wednesday 08 July 2009 14:41:38 Alex Gore wrote:

when i try to start webrick i get this message

./easyhtmlserver:12: syntax error, unexpected tASSOC, expecting kEND

        :Port => 80

                      ^
./easyhtmlserver:14: syntax error, unexpected tASSOC, expecting kEND

        :Port => 801

                      ^
./easyhtmlserver:11: warning: found = in conditional, should be ==
./easyhtmlserver:16: syntax error, unexpected tSYMBEG, expecting ')'

      :DocumentRoot => "/home/" + $home + "/easyhtml/" + $pro

       ^
./easyhtmlserver:17: syntax error, unexpected ')', expecting kEND
./easyhtmlserver:28: syntax error, unexpected $end, expecting kEND

this is my code

#!/usr/bin/env ruby

#require the libaries
require 'webrick'
include WEBrick

#make the class
class EasyHTMLServer
  def initalize
    s = HTTPServer.new(
      if $port = 80

        :Port => 80

      else

        :Port => 801

      end

      :DocumentRoot => "/home/" + $home + "/easyhtml/" + $pro

      )
  end
end

#declare the varibles
$home = ARGV[0]
$pro = ARGV[1]
$port = ARGV[2]

#load the server
EasyHTMLServer.new

Sorry, ignore me. I just re-read the post and noticed the problems with with
hash arguments too. Not sure how you solve this.

···

On Wed, Jul 8, 2009 at 9:58 PM, Ben Lovell <benjamin.lovell@gmail.com>wrote:

On Wed, Jul 8, 2009 at 9:41 PM, Alex Gore <gjgfuj@y7mail.com> wrote:

when i try to start webrick i get this message

./easyhtmlserver:12: syntax error, unexpected tASSOC, expecting kEND
       :Port => 80
                     ^
./easyhtmlserver:14: syntax error, unexpected tASSOC, expecting kEND
       :Port => 801
                     ^
./easyhtmlserver:11: warning: found = in conditional, should be ==
./easyhtmlserver:16: syntax error, unexpected tSYMBEG, expecting ')'
     :DocumentRoot => "/home/" + $home + "/easyhtml/" + $pro
      ^
./easyhtmlserver:17: syntax error, unexpected ')', expecting kEND
./easyhtmlserver:28: syntax error, unexpected $end, expecting kEND

This should work:

spox wrote:

s = HTTPServer.new(:Port => $port == 80 ? 80 : 801, :DocumentRoot => 'etc...')

Yikes!

Are people really so adverse to creating simple methods that describe intent? (They also make testing easier :slight_smile: )

# Pick a name that makes sense if this is not a good one ...
def default_port default=801
  $port == 80 ? 80 : default
end

s = HTTPServer.new :Port => default_port, :DocumentRoot => 'etc...'

···

--
James Britt

www.jamesbritt.com - Playing with Better Toys
www.ruby-doc.org - Ruby Help & Documentation
www.rubystuff.com - The Ruby Store for Ruby Stuff
www.neurogami.com - Smart application development