and-son 0.8.0 → 0.9.0
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/and-son.gemspec +2 -2
- data/lib/and-son/client.rb +5 -0
- data/lib/and-son/version.rb +1 -1
- data/test/support/test_server.rb +10 -2
- data/test/unit/client_tests.rb +9 -1
- metadata +13 -13
    
        data/and-son.gemspec
    CHANGED
    
    | @@ -18,7 +18,7 @@ Gem::Specification.new do |gem| | |
| 18 18 | 
             
              gem.test_files    = gem.files.grep(%r{^(test|spec|features)/})
         | 
| 19 19 | 
             
              gem.require_paths = ["lib"]
         | 
| 20 20 |  | 
| 21 | 
            -
              gem.add_dependency("sanford-protocol",  ["~> 0. | 
| 21 | 
            +
              gem.add_dependency("sanford-protocol",  ["~> 0.11"])
         | 
| 22 22 |  | 
| 23 | 
            -
              gem.add_development_dependency("assert", ["~> 2. | 
| 23 | 
            +
              gem.add_development_dependency("assert", ["~> 2.14"])
         | 
| 24 24 | 
             
            end
         | 
    
        data/lib/and-son/client.rb
    CHANGED
    
    | @@ -74,6 +74,11 @@ module AndSon | |
| 74 74 | 
             
                  params ||= {}
         | 
| 75 75 | 
             
                  callback_params = self.params_value.merge(params)
         | 
| 76 76 |  | 
| 77 | 
            +
                  # attempt to encode (and then throw away) the request, this will error on
         | 
| 78 | 
            +
                  # the developer if it can't encode the request
         | 
| 79 | 
            +
                  request = Sanford::Protocol::Request.new(name, params)
         | 
| 80 | 
            +
                  Sanford::Protocol.msg_body.encode(request.to_hash)
         | 
| 81 | 
            +
             | 
| 77 82 | 
             
                  response = self.responses.get(name, params)
         | 
| 78 83 | 
             
                  self.before_call_procs.each{ |p| p.call(name, callback_params, self) }
         | 
| 79 84 | 
             
                  self.calls << Call.new(name, params, response.protocol_response)
         | 
    
        data/lib/and-son/version.rb
    CHANGED
    
    
    
        data/test/support/test_server.rb
    CHANGED
    
    | @@ -55,10 +55,18 @@ class TestServer | |
| 55 55 | 
             
                    thread = Thread.new{ server.run }
         | 
| 56 56 | 
             
                    yield
         | 
| 57 57 | 
             
                  ensure
         | 
| 58 | 
            +
                    sockaddr = Socket.pack_sockaddr_in(
         | 
| 59 | 
            +
                      server.instance_variable_get("@port"),
         | 
| 60 | 
            +
                      '127.0.0.1'
         | 
| 61 | 
            +
                    )
         | 
| 62 | 
            +
                    socket = Socket.new(Socket::AF_INET, Socket::SOCK_STREAM, 0)
         | 
| 58 63 | 
             
                    begin
         | 
| 59 | 
            -
                       | 
| 60 | 
            -
                    rescue  | 
| 64 | 
            +
                      socket.connect_nonblock(sockaddr)
         | 
| 65 | 
            +
                    rescue Errno::EINPROGRESS # socket is in the process of connecting
         | 
| 66 | 
            +
                      IO.select(nil, [socket], nil, 1) # timeout after 1 second
         | 
| 67 | 
            +
                    rescue StandardError
         | 
| 61 68 | 
             
                    end
         | 
| 69 | 
            +
                    socket.close
         | 
| 62 70 | 
             
                    thread.join
         | 
| 63 71 | 
             
                  end
         | 
| 64 72 | 
             
                end
         | 
    
        data/test/unit/client_tests.rb
    CHANGED
    
    | @@ -126,6 +126,8 @@ module AndSon::Client | |
| 126 126 | 
             
                  @name = Factory.string
         | 
| 127 127 | 
             
                  @params = { Factory.string => Factory.string }
         | 
| 128 128 |  | 
| 129 | 
            +
                  Assert.stub(Sanford::Protocol.msg_body, :encode){ |r| @encoded_request = r }
         | 
| 130 | 
            +
             | 
| 129 131 | 
             
                  @client = AndSon::TestClient.new(@host, @port)
         | 
| 130 132 | 
             
                end
         | 
| 131 133 | 
             
                subject{ @client }
         | 
| @@ -147,7 +149,7 @@ module AndSon::Client | |
| 147 149 | 
             
                end
         | 
| 148 150 |  | 
| 149 151 | 
             
                should "know its call runner" do
         | 
| 150 | 
            -
                  subject
         | 
| 152 | 
            +
                  assert_equal subject, subject.call_runner
         | 
| 151 153 | 
             
                end
         | 
| 152 154 |  | 
| 153 155 | 
             
                should "store each call made in its `calls`" do
         | 
| @@ -174,6 +176,12 @@ module AndSon::Client | |
| 174 176 | 
             
                  assert_equal exp.protocol_response, yielded
         | 
| 175 177 | 
             
                end
         | 
| 176 178 |  | 
| 179 | 
            +
                should "build and encode a request when called" do
         | 
| 180 | 
            +
                  subject.call(@name, @params)
         | 
| 181 | 
            +
                  exp = Sanford::Protocol::Request.new(@name, @params).to_hash
         | 
| 182 | 
            +
                  assert_equal exp, @encoded_request
         | 
| 183 | 
            +
                end
         | 
| 184 | 
            +
             | 
| 177 185 | 
             
                should "run before call procs" do
         | 
| 178 186 | 
             
                  subject.params({ Factory.string => Factory.string })
         | 
| 179 187 | 
             
                  yielded_name    = nil
         | 
    
        metadata
    CHANGED
    
    | @@ -1,13 +1,13 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification 
         | 
| 2 2 | 
             
            name: and-son
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version 
         | 
| 4 | 
            -
              hash:  | 
| 4 | 
            +
              hash: 59
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
              segments: 
         | 
| 7 7 | 
             
              - 0
         | 
| 8 | 
            -
              -  | 
| 8 | 
            +
              - 9
         | 
| 9 9 | 
             
              - 0
         | 
| 10 | 
            -
              version: 0. | 
| 10 | 
            +
              version: 0.9.0
         | 
| 11 11 | 
             
            platform: ruby
         | 
| 12 12 | 
             
            authors: 
         | 
| 13 13 | 
             
            - Collin Redding
         | 
| @@ -16,7 +16,7 @@ autorequire: | |
| 16 16 | 
             
            bindir: bin
         | 
| 17 17 | 
             
            cert_chain: []
         | 
| 18 18 |  | 
| 19 | 
            -
            date:  | 
| 19 | 
            +
            date: 2015-06-22 00:00:00 Z
         | 
| 20 20 | 
             
            dependencies: 
         | 
| 21 21 | 
             
            - !ruby/object:Gem::Dependency 
         | 
| 22 22 | 
             
              requirement: &id001 !ruby/object:Gem::Requirement 
         | 
| @@ -24,14 +24,14 @@ dependencies: | |
| 24 24 | 
             
                requirements: 
         | 
| 25 25 | 
             
                - - ~>
         | 
| 26 26 | 
             
                  - !ruby/object:Gem::Version 
         | 
| 27 | 
            -
                    hash:  | 
| 27 | 
            +
                    hash: 29
         | 
| 28 28 | 
             
                    segments: 
         | 
| 29 29 | 
             
                    - 0
         | 
| 30 | 
            -
                    -  | 
| 31 | 
            -
                    version: "0. | 
| 32 | 
            -
              version_requirements: *id001
         | 
| 30 | 
            +
                    - 11
         | 
| 31 | 
            +
                    version: "0.11"
         | 
| 33 32 | 
             
              type: :runtime
         | 
| 34 33 | 
             
              name: sanford-protocol
         | 
| 34 | 
            +
              version_requirements: *id001
         | 
| 35 35 | 
             
              prerelease: false
         | 
| 36 36 | 
             
            - !ruby/object:Gem::Dependency 
         | 
| 37 37 | 
             
              requirement: &id002 !ruby/object:Gem::Requirement 
         | 
| @@ -39,14 +39,14 @@ dependencies: | |
| 39 39 | 
             
                requirements: 
         | 
| 40 40 | 
             
                - - ~>
         | 
| 41 41 | 
             
                  - !ruby/object:Gem::Version 
         | 
| 42 | 
            -
                    hash:  | 
| 42 | 
            +
                    hash: 31
         | 
| 43 43 | 
             
                    segments: 
         | 
| 44 44 | 
             
                    - 2
         | 
| 45 | 
            -
                    -  | 
| 46 | 
            -
                    version: "2. | 
| 47 | 
            -
              version_requirements: *id002
         | 
| 45 | 
            +
                    - 14
         | 
| 46 | 
            +
                    version: "2.14"
         | 
| 48 47 | 
             
              type: :development
         | 
| 49 48 | 
             
              name: assert
         | 
| 49 | 
            +
              version_requirements: *id002
         | 
| 50 50 | 
             
              prerelease: false
         | 
| 51 51 | 
             
            description: Simple Sanford client for Ruby.
         | 
| 52 52 | 
             
            email: 
         | 
| @@ -110,7 +110,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 110 110 | 
             
            requirements: []
         | 
| 111 111 |  | 
| 112 112 | 
             
            rubyforge_project: 
         | 
| 113 | 
            -
            rubygems_version: 1.8. | 
| 113 | 
            +
            rubygems_version: 1.8.25
         | 
| 114 114 | 
             
            signing_key: 
         | 
| 115 115 | 
             
            specification_version: 3
         | 
| 116 116 | 
             
            summary: Simple Sanford client for Ruby.
         |