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" }