Changelog
December 25, 2024 · View on GitHub
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[1.7.6] - 2024-12-25
Updated
- Updated gem development dependencies
- Updated gem version
[1.7.5] - 2024-10-14
Updated
- Updated gem development dependencies
- Updated
circleci/rubocopconfigs - Updated gem version
[1.7.4] - 2024-07-16
Updated
- Updated gem development dependencies
- Updated
rubocop/codeclimateconfigs - Updated gem version
[1.7.3] - 2024-06-27
Updated
- Updated gem runtime/development dependencies
- Updated gem version
[1.7.2] - 2024-05-13
Updated
- Updated gem runtime/development dependencies
- Updated gem version
[1.7.1] - 2024-04-21
Updated
- Updated gem development dependencies
- Updated gem version
[1.7.0] - 2024-04-18
Added
- Added ability to interact with DNS message question/answer context. Thanks @mroach for feature suggestion and PR
Updated
- Updated gem documentation
- Updated gem version
[1.6.2] - 2024-01-31
Added
- Added and tested Ruby 3.3.x support
Updated
- Updated gemspecs
- Updated gem version
[1.6.1] - 2024-01-07
Updated
- Updated gemspecs
- Updated gem version
- Updated gem documentation
[1.6.0] - 2024-01-05
Added
- Added ability to mock SRV records. Thanks @Siphonay for feature suggestion
Updated
- Updated gem version
- Updated gem documentation
[1.5.18] - 2024-01-03
Updated
- Updated gemspec
[1.5.17] - 2024-01-01
Updated
- Updated gemspecs
- Updated gem version
- Updated license
[1.5.16] - 2023-10-05
Updated
- Updated gemspecs
- Updated gem version
[1.5.15] - 2023-01-11
Added
- Added and tested Ruby 3.2.x support
- Added
changeloglint
Updated
- Updated
CircleCIconfig - Updated
lefthook/codeclimate/simplecov/pryconfigs - Updated gem deploy flow (tagging new release on master merge commit)
- Updated gem version, license
[1.5.14] - 2022-12-11
Added
- Added
cspelllinter - Added
markdownlintlinter - Added
shellchecklinter - Added
yamllintlinter
Fixed
- Fixed typos in project's codebase
- Fixed new project's linter issues
Updated
- Updated
CircleCIconfig - Updated
lefthooklinters aggregator config - Updated releasing script, gemspecs
- Updated gem version
[1.5.13] - 2022-12-01
Updated
- Updated releasing script, gemspecs, linter configs
- Updated gem version
[1.5.7 - 1.5.12] - 2022-11-30
Fixed
- Fixed releasing script (publisher git details)
[1.5.6] - 2022-11-30
Added
- Added new bunch of project linters
- Added auto deploy to RubyGems
- Added auto creating release notes on GitHub
Updated
- Updated gemspecs
- Updated
codeclimate/circleciconfigs - Updated gem development dependencies
- Updated gem version
Removed
- Removed
overcommitdependency
[1.5.5] - 2022-10-04
Updated
- Updated gemspecs
- Updated
codeclimate/circleciconfigs - Updated gem development dependencies
- Updated gem version
[1.5.4] - 2022-07-31
Updated
- Updated gemspecs
- Updated
rubocop/codeclimate/circleciconfigs - Updated gem development dependencies
- Updated gem version
[1.5.3] - 2022-05-18
Updated
- Updated gemspecs
- Updated
codeclimate/circleciconfigs - Updated gem development dependencies
- Updated gem version
[1.5.2] - 2022-03-10
Added
- Development environment guide
Updated
- Updated gemspecs
- Updated
codeclimate/circleciconfigs - Updated gem development dependencies
- Updated gem version
[1.5.1] - 2022-01-23
Updated
- Updated native Ruby test environment from 2.5 to 3.1
- Updated
codeclimate/circleciconfigs - Updated gem development dependencies
- Updated gem docs, version
[1.5.0] - 2021-12-29
Added
- Added Ruby 3.1.x compatibility
Updated
- Updated
rubocop/codeclimate/circleciconfigs - Updated gem development dependencies
- Updated gem docs, version
[1.4.4] - 2021-11-11
Updated
- Updated gem development dependencies
- Updated gem version
[1.4.3] - 2021-10-07
Updated
- Updated gem development dependencies
- Updated gem version
[1.4.2] - 2021-09-04
Updated
- Updated gem development dependencies
- Updated gem version
[1.4.1] - 2021-08-16
Updated
- Updated gem development dependencies
- Updated gem version
Changed
fakertoffakerdevelopment dependency
[1.4.0] - 2021-07-13
Added
- Added ability to use internationalized host names. All host names in UTF-8 will be represented as Punycode
- Added
simpleidnas runtime dependency - Added
DnsMock::Representer::Punycode, tests
records = {
'mañana.com' => {
mx: %w[másletras.mañana.com]
}
}
DnsMock.start_server(port: 5300, records: records)
dig @localhost -p 5300 MX xn--maana-pta.com
; <<>> DiG 9.10.6 <<>> @localhost -p 5300 MX xn--maana-pta.com
; (2 servers found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4612
;; flags: rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;xn--maana-pta.com. IN MX
;; ANSWER SECTION:
xn--maana-pta.com. 1 IN MX 10 xn--msletras-8ya.xn--maana-pta.com.
;; Query time: 0 msec
;; SERVER: 127.0.0.1#5300(127.0.0.1)
;; WHEN: Tue Jul 13 15:38:47 EEST 2021
;; MSG SIZE rcvd: 79
Changed
- Refactored
DnsMock::Representer::RdnsLookup, tests - Updated
DnsMock::Record::Factory::Base - Updated
DnsMock::Server::RecordsDictionaryBuilder, tests - Updated
DnsMock::Record::Factory::Cname, tests - Updated
DnsMock::Record::Factory::Mx, tests - Updated
DnsMock::Record::Factory::Ns, tests - Updated
DnsMock::Record::Factory::Ptr, tests - Updated
DnsMock::Record::Factory::Soa, tests - Updated
DnsMock::ContextGeneratorHelper, tests - Updated reek config
- Updated gem documentation, version
[1.3.1] - 2021-07-07
Changed
- Updated gem development dependencies
- Updated
rubocop/codeclimateconfig - Updated gem documentation, version
[1.3.0] - 2021-06-14
Added
- Detecting random available port via OS features. Thanks @ioquatix for suggestion 🚀
Removed
- Removed
DnsMock::Server::RandomAvailablePort, tests
Changed
- Updated
DnsMock::Serverclass - Updated tests helpers/tests
- Updated gem development dependencies
Fixed
- Test coverage issues
[1.2.4] - 2021-05-25
Changed
- Updated gem development dependencies
- Updated
circleciconfig
[1.2.3] - 2021-05-11
Changed
- Updated gem development dependencies
- Updated
circleciconfig
[1.2.2] - 2021-05-06
Changed
- Updated gem development dependencies
- Updated
rubocop/codeclimateconfig - Updated
circleciconfig
[1.2.1] - 2021-03-23
Changed
- Updated gem development dependencies
- Updated
rubocop/codeclimateconfig - Updated gem documentation
- Updated tests
[1.2.0] - 2021-02-04
Added
- Ability to specify custom priority of MX record if it needed
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.
records = {
'example.com' => {
mx: %w[.:0 mx1.domain.com:10 mx2.domain.com:10 mx3.domain.com] # .:0 - null MX record
}
}
DnsMock.start_server(records: records)
dig @localhost -p 5300 MX example.com
; <<>> DiG 9.10.6 <<>> @localhost -p 5300 MX example.com
;; ANSWER SECTION:
example.com. 1 IN MX 0 .
example.com. 1 IN MX 10 mx1.domain.com.
example.com. 1 IN MX 10 mx2.domain.com.
example.com. 1 IN MX 40 mx3.domain.com.
;; Query time: 0 msec
;; SERVER: 127.0.0.1#5300(127.0.0.1)
;; WHEN: Wed Feb 03 20:19:51 EET 2021
;; MSG SIZE rcvd: 102
[1.1.0] - 2021-02-01
Added
- RSpec native support. DnsMock helper help you to simplify integration with RSpec
# spec/support/config/dns_mock.rb
require 'dns_mock/test_framework/rspec'
RSpec.configure do |config|
config.include DnsMock::TestFramework::RSpec::Helper
end
# your awesome first_a_record_spec.rb
RSpec.describe FirstARecord do
subject(:service) do
described_class.call(
hostname,
dns_gateway_host: 'localhost',
dns_gateway_port: dns_mock_server.port
)
end
let(:hostname) { 'example.com' }
let(:first_a_record) { '1.2.3.4' }
let(:records) { { hostname => { a: [first_a_record] } } }
before { dns_mock_server.assign_mocks(records) }
it { is_expected.to eq(first_a_record) }
end
[1.0.0] - 2021-01-29
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:
DnsMock.start_server(port: 5300)
dig @localhost -p 5300 A example.com
; <<>> DiG 9.10.6 <<>> @localhost -p 5300 A example.com
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38632
;; flags: rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;example.com. IN A
;; Query time: 0 msec
;; SERVER: 127.0.0.1#5300(127.0.0.1)
;; WHEN: Fri Jan 29 08:21:30 EET 2021
;; MSG SIZE rcvd: 40
If you want raise an exception when record not found, just start DnsMock with exception_if_not_found: true option:
DnsMock.start_server(exception_if_not_found: true)
Changed
- Updated
DnsMock.start_server - Updated
DnsMock::Server - Updated
DnsMock::Response::Message - Updated
DnsMock::Response::Answer - Updated gem version, readme
[0.2.1] - 2021-01-27
Fixed
- RDNS lookup representation for IP address in PTR record feature.
[0.2.0] - 2021-01-26
Added
- PTR record support. 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.
records = {
'1.2.3.4' => {
ptr: %w[domain_1.com domain_2.com]
}
}
DnsMock.start_server(records: records)
dig @localhost -p 5300 -x 1.2.3.4
; <<>> DiG 9.10.6 <<>> @localhost -p 5300 -x 1.1.1.1
; (2 servers found)
;; ANSWER SECTION:
4.3.2.1.in-addr.arpa. 1 IN PTR domain_1.com.
4.3.2.1.in-addr.arpa. 1 IN PTR domain_2.com.
;; Query time: 0 msec
;; SERVER: 127.0.0.1#5300(127.0.0.1)
;; WHEN: Mon Jan 25 19:58:39 EET 2021
;; MSG SIZE rcvd: 98
[0.1.0] - 2021-01-19
Added
- First release of
DnsMock. Thanks @le0pard for idea & support 🚀