ratonga 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +4 -0
 - data/.rspec +2 -0
 - data/Gemfile +4 -0
 - data/README +0 -0
 - data/Rakefile +1 -0
 - data/lib/drb/patch.rb +49 -0
 - data/lib/ratonga.rb +63 -0
 - data/lib/ratonga/login.rb +31 -0
 - data/lib/ratonga/version.rb +3 -0
 - data/ratonga.gemspec +24 -0
 - data/spec/ratonga_login_spec.rb +14 -0
 - data/spec/ratonga_spec.rb +23 -0
 - metadata +70 -0
 
    
        data/.gitignore
    ADDED
    
    
    
        data/.rspec
    ADDED
    
    
    
        data/Gemfile
    ADDED
    
    
    
        data/README
    ADDED
    
    | 
         
            File without changes
         
     | 
    
        data/Rakefile
    ADDED
    
    | 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require "bundler/gem_tasks"
         
     | 
    
        data/lib/drb/patch.rb
    ADDED
    
    | 
         @@ -0,0 +1,49 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'drb'
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            module DRb
         
     | 
| 
      
 4 
     | 
    
         
            +
              class DRbServer
         
     | 
| 
      
 5 
     | 
    
         
            +
                alias :stop_service_orig :stop_service
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
                def stop_service
         
     | 
| 
      
 8 
     | 
    
         
            +
                  stop_service_orig
         
     | 
| 
      
 9 
     | 
    
         
            +
                  @grp.list.each {|t| t.raise Interrupt if t.status.eql? 'sleep'}
         
     | 
| 
      
 10 
     | 
    
         
            +
                end
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
                def main_loop
         
     | 
| 
      
 13 
     | 
    
         
            +
                  Thread.start(@protocol.accept) do |client|
         
     | 
| 
      
 14 
     | 
    
         
            +
                    @grp.add Thread.current
         
     | 
| 
      
 15 
     | 
    
         
            +
                    Thread.current['DRb'] = { 'client' => client ,
         
     | 
| 
      
 16 
     | 
    
         
            +
                                              'server' => self }
         
     | 
| 
      
 17 
     | 
    
         
            +
                    DRb.mutex.synchronize do
         
     | 
| 
      
 18 
     | 
    
         
            +
                      client_uri = client.uri
         
     | 
| 
      
 19 
     | 
    
         
            +
                      @exported_uri << client_uri unless @exported_uri.include?(client_uri)
         
     | 
| 
      
 20 
     | 
    
         
            +
                    end
         
     | 
| 
      
 21 
     | 
    
         
            +
                    loop do
         
     | 
| 
      
 22 
     | 
    
         
            +
                      begin
         
     | 
| 
      
 23 
     | 
    
         
            +
                        succ = false
         
     | 
| 
      
 24 
     | 
    
         
            +
                        invoke_method = InvokeMethod.new(self, client)
         
     | 
| 
      
 25 
     | 
    
         
            +
                        succ, result = invoke_method.perform
         
     | 
| 
      
 26 
     | 
    
         
            +
                        if !succ && verbose
         
     | 
| 
      
 27 
     | 
    
         
            +
                          p result
         
     | 
| 
      
 28 
     | 
    
         
            +
                          result.backtrace.each do |x|
         
     | 
| 
      
 29 
     | 
    
         
            +
                            puts x
         
     | 
| 
      
 30 
     | 
    
         
            +
                          end
         
     | 
| 
      
 31 
     | 
    
         
            +
                        end
         
     | 
| 
      
 32 
     | 
    
         
            +
                        client.send_reply(succ, result) rescue nil
         
     | 
| 
      
 33 
     | 
    
         
            +
                      ensure
         
     | 
| 
      
 34 
     | 
    
         
            +
                        client.close unless succ
         
     | 
| 
      
 35 
     | 
    
         
            +
                        if Thread.current['DRb']['stop_service']
         
     | 
| 
      
 36 
     | 
    
         
            +
                          Thread.new { stop_service }
         
     | 
| 
      
 37 
     | 
    
         
            +
                          client.close if client.alive?
         
     | 
| 
      
 38 
     | 
    
         
            +
                          break
         
     | 
| 
      
 39 
     | 
    
         
            +
                        end
         
     | 
| 
      
 40 
     | 
    
         
            +
                        break unless succ
         
     | 
| 
      
 41 
     | 
    
         
            +
                      end
         
     | 
| 
      
 42 
     | 
    
         
            +
                    end
         
     | 
| 
      
 43 
     | 
    
         
            +
                  end
         
     | 
| 
      
 44 
     | 
    
         
            +
                rescue Errno::EBADF
         
     | 
| 
      
 45 
     | 
    
         
            +
                  puts "Rescued from :#{$!}"
         
     | 
| 
      
 46 
     | 
    
         
            +
                end
         
     | 
| 
      
 47 
     | 
    
         
            +
              end
         
     | 
| 
      
 48 
     | 
    
         
            +
            end
         
     | 
| 
      
 49 
     | 
    
         
            +
             
     | 
    
        data/lib/ratonga.rb
    ADDED
    
    | 
         @@ -0,0 +1,63 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require "ratonga/version"
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'uri'
         
     | 
| 
      
 3 
     | 
    
         
            +
            require 'socket'
         
     | 
| 
      
 4 
     | 
    
         
            +
            require 'drb'
         
     | 
| 
      
 5 
     | 
    
         
            +
            require 'drb/patch'
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            module Ratonga
         
     | 
| 
      
 8 
     | 
    
         
            +
              module DRbService
         
     | 
| 
      
 9 
     | 
    
         
            +
                def uri
         
     | 
| 
      
 10 
     | 
    
         
            +
                  @service.uri
         
     | 
| 
      
 11 
     | 
    
         
            +
                end
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                def port
         
     | 
| 
      
 14 
     | 
    
         
            +
                  URI.parse(uri).port
         
     | 
| 
      
 15 
     | 
    
         
            +
                end
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
                private
         
     | 
| 
      
 18 
     | 
    
         
            +
                def start(port = nil)
         
     | 
| 
      
 19 
     | 
    
         
            +
                  if port.nil?
         
     | 
| 
      
 20 
     | 
    
         
            +
                    uri = nil
         
     | 
| 
      
 21 
     | 
    
         
            +
                  else
         
     | 
| 
      
 22 
     | 
    
         
            +
                    uri = "druby://#{Socket.gethostname}:#{port}"
         
     | 
| 
      
 23 
     | 
    
         
            +
                    if existing = DRb.fetch_server(uri)
         
     | 
| 
      
 24 
     | 
    
         
            +
                      puts "stops #{existing}"
         
     | 
| 
      
 25 
     | 
    
         
            +
                      existing.stop_service
         
     | 
| 
      
 26 
     | 
    
         
            +
                    end
         
     | 
| 
      
 27 
     | 
    
         
            +
                    raise if DRb.fetch_server(uri)
         
     | 
| 
      
 28 
     | 
    
         
            +
                  end
         
     | 
| 
      
 29 
     | 
    
         
            +
                  @service = DRb.start_service uri, self
         
     | 
| 
      
 30 
     | 
    
         
            +
                end
         
     | 
| 
      
 31 
     | 
    
         
            +
              end
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
              class Server
         
     | 
| 
      
 34 
     | 
    
         
            +
                include DRbService
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
                def initialize(port = 3931)
         
     | 
| 
      
 37 
     | 
    
         
            +
                  @clients = {}
         
     | 
| 
      
 38 
     | 
    
         
            +
                  start(port)
         
     | 
| 
      
 39 
     | 
    
         
            +
                end
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
                def register(userid, uri)
         
     | 
| 
      
 42 
     | 
    
         
            +
                  puts "register: #{DRb.current_server}"
         
     | 
| 
      
 43 
     | 
    
         
            +
                  @clients[userid] = {uri: uri}
         
     | 
| 
      
 44 
     | 
    
         
            +
                end
         
     | 
| 
      
 45 
     | 
    
         
            +
              end
         
     | 
| 
      
 46 
     | 
    
         
            +
             
     | 
| 
      
 47 
     | 
    
         
            +
              class Client
         
     | 
| 
      
 48 
     | 
    
         
            +
                include DRbService
         
     | 
| 
      
 49 
     | 
    
         
            +
             
     | 
| 
      
 50 
     | 
    
         
            +
                attr_reader :server, :userid
         
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
      
 52 
     | 
    
         
            +
                def initialize(userid = nil, port = nil)
         
     | 
| 
      
 53 
     | 
    
         
            +
                  @userid = userid
         
     | 
| 
      
 54 
     | 
    
         
            +
                  start(port)
         
     | 
| 
      
 55 
     | 
    
         
            +
                  connect
         
     | 
| 
      
 56 
     | 
    
         
            +
                end
         
     | 
| 
      
 57 
     | 
    
         
            +
             
     | 
| 
      
 58 
     | 
    
         
            +
                def connect(server_uri = 'druby://localhost:3931')
         
     | 
| 
      
 59 
     | 
    
         
            +
                  @server = DRbObject.new_with_uri server_uri
         
     | 
| 
      
 60 
     | 
    
         
            +
                  @server.register(userid, uri)
         
     | 
| 
      
 61 
     | 
    
         
            +
                end
         
     | 
| 
      
 62 
     | 
    
         
            +
              end
         
     | 
| 
      
 63 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,31 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module Ratonga
         
     | 
| 
      
 2 
     | 
    
         
            +
              module Login
         
     | 
| 
      
 3 
     | 
    
         
            +
                module Server
         
     | 
| 
      
 4 
     | 
    
         
            +
                  def login(userid, password)
         
     | 
| 
      
 5 
     | 
    
         
            +
                    puts "login: #{DRb.current_server}"
         
     | 
| 
      
 6 
     | 
    
         
            +
                    if @clients[userid].nil?
         
     | 
| 
      
 7 
     | 
    
         
            +
                      false
         
     | 
| 
      
 8 
     | 
    
         
            +
                    else
         
     | 
| 
      
 9 
     | 
    
         
            +
                      client = DRbObject.new_with_uri @clients[userid][:uri]
         
     | 
| 
      
 10 
     | 
    
         
            +
                      client.login(password)
         
     | 
| 
      
 11 
     | 
    
         
            +
                    end
         
     | 
| 
      
 12 
     | 
    
         
            +
                  end
         
     | 
| 
      
 13 
     | 
    
         
            +
                end
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                module Client
         
     | 
| 
      
 16 
     | 
    
         
            +
                  attr_writer :password
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
                  def login(password)
         
     | 
| 
      
 19 
     | 
    
         
            +
                    @password == password
         
     | 
| 
      
 20 
     | 
    
         
            +
                  end
         
     | 
| 
      
 21 
     | 
    
         
            +
                end
         
     | 
| 
      
 22 
     | 
    
         
            +
              end
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
              class Server
         
     | 
| 
      
 25 
     | 
    
         
            +
                include Login::Server
         
     | 
| 
      
 26 
     | 
    
         
            +
              end
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
              class Client
         
     | 
| 
      
 29 
     | 
    
         
            +
                include Login::Client
         
     | 
| 
      
 30 
     | 
    
         
            +
              end
         
     | 
| 
      
 31 
     | 
    
         
            +
            end
         
     | 
    
        data/ratonga.gemspec
    ADDED
    
    | 
         @@ -0,0 +1,24 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # -*- encoding: utf-8 -*-
         
     | 
| 
      
 2 
     | 
    
         
            +
            $:.push File.expand_path("../lib", __FILE__)
         
     | 
| 
      
 3 
     | 
    
         
            +
            require "ratonga/version"
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            Gem::Specification.new do |s|
         
     | 
| 
      
 6 
     | 
    
         
            +
              s.name        = "ratonga"
         
     | 
| 
      
 7 
     | 
    
         
            +
              s.version     = Ratonga::VERSION
         
     | 
| 
      
 8 
     | 
    
         
            +
              s.authors     = ["Chanik Yeon"]
         
     | 
| 
      
 9 
     | 
    
         
            +
              s.email       = ["chaniks@gmail.com"]
         
     | 
| 
      
 10 
     | 
    
         
            +
              s.homepage    = "https://github.com/chaniks/ratonga"
         
     | 
| 
      
 11 
     | 
    
         
            +
              s.summary     = %q{distributed client web service}
         
     | 
| 
      
 12 
     | 
    
         
            +
              s.description = %q{distributed client web service}
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
              s.rubyforge_project = "ratonga"
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
              s.files         = `git ls-files`.split("\n")
         
     | 
| 
      
 17 
     | 
    
         
            +
              s.test_files    = `git ls-files -- {test,spec,features}/*`.split("\n")
         
     | 
| 
      
 18 
     | 
    
         
            +
              s.executables   = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
         
     | 
| 
      
 19 
     | 
    
         
            +
              s.require_paths = ["lib"]
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
              # specify any dependencies here; for example:
         
     | 
| 
      
 22 
     | 
    
         
            +
              s.add_development_dependency "rspec", '~> 2.6'
         
     | 
| 
      
 23 
     | 
    
         
            +
              # s.add_runtime_dependency "rest-client"
         
     | 
| 
      
 24 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,14 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'ratonga'
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'ratonga/login'
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            describe Ratonga::Server do
         
     | 
| 
      
 5 
     | 
    
         
            +
              describe "#login" do
         
     | 
| 
      
 6 
     | 
    
         
            +
                it "should do something" do
         
     | 
| 
      
 7 
     | 
    
         
            +
                  puts "#{subject}"
         
     | 
| 
      
 8 
     | 
    
         
            +
                  sleep 1
         
     | 
| 
      
 9 
     | 
    
         
            +
                  client = Ratonga::Client.new('test');
         
     | 
| 
      
 10 
     | 
    
         
            +
                  client.password = 'test123'
         
     | 
| 
      
 11 
     | 
    
         
            +
                  subject.login('test', 'test123').should be_true
         
     | 
| 
      
 12 
     | 
    
         
            +
                end
         
     | 
| 
      
 13 
     | 
    
         
            +
              end
         
     | 
| 
      
 14 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,23 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'ratonga'
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            describe Ratonga::Server do
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
              its(:uri) { should be_a String }
         
     | 
| 
      
 6 
     | 
    
         
            +
              its(:uri) { should_not be_empty }
         
     | 
| 
      
 7 
     | 
    
         
            +
              its(:port) { should be 3931 }
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
              it "should start a drb service" do
         
     | 
| 
      
 10 
     | 
    
         
            +
                DRb.fetch_server(subject.uri).should_not be nil
         
     | 
| 
      
 11 
     | 
    
         
            +
              end
         
     | 
| 
      
 12 
     | 
    
         
            +
            end
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
            describe Ratonga::Client do
         
     | 
| 
      
 15 
     | 
    
         
            +
              its(:uri) { should be_a String }
         
     | 
| 
      
 16 
     | 
    
         
            +
              its(:uri) { should_not be_empty }
         
     | 
| 
      
 17 
     | 
    
         
            +
              its(:port) { should be_an Integer }
         
     | 
| 
      
 18 
     | 
    
         
            +
              its(:server) { should_not be nil }
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
              it "should start a drb service" do
         
     | 
| 
      
 21 
     | 
    
         
            +
                DRb.fetch_server(subject.uri).should_not be nil
         
     | 
| 
      
 22 
     | 
    
         
            +
              end
         
     | 
| 
      
 23 
     | 
    
         
            +
            end
         
     | 
    
        metadata
    ADDED
    
    | 
         @@ -0,0 +1,70 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            --- !ruby/object:Gem::Specification
         
     | 
| 
      
 2 
     | 
    
         
            +
            name: ratonga
         
     | 
| 
      
 3 
     | 
    
         
            +
            version: !ruby/object:Gem::Version
         
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.0.1
         
     | 
| 
      
 5 
     | 
    
         
            +
              prerelease: 
         
     | 
| 
      
 6 
     | 
    
         
            +
            platform: ruby
         
     | 
| 
      
 7 
     | 
    
         
            +
            authors:
         
     | 
| 
      
 8 
     | 
    
         
            +
            - Chanik Yeon
         
     | 
| 
      
 9 
     | 
    
         
            +
            autorequire: 
         
     | 
| 
      
 10 
     | 
    
         
            +
            bindir: bin
         
     | 
| 
      
 11 
     | 
    
         
            +
            cert_chain: []
         
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2011-08-29 00:00:00.000000000 Z
         
     | 
| 
      
 13 
     | 
    
         
            +
            dependencies:
         
     | 
| 
      
 14 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 15 
     | 
    
         
            +
              name: rspec
         
     | 
| 
      
 16 
     | 
    
         
            +
              requirement: &70247563162680 !ruby/object:Gem::Requirement
         
     | 
| 
      
 17 
     | 
    
         
            +
                none: false
         
     | 
| 
      
 18 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 19 
     | 
    
         
            +
                - - ~>
         
     | 
| 
      
 20 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 21 
     | 
    
         
            +
                    version: '2.6'
         
     | 
| 
      
 22 
     | 
    
         
            +
              type: :development
         
     | 
| 
      
 23 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 24 
     | 
    
         
            +
              version_requirements: *70247563162680
         
     | 
| 
      
 25 
     | 
    
         
            +
            description: distributed client web service
         
     | 
| 
      
 26 
     | 
    
         
            +
            email:
         
     | 
| 
      
 27 
     | 
    
         
            +
            - chaniks@gmail.com
         
     | 
| 
      
 28 
     | 
    
         
            +
            executables: []
         
     | 
| 
      
 29 
     | 
    
         
            +
            extensions: []
         
     | 
| 
      
 30 
     | 
    
         
            +
            extra_rdoc_files: []
         
     | 
| 
      
 31 
     | 
    
         
            +
            files:
         
     | 
| 
      
 32 
     | 
    
         
            +
            - .gitignore
         
     | 
| 
      
 33 
     | 
    
         
            +
            - .rspec
         
     | 
| 
      
 34 
     | 
    
         
            +
            - Gemfile
         
     | 
| 
      
 35 
     | 
    
         
            +
            - README
         
     | 
| 
      
 36 
     | 
    
         
            +
            - Rakefile
         
     | 
| 
      
 37 
     | 
    
         
            +
            - lib/drb/patch.rb
         
     | 
| 
      
 38 
     | 
    
         
            +
            - lib/ratonga.rb
         
     | 
| 
      
 39 
     | 
    
         
            +
            - lib/ratonga/login.rb
         
     | 
| 
      
 40 
     | 
    
         
            +
            - lib/ratonga/version.rb
         
     | 
| 
      
 41 
     | 
    
         
            +
            - ratonga.gemspec
         
     | 
| 
      
 42 
     | 
    
         
            +
            - spec/ratonga_login_spec.rb
         
     | 
| 
      
 43 
     | 
    
         
            +
            - spec/ratonga_spec.rb
         
     | 
| 
      
 44 
     | 
    
         
            +
            homepage: https://github.com/chaniks/ratonga
         
     | 
| 
      
 45 
     | 
    
         
            +
            licenses: []
         
     | 
| 
      
 46 
     | 
    
         
            +
            post_install_message: 
         
     | 
| 
      
 47 
     | 
    
         
            +
            rdoc_options: []
         
     | 
| 
      
 48 
     | 
    
         
            +
            require_paths:
         
     | 
| 
      
 49 
     | 
    
         
            +
            - lib
         
     | 
| 
      
 50 
     | 
    
         
            +
            required_ruby_version: !ruby/object:Gem::Requirement
         
     | 
| 
      
 51 
     | 
    
         
            +
              none: false
         
     | 
| 
      
 52 
     | 
    
         
            +
              requirements:
         
     | 
| 
      
 53 
     | 
    
         
            +
              - - ! '>='
         
     | 
| 
      
 54 
     | 
    
         
            +
                - !ruby/object:Gem::Version
         
     | 
| 
      
 55 
     | 
    
         
            +
                  version: '0'
         
     | 
| 
      
 56 
     | 
    
         
            +
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
      
 57 
     | 
    
         
            +
              none: false
         
     | 
| 
      
 58 
     | 
    
         
            +
              requirements:
         
     | 
| 
      
 59 
     | 
    
         
            +
              - - ! '>='
         
     | 
| 
      
 60 
     | 
    
         
            +
                - !ruby/object:Gem::Version
         
     | 
| 
      
 61 
     | 
    
         
            +
                  version: '0'
         
     | 
| 
      
 62 
     | 
    
         
            +
            requirements: []
         
     | 
| 
      
 63 
     | 
    
         
            +
            rubyforge_project: ratonga
         
     | 
| 
      
 64 
     | 
    
         
            +
            rubygems_version: 1.8.5
         
     | 
| 
      
 65 
     | 
    
         
            +
            signing_key: 
         
     | 
| 
      
 66 
     | 
    
         
            +
            specification_version: 3
         
     | 
| 
      
 67 
     | 
    
         
            +
            summary: distributed client web service
         
     | 
| 
      
 68 
     | 
    
         
            +
            test_files:
         
     | 
| 
      
 69 
     | 
    
         
            +
            - spec/ratonga_login_spec.rb
         
     | 
| 
      
 70 
     | 
    
         
            +
            - spec/ratonga_spec.rb
         
     |