examples/primes/lib/drb_server/prime_helper.rb in royw-drbman-0.0.1 vs examples/primes/lib/drb_server/prime_helper.rb in royw-drbman-0.0.2

- old
+ new

@@ -1,34 +1,44 @@ require 'drb' -require 'log4r' +# A helper object for calculating primes using the Sieve of Eratosthenes +# +# == Usage +# ruby prime_helper.rb foo.example.com 1234 +# will run the service as: druby://foo.example.com:1234 +# +# ruby prime_helper.rb foo.example.com +# will run the service as: druby://foo.example.com:9000 +# +# ruby prime_helper.rb +# will run the service as: druby://localhost:9000 +# class PrimeHelper attr_accessor :name - def non_primes(ip, n) + + # Find the multiples of the give prime number that are less than the + # given maximum. + # @example + # multiples_of(5,20) => [10, 15] + # @param [Integer] prime the prime number to find the multiples of + # @param [Integer] maximum the maximum integer + # @return [Array<Integer>] the array of the prime multiples + def multiples_of(prime, maximum) a = [] - 2.upto((n - 1) / ip) { |i| a << (i * ip) } + 2.upto((maximum - 1) / prime) { |i| a << (i * prime) } a end + + # Stop the DRb service def stop_service DRb.stop_service end end -logger = Log4r::Logger.new('prime_helper') -logger.outputters = Log4r::FileOutputter.new(:console, :filename => File.join(File.dirname(__FILE__), '../prime_helper.log')) -Log4r::Outputter[:console].formatter = Log4r::PatternFormatter.new(:pattern => "%m") -logger.level = Log4r::INFO - machine = 'localhost' machine = ARGV[0] unless ARGV.length < 1 port = 9000 port = ARGV[1] unless ARGV.length < 2 -service = "druby://#{machine}:#{port}" -logger.info { "ARGV => #{ARGV.inspect}" } -logger.info { "machine => #{machine}" } -logger.info { "port => #{port}" } -logger.info { "drb service => #{service}" } server = PrimeHelper.new -server.name = service -DRb.start_service(service, server) +server.name = "druby://#{machine}:#{port}" +DRb.start_service(server.name, server) DRb.thread.join -logger.info { "finished" }