dns_mock 1.3.1 → 1.4.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cb90f7f7c21ba2fff7de8259e0ac994a0781c212d7de77c05eebbe209b2f7f4c
4
- data.tar.gz: e6ac11bad8d86f035063f2b6ca09c681a66988a647c7051a2a80de5b3f0d0ff9
3
+ metadata.gz: 030004dfb97793bf507c84fbd56965bd5af1aa3c9652db58c20d40ec1467936f
4
+ data.tar.gz: b4b0d01e9750ac32c4f1577542a668393abb8780615930263765acbb810854a2
5
5
  SHA512:
6
- metadata.gz: a50714bf62ee1976954cd4cd351399b29d67d240a89e4da379e8da4a5b33c12f323bbed706e5233f23d9edafa609fce52a0f6f3454aab414254368a5069a552f
7
- data.tar.gz: 1d2ad40b18259ba6132215bb486dd2d8e9c0e7cf1df195b1538589c0d8fbc034f2436f3d062fed9823e61df54c50c4c958340f9b8e4a04093044ce6bc708ded9
6
+ metadata.gz: 9e3a43b5a4519bca6e4909d8632081cac6699f57a5090223d97bbf95b32be684f8cb1437cf0ce64080a3476d787a874eb028e2416566d041dfba8211cb41ba60
7
+ data.tar.gz: 259b19d489e11ed66e4b9aa4e5aa55f88913edeb66ed5e767c378940c00bcc934dde3842eeaf5b2ee88456c69e221fd4d9d91ef28ac2fc6a2bfada0f05188e48
data/.reek.yml CHANGED
@@ -17,17 +17,23 @@ detectors:
17
17
  - DnsMock::ContextGeneratorHelper#random_ip_v4_address
18
18
  - DnsMock::ContextGeneratorHelper#random_ip_v6_address
19
19
  - DnsMock::ContextGeneratorHelper#random_txt_record_context
20
+ - DnsMock::ContextGeneratorHelper#to_punycode_hostname
20
21
  - DnsMock::RecordsDictionaryHelper#create_records_dictionary_by_records
21
22
  - DnsMock::ServerHelper#start_random_server
22
23
  - DnsMock::ServerHelper#stop_all_running_servers
23
- - DnsMock::Server::RecordsDictionaryBuilder#rdns_lookup_prefix
24
24
  - DnsMock::ContextGeneratorHelper#random_port_number
25
25
  - DnsMock::TestFramework::RSpec::Helper#dns_mock_server
26
+ - DnsMock::ContextGeneratorHelper#to_rdns_hostaddress
27
+
28
+ DuplicateMethodCall:
29
+ exclude:
30
+ - DnsMock::ContextGeneratorHelper#create_records
26
31
 
27
32
  ControlParameter:
28
33
  exclude:
29
34
  - DnsMock::Error::Helper#raise_unless
30
35
  - DnsMock::Server#initialize
36
+ - DnsMock::ContextGeneratorHelper#to_punycode_hostname
31
37
 
32
38
  MissingSafeMethod:
33
39
  exclude:
data/CHANGELOG.md CHANGED
@@ -2,6 +2,65 @@
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.4.0] - 2021-07-13
6
+
7
+ ### Added
8
+
9
+ - Added ability to use internationalized hostnames. All hostnames in UTF-8 will be represented as [Punycode](https://en.wikipedia.org/wiki/Punycode)
10
+ - Added `simpleidn` as runtime dependency
11
+ - Added `DnsMock::Representer::Punycode`, tests
12
+
13
+ ```ruby
14
+ records = {
15
+ 'mañana.com' => {
16
+ mx: %w[másletras.mañana.com]
17
+ }
18
+ }
19
+
20
+ DnsMock.start_server(port: 5300, records: records)
21
+ ```
22
+
23
+ ```bash
24
+ dig @localhost -p 5300 MX xn--maana-pta.com
25
+ ```
26
+
27
+ ```
28
+ ; <<>> DiG 9.10.6 <<>> @localhost -p 5300 MX xn--maana-pta.com
29
+ ; (2 servers found)
30
+ ;; global options: +cmd
31
+ ;; Got answer:
32
+ ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4612
33
+ ;; flags: rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
34
+ ;; WARNING: recursion requested but not available
35
+
36
+ ;; OPT PSEUDOSECTION:
37
+ ; EDNS: version: 0, flags:; udp: 4096
38
+ ;; QUESTION SECTION:
39
+ ;xn--maana-pta.com. IN MX
40
+
41
+ ;; ANSWER SECTION:
42
+ xn--maana-pta.com. 1 IN MX 10 xn--msletras-8ya.xn--maana-pta.com.
43
+
44
+ ;; Query time: 0 msec
45
+ ;; SERVER: 127.0.0.1#5300(127.0.0.1)
46
+ ;; WHEN: Tue Jul 13 15:38:47 EEST 2021
47
+ ;; MSG SIZE rcvd: 79
48
+ ```
49
+
50
+ ### Changed
51
+
52
+ - Refactored `DnsMock::Representer::RdnsLookup`, tests
53
+ - Updated `DnsMock::Record::Factory::Base`
54
+ - Updated `DnsMock::Server::RecordsDictionaryBuilder`, tests
55
+ - Updated `DnsMock::Record::Factory::Cname`, tests
56
+ - Updated `DnsMock::Record::Factory::Mx`, tests
57
+ - Updated `DnsMock::Record::Factory::Ns`, tests
58
+ - Updated `DnsMock::Record::Factory::Ptr`, tests
59
+ - Updated `DnsMock::Record::Factory::Soa`, tests
60
+ - Updated `DnsMock::ContextGeneratorHelper`, tests
61
+ - Updated reek config
62
+ - Updated gem documentation, version
63
+
5
64
  ## [1.3.1] - 2021-07-07
6
65
 
7
66
  ### Changed
@@ -12,11 +71,13 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
12
71
 
13
72
  ## [1.3.0] - 2021-06-14
14
73
 
15
- Detecting random available port via OS features. Thanks [@ioquatix](https://github.com/ioquatix) for [suggestion](https://github.com/mocktools/ruby-dns-mock/issues/42) 🚀
74
+ ### Added
75
+
76
+ - Detecting random available port via OS features. Thanks [@ioquatix](https://github.com/ioquatix) for [suggestion](https://github.com/mocktools/ruby-dns-mock/issues/42) 🚀
16
77
 
17
78
  ### Removed
18
79
 
19
- - Removed `DnsMock::Server::RandomAvailablePort`
80
+ - Removed `DnsMock::Server::RandomAvailablePort`, tests
20
81
 
21
82
  ### Changed
22
83
 
@@ -61,9 +122,11 @@ Detecting random available port via OS features. Thanks [@ioquatix](https://gith
61
122
 
62
123
  ## [1.2.0] - 2021-02-04
63
124
 
64
- ### Ability to specify MX record priority
125
+ ### Added
126
+
127
+ - Ability to specify custom priority of MX record if it needed
65
128
 
66
- Added ability to specify custom priority of MX record if it needed. Now it impossible to define null or backup MX records. Please note, if you haven't specified a priority of MX record, it will be assigned automatically. MX records builder is assigning priority with step 10 from first item of defined MX records array.
129
+ Now is possible to define null or backup MX records. Please note, if you haven't specified a priority of MX record, it will be assigned automatically. MX records builder is assigning priority with step 10 from first item of defined MX records array.
67
130
 
68
131
  ```ruby
69
132
  records = {
@@ -96,9 +159,9 @@ example.com. 1 IN MX 40 mx3.domain.com.
96
159
 
97
160
  ## [1.1.0] - 2021-02-01
98
161
 
99
- ### RSpec native support
162
+ ### Added
100
163
 
101
- Added DnsMock helper which can simplify integration with RSpec.
164
+ - RSpec native support. DnsMock helper help you to simplify integration with RSpec
102
165
 
103
166
  ```ruby
104
167
  # spec/support/config/dns_mock.rb
@@ -130,9 +193,11 @@ end
130
193
 
131
194
  ## [1.0.0] - 2021-01-29
132
195
 
133
- ### Configurable record not found behaviour
196
+ ### Added
134
197
 
135
- 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:
198
+ - Configurable strategy for record not found case
199
+
200
+ By default it won't raise an exception when DNS record not found in mocked records dictionary:
136
201
 
137
202
  ```ruby
138
203
  DnsMock.start_server(port: 5300)
@@ -178,13 +243,15 @@ DnsMock.start_server(exception_if_not_found: true)
178
243
 
179
244
  ### Fixed
180
245
 
181
- Fixed RDNS lookup representatin for IP address in PTR record feature.
246
+ - RDNS lookup representatin for IP address in PTR record feature.
182
247
 
183
248
  ## [0.2.0] - 2021-01-26
184
249
 
185
- ### PTR record support
250
+ ### Added
251
+
252
+ - PTR record support. Ability to mock PTR records
186
253
 
187
- Added ability to mock PTR records. Please note, you can define host address without RDNS lookup prefix (`.in-addr.arpa`). `DnsMock` will do it for you.
254
+ Please note, you can define host address without RDNS lookup prefix (`.in-addr.arpa`). `DnsMock` will do it for you.
188
255
 
189
256
  ```ruby
190
257
  records = {
@@ -216,6 +283,6 @@ dig @localhost -p 5300 -x 1.2.3.4
216
283
 
217
284
  ## [0.1.0] - 2021-01-19
218
285
 
219
- ### First release
286
+ ### Added
220
287
 
221
- Implemented first version of `DnsMock`. Thanks [@le0pard](https://github.com/le0pard) for idea & support 🚀
288
+ - First release of `DnsMock`. Thanks [@le0pard](https://github.com/le0pard) for idea & support 🚀
data/Gemfile.lock CHANGED
@@ -1,7 +1,8 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- dns_mock (1.3.1)
4
+ dns_mock (1.4.0)
5
+ simpleidn (~> 0.2.1)
5
6
 
6
7
  GEM
7
8
  remote: https://rubygems.org/
@@ -35,7 +36,7 @@ GEM
35
36
  iniparse (~> 1.4)
36
37
  rexml (~> 3.2)
37
38
  parallel (1.20.1)
38
- parser (3.0.1.1)
39
+ parser (3.0.2.0)
39
40
  ast (~> 2.4.1)
40
41
  pry (0.13.1)
41
42
  coderay (~> 1.1)
@@ -45,7 +46,7 @@ GEM
45
46
  pry (~> 0.13.0)
46
47
  psych (3.3.2)
47
48
  rainbow (3.0.0)
48
- rake (13.0.4)
49
+ rake (13.0.6)
49
50
  reek (6.0.4)
50
51
  kwalify (~> 0.7.0)
51
52
  parser (~> 3.0.0)
@@ -108,14 +109,14 @@ PLATFORMS
108
109
  x86_64-darwin-20
109
110
 
110
111
  DEPENDENCIES
111
- bundler (~> 2.2, >= 2.2.22)
112
+ bundler (~> 2.2, >= 2.2.23)
112
113
  bundler-audit (~> 0.8.0)
113
114
  dns_mock!
114
115
  faker (~> 2.18)
115
116
  fasterer (~> 0.9.0)
116
117
  overcommit (~> 0.58.0)
117
118
  pry-byebug (~> 3.9)
118
- rake (~> 13.0, >= 13.0.4)
119
+ rake (~> 13.0, >= 13.0.6)
119
120
  reek (~> 6.0, >= 6.0.4)
120
121
  rspec (~> 3.10)
121
122
  rspec-dns (~> 0.1.8)
@@ -125,4 +126,4 @@ DEPENDENCIES
125
126
  simplecov (~> 0.17.1)
126
127
 
127
128
  BUNDLED WITH
128
- 2.2.22
129
+ 2.2.23
data/README.md CHANGED
@@ -29,10 +29,11 @@
29
29
  ## Features
30
30
 
31
31
  - Ability to mimic any DNS records (`A`, `AAAA`, `CNAME`, `MX`, `NS`, `PTR`, `SOA` and `TXT`)
32
- - Zero runtime dependencies
32
+ - Automatically converts hostnames to RDNS/[Punycode](https://en.wikipedia.org/wiki/Punycode) representation
33
33
  - Lightweight UDP DNS mock server with dynamic/manual port assignment
34
34
  - Test framework agnostic (it's PORO, so you can use it outside of `RSpec`, `Test::Unit` or `MiniTest`)
35
35
  - Simple and intuitive DSL
36
+ - Only one runtime dependency
36
37
 
37
38
  ## Requirements
38
39
 
@@ -67,7 +68,7 @@ records = {
67
68
  ns: %w[ns1.domain.com ns2.domain.com],
68
69
  mx: %w[mx1.domain.com mx2.domain.com:50], # you can specify host(s) or host(s) with priority, use '.:0' for definition null MX record
69
70
  txt: %w[txt_record_1 txt_record_2],
70
- cname: 'some.domain.com',
71
+ cname: 'mañana.com', # you can specify hostname in UTF-8. It will be converted to xn--maana-pta.com automatically
71
72
  soa: [
72
73
  {
73
74
  mname: 'dns1.domain.com',
@@ -85,7 +86,7 @@ records = {
85
86
  }
86
87
  }
87
88
 
88
- # Main DnsMock interface
89
+ # Public DnsMock interface
89
90
  # records:Hash, port:Integer, exception_if_not_found:Boolean
90
91
  # are optional params. By default creates dns mock server with
91
92
  # empty records. A free port for server will be randomly assigned
@@ -136,7 +137,7 @@ require 'dns_mock/test_framework/rspec'
136
137
 
137
138
  #### DnsMock RSpec helper
138
139
 
139
- Just add `DnsMock::TestFramework::RSpec::Helper` if you wanna use shortcut `dns_mock_server` for DnsMock server instance into your `RSpec.describe` blocks:
140
+ Just add `DnsMock::TestFramework::RSpec::Helper` if you wanna use shortcut `dns_mock_server` for DnsMock server instance inside of your `RSpec.describe` blocks:
140
141
 
141
142
  ```ruby
142
143
  # spec/support/config/dns_mock.rb
data/dns_mock.gemspec CHANGED
@@ -31,13 +31,15 @@ Gem::Specification.new do |spec|
31
31
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
32
32
  spec.require_paths = ['lib']
33
33
 
34
- spec.add_development_dependency 'bundler', '~> 2.2', '>= 2.2.22'
34
+ spec.add_runtime_dependency 'simpleidn', '~> 0.2.1'
35
+
36
+ spec.add_development_dependency 'bundler', '~> 2.2', '>= 2.2.23'
35
37
  spec.add_development_dependency 'bundler-audit', '~> 0.8.0'
36
38
  spec.add_development_dependency 'faker', '~> 2.18'
37
39
  spec.add_development_dependency 'fasterer', '~> 0.9.0'
38
40
  spec.add_development_dependency 'overcommit', '~> 0.58.0'
39
41
  spec.add_development_dependency 'pry-byebug', '~> 3.9'
40
- spec.add_development_dependency 'rake', '~> 13.0', '>= 13.0.4'
42
+ spec.add_development_dependency 'rake', '~> 13.0', '>= 13.0.6'
41
43
  spec.add_development_dependency 'reek', '~> 6.0', '>= 6.0.4'
42
44
  spec.add_development_dependency 'rspec', '~> 3.10'
43
45
  spec.add_development_dependency 'rspec-dns', '~> 0.1.8'
data/lib/dns_mock/core.rb CHANGED
@@ -18,6 +18,11 @@ module DnsMock
18
18
  require_relative '../dns_mock/error/helper'
19
19
  end
20
20
 
21
+ module Representer
22
+ require_relative '../dns_mock/representer/punycode'
23
+ require_relative '../dns_mock/representer/rdns_lookup'
24
+ end
25
+
21
26
  module Record
22
27
  module Factory
23
28
  require_relative '../dns_mock/record/factory/base'
@@ -23,8 +23,13 @@ module DnsMock
23
23
  end
24
24
  end
25
25
 
26
- def initialize(dns_name = ::Resolv::DNS::Name, record_data:)
26
+ def initialize(
27
+ dns_name = ::Resolv::DNS::Name,
28
+ punycode_representer = DnsMock::Representer::Punycode,
29
+ record_data:
30
+ )
27
31
  @dns_name = dns_name
32
+ @punycode_representer = punycode_representer
28
33
  @record_data = record_data
29
34
  end
30
35
 
@@ -38,7 +43,7 @@ module DnsMock
38
43
 
39
44
  private
40
45
 
41
- attr_reader :dns_name, :record_data
46
+ attr_reader :dns_name, :punycode_representer, :record_data
42
47
 
43
48
  def record_type
44
49
  self.class.name.split('::').last.upcase
@@ -46,7 +51,7 @@ module DnsMock
46
51
 
47
52
  def create_dns_name(hostname)
48
53
  raise ::ArgumentError, "cannot interpret as DNS name: #{hostname}" unless hostname.is_a?(::String)
49
- dns_name.create("#{hostname}.")
54
+ dns_name.create("#{punycode_representer.call(hostname)}.")
50
55
  end
51
56
  end
52
57
  end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DnsMock
4
+ module Representer
5
+ Punycode = ::Class.new do
6
+ require 'simpleidn'
7
+
8
+ def self.call(hostname)
9
+ return hostname if hostname.ascii_only?
10
+
11
+ SimpleIDN.to_ascii(hostname)
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DnsMock
4
+ module Representer
5
+ class RdnsLookup
6
+ IP_OCTET_GROUPS = /(\d+).(\d+).(\d+).(\d+)/.freeze
7
+ RDNS_LOOKUP_REPRESENTATION = '\4.\3.\2.\1.in-addr.arpa'
8
+
9
+ def self.call(host_address)
10
+ host_address.gsub(
11
+ DnsMock::Representer::RdnsLookup::IP_OCTET_GROUPS,
12
+ DnsMock::Representer::RdnsLookup::RDNS_LOOKUP_REPRESENTATION
13
+ )
14
+ end
15
+ end
16
+ end
17
+ end
@@ -6,8 +6,6 @@ module DnsMock
6
6
  include DnsMock::Error::Helper
7
7
 
8
8
  IP_ADDRESS_PATTERN = /\A((1\d|[1-9]|2[0-4])?\d|25[0-5])(\.\g<1>){3}\z/.freeze
9
- IP_OCTET_GROUPS = /(\d+).(\d+).(\d+).(\d+)/.freeze
10
- RDNS_LOOKUP_REPRESENTATION = '\4.\3.\2.\1.in-addr.arpa'
11
9
  TYPE_MAPPER = DnsMock::AVAILABLE_DNS_RECORD_TYPES.zip(
12
10
  [
13
11
  [DnsMock::Record::Builder::A, DnsMock::Record::Factory::A, ::Array],
@@ -27,7 +25,12 @@ module DnsMock
27
25
 
28
26
  attr_reader :records
29
27
 
30
- def initialize
28
+ def initialize(
29
+ punycode_representer = DnsMock::Representer::Punycode,
30
+ rdns_lookup_representer = DnsMock::Representer::RdnsLookup
31
+ )
32
+ @punycode_representer = punycode_representer
33
+ @rdns_lookup_representer = rdns_lookup_representer
31
34
  @records = {}
32
35
  end
33
36
 
@@ -35,7 +38,7 @@ module DnsMock
35
38
  raise_unless(DnsMock::Error::ArgumentType.new(records_to_build.class), records_to_build.is_a?(::Hash))
36
39
  records_to_build.each do |hostname, dns_records|
37
40
  raise_unless(DnsMock::Error::RecordHostType.new(hostname, hostname.class), hostname.is_a?(::String))
38
- records[rdns_lookup_prefix(hostname)] = dns_records.each_with_object({}) do |(record_type, records_data), records_instances_by_type|
41
+ records[representer(hostname)] = dns_records.each_with_object({}) do |(record_type, records_data), records_instances_by_type|
39
42
  records_instances_by_type[record_type] = build_records_instances_by_type(record_type, records_data)
40
43
  end
41
44
  end
@@ -45,13 +48,12 @@ module DnsMock
45
48
 
46
49
  private
47
50
 
48
- def rdns_lookup_prefix(hostname)
49
- return hostname unless hostname[DnsMock::Server::RecordsDictionaryBuilder::IP_ADDRESS_PATTERN]
51
+ attr_reader :punycode_representer, :rdns_lookup_representer
50
52
 
51
- hostname.gsub(
52
- DnsMock::Server::RecordsDictionaryBuilder::IP_OCTET_GROUPS,
53
- DnsMock::Server::RecordsDictionaryBuilder::RDNS_LOOKUP_REPRESENTATION
54
- )
53
+ def representer(hostname)
54
+ return rdns_lookup_representer.call(hostname) if hostname[DnsMock::Server::RecordsDictionaryBuilder::IP_ADDRESS_PATTERN]
55
+
56
+ punycode_representer.call(hostname)
55
57
  end
56
58
 
57
59
  def build_records_instances_by_type(record_type, records_to_build)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DnsMock
4
- VERSION = '1.3.1'
4
+ VERSION = '1.4.0'
5
5
  end
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dns_mock
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.1
4
+ version: 1.4.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-07-07 00:00:00.000000000 Z
11
+ date: 2021-07-13 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: simpleidn
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 0.2.1
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 0.2.1
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: bundler
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -19,7 +33,7 @@ dependencies:
19
33
  version: '2.2'
20
34
  - - ">="
21
35
  - !ruby/object:Gem::Version
22
- version: 2.2.22
36
+ version: 2.2.23
23
37
  type: :development
24
38
  prerelease: false
25
39
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,7 +43,7 @@ dependencies:
29
43
  version: '2.2'
30
44
  - - ">="
31
45
  - !ruby/object:Gem::Version
32
- version: 2.2.22
46
+ version: 2.2.23
33
47
  - !ruby/object:Gem::Dependency
34
48
  name: bundler-audit
35
49
  requirement: !ruby/object:Gem::Requirement
@@ -109,7 +123,7 @@ dependencies:
109
123
  version: '13.0'
110
124
  - - ">="
111
125
  - !ruby/object:Gem::Version
112
- version: 13.0.4
126
+ version: 13.0.6
113
127
  type: :development
114
128
  prerelease: false
115
129
  version_requirements: !ruby/object:Gem::Requirement
@@ -119,7 +133,7 @@ dependencies:
119
133
  version: '13.0'
120
134
  - - ">="
121
135
  - !ruby/object:Gem::Version
122
- version: 13.0.4
136
+ version: 13.0.6
123
137
  - !ruby/object:Gem::Dependency
124
138
  name: reek
125
139
  requirement: !ruby/object:Gem::Requirement
@@ -299,6 +313,8 @@ files:
299
313
  - lib/dns_mock/record/factory/ptr.rb
300
314
  - lib/dns_mock/record/factory/soa.rb
301
315
  - lib/dns_mock/record/factory/txt.rb
316
+ - lib/dns_mock/representer/punycode.rb
317
+ - lib/dns_mock/representer/rdns_lookup.rb
302
318
  - lib/dns_mock/response/answer.rb
303
319
  - lib/dns_mock/response/message.rb
304
320
  - lib/dns_mock/server.rb