dns_mock 0.2.1 → 1.0.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.
- checksums.yaml +4 -4
 - data/.codeclimate.yml +1 -1
 - data/.reek.yml +6 -0
 - data/.rubocop.yml +15 -0
 - data/CHANGELOG.md +46 -0
 - data/Gemfile.lock +9 -9
 - data/README.md +6 -4
 - data/dns_mock.gemspec +1 -1
 - data/lib/dns_mock.rb +2 -2
 - data/lib/dns_mock/response/answer.rb +5 -4
 - data/lib/dns_mock/response/message.rb +8 -2
 - data/lib/dns_mock/server.rb +5 -3
 - data/lib/dns_mock/version.rb +1 -1
 - metadata +4 -10
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: fc32cd03521879fd373e554a2dbb29ae26ca002586418675fdc066b7ad5eab57
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: f309b21a3e48780dedef123a95bab5267dc3679ec3809def258a189485f5a6c4
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: fa16a2db1e2c9b8e903b29241f08d2b7695dfa3b98c9364c7d8ea87b361a67b21e72f898378d64b75500f9bc0ab90d14a33b94443561760ec99a820e02c0d8b4
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 3f236e1c88970784a9d137994562595b06f3d78c0555aa3279810ae1821792d5b46c50f56e8bb63b3c66c060f9f495e4e09f6ada7ee6ae0588772a2ebb7d1a72
         
     | 
    
        data/.codeclimate.yml
    CHANGED
    
    
    
        data/.reek.yml
    CHANGED
    
    
    
        data/.rubocop.yml
    CHANGED
    
    | 
         @@ -118,6 +118,9 @@ Style/EndlessMethod: 
     | 
|
| 
       118 
118 
     | 
    
         
             
            Style/HashExcept:
         
     | 
| 
       119 
119 
     | 
    
         
             
              Enabled: true
         
     | 
| 
       120 
120 
     | 
    
         | 
| 
      
 121 
     | 
    
         
            +
            Style/IfWithBooleanLiteralBranches:
         
     | 
| 
      
 122 
     | 
    
         
            +
              Enabled: true
         
     | 
| 
      
 123 
     | 
    
         
            +
             
     | 
| 
       121 
124 
     | 
    
         
             
            Layout/LineLength:
         
     | 
| 
       122 
125 
     | 
    
         
             
              Max: 150
         
     | 
| 
       123 
126 
     | 
    
         | 
| 
         @@ -203,6 +206,18 @@ Lint/RedundantDirGlobSort: 
     | 
|
| 
       203 
206 
     | 
    
         
             
            Lint/UnmodifiedReduceAccumulator:
         
     | 
| 
       204 
207 
     | 
    
         
             
              Enabled: true
         
     | 
| 
       205 
208 
     | 
    
         | 
| 
      
 209 
     | 
    
         
            +
            Lint/NumberedParameterAssignment:
         
     | 
| 
      
 210 
     | 
    
         
            +
              Enabled: true
         
     | 
| 
      
 211 
     | 
    
         
            +
             
     | 
| 
      
 212 
     | 
    
         
            +
            Lint/OrAssignmentToConstant:
         
     | 
| 
      
 213 
     | 
    
         
            +
              Enabled: true
         
     | 
| 
      
 214 
     | 
    
         
            +
             
     | 
| 
      
 215 
     | 
    
         
            +
            Lint/SymbolConversion:
         
     | 
| 
      
 216 
     | 
    
         
            +
              Enabled: true
         
     | 
| 
      
 217 
     | 
    
         
            +
             
     | 
| 
      
 218 
     | 
    
         
            +
            Lint/TripleQuotes:
         
     | 
| 
      
 219 
     | 
    
         
            +
              Enabled: true
         
     | 
| 
      
 220 
     | 
    
         
            +
             
     | 
| 
       206 
221 
     | 
    
         
             
            Performance/AncestorsInclude:
         
     | 
| 
       207 
222 
     | 
    
         
             
              Enabled: true
         
     | 
| 
       208 
223 
     | 
    
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    | 
         @@ -2,6 +2,52 @@ 
     | 
|
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
      
 5 
     | 
    
         
            +
            ## [1.0.0] - 2021-01-29
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            ### Configurable record not found behaviour
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            Added configurable strategy for record not found case. By default it won't raise an exception when DNS record not found in mocked records dictionary:
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
            ```ruby
         
     | 
| 
      
 12 
     | 
    
         
            +
            DnsMock.start_server(port: 5300)
         
     | 
| 
      
 13 
     | 
    
         
            +
            ```
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
            ```bash
         
     | 
| 
      
 16 
     | 
    
         
            +
            dig @localhost -p 5300 A example.com
         
     | 
| 
      
 17 
     | 
    
         
            +
            ```
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
            ```
         
     | 
| 
      
 20 
     | 
    
         
            +
            ; <<>> DiG 9.10.6 <<>> @localhost -p 5300 A example.com
         
     | 
| 
      
 21 
     | 
    
         
            +
            ;; Got answer:
         
     | 
| 
      
 22 
     | 
    
         
            +
            ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38632
         
     | 
| 
      
 23 
     | 
    
         
            +
            ;; flags: rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
         
     | 
| 
      
 24 
     | 
    
         
            +
            ;; WARNING: recursion requested but not available
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
            ;; OPT PSEUDOSECTION:
         
     | 
| 
      
 27 
     | 
    
         
            +
            ; EDNS: version: 0, flags:; udp: 4096
         
     | 
| 
      
 28 
     | 
    
         
            +
            ;; QUESTION SECTION:
         
     | 
| 
      
 29 
     | 
    
         
            +
            ;example.com.			IN	A
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
            ;; Query time: 0 msec
         
     | 
| 
      
 32 
     | 
    
         
            +
            ;; SERVER: 127.0.0.1#5300(127.0.0.1)
         
     | 
| 
      
 33 
     | 
    
         
            +
            ;; WHEN: Fri Jan 29 08:21:30 EET 2021
         
     | 
| 
      
 34 
     | 
    
         
            +
            ;; MSG SIZE  rcvd: 40
         
     | 
| 
      
 35 
     | 
    
         
            +
            ```
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
            If you want raise an exception when record not found, just start `DnsMock` with `exception_if_not_found: true` option:
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
      
 39 
     | 
    
         
            +
            ```ruby
         
     | 
| 
      
 40 
     | 
    
         
            +
            DnsMock.start_server(exception_if_not_found: true)
         
     | 
| 
      
 41 
     | 
    
         
            +
            ```
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
      
 43 
     | 
    
         
            +
            ### Changed
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
            - Updated `DnsMock.start_server`
         
     | 
| 
      
 46 
     | 
    
         
            +
            - Updated `DnsMock::Server`
         
     | 
| 
      
 47 
     | 
    
         
            +
            - Updated `DnsMock::Response::Message`
         
     | 
| 
      
 48 
     | 
    
         
            +
            - Updated `DnsMock::Response::Answer`
         
     | 
| 
      
 49 
     | 
    
         
            +
            - Updated gem version, readme
         
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
       5 
51 
     | 
    
         
             
            ## [0.2.1] - 2021-01-27
         
     | 
| 
       6 
52 
     | 
    
         | 
| 
       7 
53 
     | 
    
         
             
            ### Fixed RDNS lookup representation
         
     | 
    
        data/Gemfile.lock
    CHANGED
    
    | 
         @@ -1,12 +1,12 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            PATH
         
     | 
| 
       2 
2 
     | 
    
         
             
              remote: .
         
     | 
| 
       3 
3 
     | 
    
         
             
              specs:
         
     | 
| 
       4 
     | 
    
         
            -
                dns_mock (0. 
     | 
| 
      
 4 
     | 
    
         
            +
                dns_mock (1.0.0)
         
     | 
| 
       5 
5 
     | 
    
         | 
| 
       6 
6 
     | 
    
         
             
            GEM
         
     | 
| 
       7 
7 
     | 
    
         
             
              remote: https://rubygems.org/
         
     | 
| 
       8 
8 
     | 
    
         
             
              specs:
         
     | 
| 
       9 
     | 
    
         
            -
                ast (2.4. 
     | 
| 
      
 9 
     | 
    
         
            +
                ast (2.4.2)
         
     | 
| 
       10 
10 
     | 
    
         
             
                bundler-audit (0.7.0.1)
         
     | 
| 
       11 
11 
     | 
    
         
             
                  bundler (>= 1.2.0, < 3)
         
     | 
| 
       12 
12 
     | 
    
         
             
                  thor (>= 0.18, < 2)
         
     | 
| 
         @@ -14,7 +14,7 @@ GEM 
     | 
|
| 
       14 
14 
     | 
    
         
             
                childprocess (4.0.0)
         
     | 
| 
       15 
15 
     | 
    
         
             
                coderay (1.1.3)
         
     | 
| 
       16 
16 
     | 
    
         
             
                colorize (0.8.1)
         
     | 
| 
       17 
     | 
    
         
            -
                concurrent-ruby (1.1. 
     | 
| 
      
 17 
     | 
    
         
            +
                concurrent-ruby (1.1.8)
         
     | 
| 
       18 
18 
     | 
    
         
             
                diff-lcs (1.4.4)
         
     | 
| 
       19 
19 
     | 
    
         
             
                dnsruby (1.61.5)
         
     | 
| 
       20 
20 
     | 
    
         
             
                  simpleidn (~> 0.1)
         
     | 
| 
         @@ -65,11 +65,11 @@ GEM 
     | 
|
| 
       65 
65 
     | 
    
         
             
                rspec-expectations (3.10.1)
         
     | 
| 
       66 
66 
     | 
    
         
             
                  diff-lcs (>= 1.2.0, < 2.0)
         
     | 
| 
       67 
67 
     | 
    
         
             
                  rspec-support (~> 3.10.0)
         
     | 
| 
       68 
     | 
    
         
            -
                rspec-mocks (3.10. 
     | 
| 
      
 68 
     | 
    
         
            +
                rspec-mocks (3.10.2)
         
     | 
| 
       69 
69 
     | 
    
         
             
                  diff-lcs (>= 1.2.0, < 2.0)
         
     | 
| 
       70 
70 
     | 
    
         
             
                  rspec-support (~> 3.10.0)
         
     | 
| 
       71 
     | 
    
         
            -
                rspec-support (3.10. 
     | 
| 
       72 
     | 
    
         
            -
                rubocop (1. 
     | 
| 
      
 71 
     | 
    
         
            +
                rspec-support (3.10.2)
         
     | 
| 
      
 72 
     | 
    
         
            +
                rubocop (1.9.0)
         
     | 
| 
       73 
73 
     | 
    
         
             
                  parallel (~> 1.10)
         
     | 
| 
       74 
74 
     | 
    
         
             
                  parser (>= 3.0.0.0)
         
     | 
| 
       75 
75 
     | 
    
         
             
                  rainbow (>= 2.2.2, < 4.0)
         
     | 
| 
         @@ -78,7 +78,7 @@ GEM 
     | 
|
| 
       78 
78 
     | 
    
         
             
                  rubocop-ast (>= 1.2.0, < 2.0)
         
     | 
| 
       79 
79 
     | 
    
         
             
                  ruby-progressbar (~> 1.7)
         
     | 
| 
       80 
80 
     | 
    
         
             
                  unicode-display_width (>= 1.4.0, < 3.0)
         
     | 
| 
       81 
     | 
    
         
            -
                rubocop-ast (1.4. 
     | 
| 
      
 81 
     | 
    
         
            +
                rubocop-ast (1.4.1)
         
     | 
| 
       82 
82 
     | 
    
         
             
                  parser (>= 2.7.1.5)
         
     | 
| 
       83 
83 
     | 
    
         
             
                rubocop-performance (1.9.2)
         
     | 
| 
       84 
84 
     | 
    
         
             
                  rubocop (>= 0.90.0, < 2.0)
         
     | 
| 
         @@ -97,7 +97,7 @@ GEM 
     | 
|
| 
       97 
97 
     | 
    
         
             
                simplecov-html (0.10.2)
         
     | 
| 
       98 
98 
     | 
    
         
             
                simpleidn (0.2.1)
         
     | 
| 
       99 
99 
     | 
    
         
             
                  unf (~> 0.1.4)
         
     | 
| 
       100 
     | 
    
         
            -
                thor (1.0 
     | 
| 
      
 100 
     | 
    
         
            +
                thor (1.1.0)
         
     | 
| 
       101 
101 
     | 
    
         
             
                unf (0.1.4)
         
     | 
| 
       102 
102 
     | 
    
         
             
                  unf_ext
         
     | 
| 
       103 
103 
     | 
    
         
             
                unf_ext (0.0.7.7)
         
     | 
| 
         @@ -118,7 +118,7 @@ DEPENDENCIES 
     | 
|
| 
       118 
118 
     | 
    
         
             
              reek (~> 6.0, >= 6.0.3)
         
     | 
| 
       119 
119 
     | 
    
         
             
              rspec (~> 3.10)
         
     | 
| 
       120 
120 
     | 
    
         
             
              rspec-dns (~> 0.1.8)
         
     | 
| 
       121 
     | 
    
         
            -
              rubocop (~> 1. 
     | 
| 
      
 121 
     | 
    
         
            +
              rubocop (~> 1.9)
         
     | 
| 
       122 
122 
     | 
    
         
             
              rubocop-performance (~> 1.9, >= 1.9.2)
         
     | 
| 
       123 
123 
     | 
    
         
             
              rubocop-rspec (~> 2.1)
         
     | 
| 
       124 
124 
     | 
    
         
             
              simplecov (~> 0.17.1)
         
     | 
    
        data/README.md
    CHANGED
    
    | 
         @@ -82,10 +82,12 @@ records = { 
     | 
|
| 
       82 
82 
     | 
    
         
             
              }
         
     | 
| 
       83 
83 
     | 
    
         
             
            }
         
     | 
| 
       84 
84 
     | 
    
         | 
| 
       85 
     | 
    
         
            -
            # Main DnsMock interface 
     | 
| 
       86 
     | 
    
         
            -
            #  
     | 
| 
       87 
     | 
    
         
            -
            #  
     | 
| 
       88 
     | 
    
         
            -
            #  
     | 
| 
      
 85 
     | 
    
         
            +
            # Main DnsMock interface
         
     | 
| 
      
 86 
     | 
    
         
            +
            # records:Hash, port:Integer, exception_if_not_found:Boolean
         
     | 
| 
      
 87 
     | 
    
         
            +
            # are optional params. By default creates dns mock server with
         
     | 
| 
      
 88 
     | 
    
         
            +
            # empty records. A free port for server will be randomly assigned
         
     | 
| 
      
 89 
     | 
    
         
            +
            # in the range from 49152 to 65535, if record not found exception
         
     | 
| 
      
 90 
     | 
    
         
            +
            # won't raises. Returns current dns mock server
         
     | 
| 
       89 
91 
     | 
    
         
             
            dns_mock_server = DnsMock.start_server(records: records) # => DnsMock::Server instance
         
     | 
| 
       90 
92 
     | 
    
         | 
| 
       91 
93 
     | 
    
         
             
            # returns current dns mock server port
         
     | 
    
        data/dns_mock.gemspec
    CHANGED
    
    | 
         @@ -41,7 +41,7 @@ Gem::Specification.new do |spec| 
     | 
|
| 
       41 
41 
     | 
    
         
             
              spec.add_development_dependency 'reek', '~> 6.0', '>= 6.0.3'
         
     | 
| 
       42 
42 
     | 
    
         
             
              spec.add_development_dependency 'rspec', '~> 3.10'
         
     | 
| 
       43 
43 
     | 
    
         
             
              spec.add_development_dependency 'rspec-dns', '~> 0.1.8'
         
     | 
| 
       44 
     | 
    
         
            -
              spec.add_development_dependency 'rubocop', '~> 1. 
     | 
| 
      
 44 
     | 
    
         
            +
              spec.add_development_dependency 'rubocop', '~> 1.9'
         
     | 
| 
       45 
45 
     | 
    
         
             
              spec.add_development_dependency 'rubocop-performance', '~> 1.9', '>= 1.9.2'
         
     | 
| 
       46 
46 
     | 
    
         
             
              spec.add_development_dependency 'rubocop-rspec', '~> 2.1'
         
     | 
| 
       47 
47 
     | 
    
         
             
              spec.add_development_dependency 'simplecov', '~> 0.17.1'
         
     | 
    
        data/lib/dns_mock.rb
    CHANGED
    
    | 
         @@ -4,8 +4,8 @@ require_relative 'dns_mock/core' 
     | 
|
| 
       4 
4 
     | 
    
         | 
| 
       5 
5 
     | 
    
         
             
            module DnsMock
         
     | 
| 
       6 
6 
     | 
    
         
             
              class << self
         
     | 
| 
       7 
     | 
    
         
            -
                def start_server(server = DnsMock::Server, records: {}, port: nil)
         
     | 
| 
       8 
     | 
    
         
            -
                  server.new(records: records, port: port)
         
     | 
| 
      
 7 
     | 
    
         
            +
                def start_server(server = DnsMock::Server, records: {}, port: nil, exception_if_not_found: false)
         
     | 
| 
      
 8 
     | 
    
         
            +
                  server.new(records: records, port: port, exception_if_not_found: exception_if_not_found)
         
     | 
| 
       9 
9 
     | 
    
         
             
                end
         
     | 
| 
       10 
10 
     | 
    
         | 
| 
       11 
11 
     | 
    
         
             
                def running_servers
         
     | 
| 
         @@ -8,8 +8,9 @@ module DnsMock 
     | 
|
| 
       8 
8 
     | 
    
         
             
                    hash[::Resolv::DNS::Resource::IN.const_get(record_type.upcase)] = record_type
         
     | 
| 
       9 
9 
     | 
    
         
             
                  end.freeze
         
     | 
| 
       10 
10 
     | 
    
         | 
| 
       11 
     | 
    
         
            -
                  def initialize(records)
         
     | 
| 
      
 11 
     | 
    
         
            +
                  def initialize(records, exception_if_not_found)
         
     | 
| 
       12 
12 
     | 
    
         
             
                    @records = records
         
     | 
| 
      
 13 
     | 
    
         
            +
                    @exception_if_not_found = exception_if_not_found
         
     | 
| 
       13 
14 
     | 
    
         
             
                  end
         
     | 
| 
       14 
15 
     | 
    
         | 
| 
       15 
16 
     | 
    
         
             
                  def build(hostname, record_class)
         
     | 
| 
         @@ -19,13 +20,13 @@ module DnsMock 
     | 
|
| 
       19 
20 
     | 
    
         | 
| 
       20 
21 
     | 
    
         
             
                  private
         
     | 
| 
       21 
22 
     | 
    
         | 
| 
       22 
     | 
    
         
            -
                  attr_reader :records, :hostname
         
     | 
| 
      
 23 
     | 
    
         
            +
                  attr_reader :records, :exception_if_not_found, :hostname
         
     | 
| 
       23 
24 
     | 
    
         | 
| 
       24 
25 
     | 
    
         
             
                  def record_by_type(record_class)
         
     | 
| 
       25 
26 
     | 
    
         
             
                    record_type = DnsMock::Response::Answer::REVERSE_TYPE_MAPPER[record_class]
         
     | 
| 
       26 
27 
     | 
    
         
             
                    found_records = records.dig(hostname.to_s, record_type)
         
     | 
| 
       27 
     | 
    
         
            -
                    raise DnsMock::Error::RecordNotFound.new(record_type, hostname) unless found_records
         
     | 
| 
       28 
     | 
    
         
            -
                    found_records
         
     | 
| 
      
 28 
     | 
    
         
            +
                    raise DnsMock::Error::RecordNotFound.new(record_type, hostname) unless found_records || !exception_if_not_found
         
     | 
| 
      
 29 
     | 
    
         
            +
                    Array(found_records)
         
     | 
| 
       29 
30 
     | 
    
         
             
                  end
         
     | 
| 
       30 
31 
     | 
    
         
             
                end
         
     | 
| 
       31 
32 
     | 
    
         
             
              end
         
     | 
| 
         @@ -3,8 +3,14 @@ 
     | 
|
| 
       3 
3 
     | 
    
         
             
            module DnsMock
         
     | 
| 
       4 
4 
     | 
    
         
             
              module Response
         
     | 
| 
       5 
5 
     | 
    
         
             
                class Message
         
     | 
| 
       6 
     | 
    
         
            -
                  def initialize( 
     | 
| 
       7 
     | 
    
         
            -
                     
     | 
| 
      
 6 
     | 
    
         
            +
                  def initialize(
         
     | 
| 
      
 7 
     | 
    
         
            +
                    packet,
         
     | 
| 
      
 8 
     | 
    
         
            +
                    records,
         
     | 
| 
      
 9 
     | 
    
         
            +
                    exception_if_not_found,
         
     | 
| 
      
 10 
     | 
    
         
            +
                    dns_answer = DnsMock::Response::Answer,
         
     | 
| 
      
 11 
     | 
    
         
            +
                    dns_message = ::Resolv::DNS::Message
         
     | 
| 
      
 12 
     | 
    
         
            +
                  )
         
     | 
| 
      
 13 
     | 
    
         
            +
                    @dns_answer = dns_answer.new(records, exception_if_not_found)
         
     | 
| 
       8 
14 
     | 
    
         
             
                    @dns_message = dns_message.decode(packet)
         
     | 
| 
       9 
15 
     | 
    
         
             
                  end
         
     | 
| 
       10 
16 
     | 
    
         | 
    
        data/lib/dns_mock/server.rb
    CHANGED
    
    | 
         @@ -15,13 +15,15 @@ module DnsMock 
     | 
|
| 
       15 
15 
     | 
    
         
             
                  random_available_port = DnsMock::Server::RandomAvailablePort,
         
     | 
| 
       16 
16 
     | 
    
         
             
                  thread_class = ::Thread,
         
     | 
| 
       17 
17 
     | 
    
         
             
                  records: nil,
         
     | 
| 
       18 
     | 
    
         
            -
                  port: nil
         
     | 
| 
      
 18 
     | 
    
         
            +
                  port: nil,
         
     | 
| 
      
 19 
     | 
    
         
            +
                  exception_if_not_found: false
         
     | 
| 
       19 
20 
     | 
    
         
             
                )
         
     | 
| 
       20 
21 
     | 
    
         
             
                  @socket = socket
         
     | 
| 
       21 
22 
     | 
    
         
             
                  @records_dictionary_builder = records_dictionary_builder
         
     | 
| 
       22 
23 
     | 
    
         
             
                  @thread_class = thread_class
         
     | 
| 
       23 
24 
     | 
    
         
             
                  @records = records_dictionary_builder.call(records || {})
         
     | 
| 
       24 
25 
     | 
    
         
             
                  @port = port || random_available_port.call
         
     | 
| 
      
 26 
     | 
    
         
            +
                  @exception_if_not_found = exception_if_not_found
         
     | 
| 
       25 
27 
     | 
    
         
             
                  prepare_server_thread
         
     | 
| 
       26 
28 
     | 
    
         
             
                end
         
     | 
| 
       27 
29 
     | 
    
         | 
| 
         @@ -34,7 +36,7 @@ module DnsMock 
     | 
|
| 
       34 
36 
     | 
    
         
             
                      break if packet.size.zero?
         
     | 
| 
       35 
37 
     | 
    
         | 
| 
       36 
38 
     | 
    
         
             
                      address, port = addr.values_at(3, 1)
         
     | 
| 
       37 
     | 
    
         
            -
                      socket.send(DnsMock::Response::Message.new(packet, records).as_binary_string, 0, address, port)
         
     | 
| 
      
 39 
     | 
    
         
            +
                      socket.send(DnsMock::Response::Message.new(packet, records, exception_if_not_found).as_binary_string, 0, address, port)
         
     | 
| 
       38 
40 
     | 
    
         
             
                    end
         
     | 
| 
       39 
41 
     | 
    
         
             
                  ensure
         
     | 
| 
       40 
42 
     | 
    
         
             
                    socket.close
         
     | 
| 
         @@ -63,7 +65,7 @@ module DnsMock 
     | 
|
| 
       63 
65 
     | 
    
         | 
| 
       64 
66 
     | 
    
         
             
                private
         
     | 
| 
       65 
67 
     | 
    
         | 
| 
       66 
     | 
    
         
            -
                attr_reader :socket, :records_dictionary_builder, :thread_class
         
     | 
| 
      
 68 
     | 
    
         
            +
                attr_reader :socket, :records_dictionary_builder, :thread_class, :exception_if_not_found
         
     | 
| 
       67 
69 
     | 
    
         
             
                attr_accessor :records, :thread
         
     | 
| 
       68 
70 
     | 
    
         | 
| 
       69 
71 
     | 
    
         
             
                def prepare_socket_for_session
         
     | 
    
        data/lib/dns_mock/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: dns_mock
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 1.0.0
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Vladislav Trotsenko
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire:
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: exe
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2021-01- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2021-01-29 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: bundler
         
     | 
| 
         @@ -174,20 +174,14 @@ dependencies: 
     | 
|
| 
       174 
174 
     | 
    
         
             
                requirements:
         
     | 
| 
       175 
175 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       176 
176 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       177 
     | 
    
         
            -
                    version: '1. 
     | 
| 
       178 
     | 
    
         
            -
                - - ">="
         
     | 
| 
       179 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       180 
     | 
    
         
            -
                    version: 1.8.1
         
     | 
| 
      
 177 
     | 
    
         
            +
                    version: '1.9'
         
     | 
| 
       181 
178 
     | 
    
         
             
              type: :development
         
     | 
| 
       182 
179 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       183 
180 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       184 
181 
     | 
    
         
             
                requirements:
         
     | 
| 
       185 
182 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       186 
183 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       187 
     | 
    
         
            -
                    version: '1. 
     | 
| 
       188 
     | 
    
         
            -
                - - ">="
         
     | 
| 
       189 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       190 
     | 
    
         
            -
                    version: 1.8.1
         
     | 
| 
      
 184 
     | 
    
         
            +
                    version: '1.9'
         
     | 
| 
       191 
185 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       192 
186 
     | 
    
         
             
              name: rubocop-performance
         
     | 
| 
       193 
187 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     |