devdnsd 3.1.2 → 4.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.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -2
  3. data/.rubocop.yml +82 -0
  4. data/.travis-gemfile +4 -10
  5. data/.travis.yml +11 -5
  6. data/CHANGELOG.md +11 -0
  7. data/Gemfile +9 -8
  8. data/README.md +4 -5
  9. data/Rakefile +22 -6
  10. data/bin/devdnsd +42 -36
  11. data/config/devdnsd_config.sample +11 -11
  12. data/devdnsd.gemspec +7 -6
  13. data/doc/DevDNSd.html +6 -6
  14. data/doc/DevDNSd/{ApplicationMethods/Aliases.html → Aliases.html} +96 -100
  15. data/doc/DevDNSd/Application.html +2170 -1084
  16. data/doc/DevDNSd/Configuration.html +63 -33
  17. data/doc/DevDNSd/Errors.html +3 -3
  18. data/doc/DevDNSd/Errors/InvalidRule.html +3 -3
  19. data/doc/DevDNSd/{ApplicationMethods/System.html → OSX.html} +116 -489
  20. data/doc/DevDNSd/Rule.html +448 -749
  21. data/doc/DevDNSd/{ApplicationMethods/Server.html → Server.html} +77 -73
  22. data/doc/DevDNSd/System.html +895 -0
  23. data/doc/DevDNSd/Version.html +6 -6
  24. data/doc/_index.html +28 -27
  25. data/doc/class_list.html +6 -2
  26. data/doc/file.README.html +8 -9
  27. data/doc/file_list.html +5 -1
  28. data/doc/frames.html +1 -1
  29. data/doc/index.html +8 -9
  30. data/doc/js/full_list.js +4 -1
  31. data/doc/method_list.html +106 -84
  32. data/doc/top-level-namespace.html +3 -3
  33. data/lib/devdnsd.rb +10 -8
  34. data/lib/devdnsd/aliases.rb +171 -0
  35. data/lib/devdnsd/application.rb +93 -704
  36. data/lib/devdnsd/configuration.rb +20 -11
  37. data/lib/devdnsd/errors.rb +1 -1
  38. data/lib/devdnsd/osx.rb +217 -0
  39. data/lib/devdnsd/rule.rb +65 -94
  40. data/lib/devdnsd/server.rb +118 -0
  41. data/lib/devdnsd/system.rb +102 -0
  42. data/lib/devdnsd/version.rb +3 -3
  43. data/locales/en.yml +17 -16
  44. data/locales/it.yml +17 -16
  45. data/spec/devdnsd/application_spec.rb +188 -184
  46. data/spec/devdnsd/configuration_spec.rb +2 -2
  47. data/spec/devdnsd/rule_spec.rb +33 -34
  48. data/spec/resolver_helper.rb +10 -27
  49. data/spec/spec_helper.rb +21 -7
  50. metadata +36 -21
  51. data/doc/DevDNSd/ApplicationMethods.html +0 -125
  52. data/doc/DevDNSd/ApplicationMethods/System/ClassMethods.html +0 -538
  53. data/spec/coverage_helper.rb +0 -20
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1b648c4b43870869cc0ca377f48c02ebeab6f1ac
4
- data.tar.gz: 64dc8c2906f4a3527734422b859e42948826cdf1
3
+ metadata.gz: e86c63c0df9fb463d522f48bfb6bb1bba34ca264
4
+ data.tar.gz: e0d478ea1c12a89749ab6e7e1992d861bcc78a47
5
5
  SHA512:
6
- metadata.gz: e5054c5973bc03b74ec5d260e208f63382b54f838b0f847f74078a42cdbbc3d372b2c858b91da79b6cd573d2ba15c91457e23d64e0bfde2a5c9430ab2ed6f6d8
7
- data.tar.gz: 75adba2ac56d7ca682a55b833578d04d4f3a3f881b92c511cc9a314df80f4c9f6d3d489df0bc15cc77f2f90b67b70e22563fcba8e569961afb4c4cc22ddec1c5
6
+ metadata.gz: 7b241da3f9e2ce257d4ebe5865f97f5b78cf697f9015f5f017c9547fc9928d9b7eef9af51f20a95ec6854eb73e6880498d431f7ea68f90818a6a2c22afcbe034
7
+ data.tar.gz: 46fc7084e593df3e1ecf7bd23cbd973af2946f7bc575a7dd811c674b37775d6aad4f1749b21792bfe48e8f93ec5e36be351ed2296a648726ab78538f44a9b2bf
data/.gitignore CHANGED
@@ -2,7 +2,7 @@ Gemfile.lock
2
2
  tester.rb
3
3
  coverage/
4
4
  pkg/
5
- utils/
5
+ tmp/
6
6
  .idea/
7
7
  .yardoc/
8
- .bundle/
8
+ .bundle
@@ -0,0 +1,82 @@
1
+ #
2
+ # This file is part of the devdnsd gem. Copyright (C) 2013 and above Shogun <shogun@cowtech.it>.
3
+ # Licensed under the MIT license, which can be found at http://www.opensource.org/licenses/mit-license.php.
4
+ #
5
+
6
+ AllCops:
7
+ TargetRubyVersion: 2.3
8
+ Include:
9
+ - "*/**/.rb"
10
+ - "config.ru"
11
+ - "Rakefile"
12
+ - "Gemfile"
13
+ Exclude:
14
+ - "config/**/*"
15
+ - "db/**/*"
16
+ - "spec/**/*"
17
+
18
+ Alias:
19
+ Enabled: false
20
+
21
+ AsciiComments:
22
+ Enabled: false
23
+
24
+ BracesAroundHashParameters:
25
+ Enabled: false
26
+
27
+ CyclomaticComplexity:
28
+ Max: 15
29
+
30
+ ClassLength:
31
+ Max: 150
32
+
33
+ Documentation:
34
+ Enabled: false
35
+
36
+ EachWithObject:
37
+ Enabled: false
38
+
39
+ FormatString:
40
+ Enabled: false
41
+
42
+ FrozenStringLiteralComment:
43
+ Enabled: false
44
+
45
+ IndentationConsistency:
46
+ Enabled: false
47
+
48
+ LineLength:
49
+ Max: 160
50
+
51
+ MethodLength:
52
+ Max: 15
53
+
54
+ ModuleLength:
55
+ Max: 200
56
+
57
+ MultilineMethodCallIndentation:
58
+ Enabled: false
59
+
60
+ ParameterLists:
61
+ Max: 8
62
+
63
+ RegexpLiteral:
64
+ Enabled: false
65
+
66
+ SignalException:
67
+ Enabled: false
68
+
69
+ SpaceInsideHashLiteralBraces:
70
+ Enabled: false
71
+
72
+ StringLiterals:
73
+ Enabled: false
74
+
75
+ StringLiteralsInInterpolation:
76
+ Enabled: false
77
+
78
+ StringReplacement:
79
+ Enabled: false
80
+
81
+ WordArray:
82
+ Enabled: false
@@ -9,13 +9,7 @@ source "http://rubygems.org"
9
9
  gemspec
10
10
 
11
11
  # Testing
12
- gem "rspec", "~> 2.14.1"
13
- gem "rake", "~> 10.1.1"
14
- gem "simplecov", ">= 0.8.2"
15
- gem "coveralls", ">= 0.7.0", require: false
16
-
17
- platforms :rbx do
18
- gem "racc"
19
- gem "rubysl", "~> 2.0"
20
- gem "psych"
21
- end
12
+ gem "rspec", "~> 3.4"
13
+ gem "rake", "~> 11.0"
14
+ gem "simplecov", "~> 0.11"
15
+ gem "coveralls", "~> 0.8", require: false
@@ -1,9 +1,15 @@
1
+ #
2
+ # This file is part of the bovem gem. Copyright (C) 2013 and above Shogun <shogun@cowtech.it>.
3
+ # Licensed under the MIT license, which can be found at http://www.opensource.org/licenses/mit-license.php.
4
+ #
5
+
1
6
  language: ruby
2
7
  rvm:
3
- - 2.0.0
4
- - 2.1.0
5
- - rbx
6
- script: bundle exec rake spec:coverage
8
+ - 2.3.0
9
+ script: bundle exec rake spec:ci
7
10
  gemfile: .travis-gemfile
8
11
  notifications:
9
- email: false
12
+ email: false
13
+ addons:
14
+ code_climate:
15
+ repo_token: bac83dc8b02f38cc87f2d3b6dab710a3b6c80cca3772687f5a6c3b8697dce9c3
@@ -1,3 +1,14 @@
1
+ ### 4.0.0 / 2016-03-30
2
+
3
+ * Refactored `DevDNSd::Application`.
4
+ * Changed signatures of `DevDNSd::Rule.create` and `DevDNSd::Rule#initialize`.
5
+ * Changed signatures of `DevDNSd::Configuration.add_rule`.
6
+ * Removed `DevDNSd::Aliases#is_ipv4?` and `DevDNSd::Aliases#is_ipv6?` aliases.
7
+ * Dropped support for Ruby < 2.3.
8
+ * Replaced `rexec` with `process-daemon`.
9
+ * Updated dependencies.
10
+ * Linted code.
11
+
1
12
  ### 3.1.2 / 2014-03-29
2
13
 
3
14
  * Minor fixes.
data/Gemfile CHANGED
@@ -9,13 +9,14 @@ source "http://rubygems.org"
9
9
  gemspec
10
10
 
11
11
  # Testing
12
- gem "rspec", "~> 2.14.1"
13
- gem "rake", "~> 10.1.1"
12
+ gem "rspec", "~> 3.4"
13
+ gem "rake", "~> 11.0"
14
14
 
15
15
  # Documentation
16
- gem "simplecov", ">= 0.8.2"
17
- gem "coveralls", ">= 0.7.0", require: false
18
- gem "pry", ">= 0"
19
- gem "yard", ">= 0.8.7.3"
20
- gem "kramdown", ">= 1.3.2"
21
- gem "github-markup", ">= 1.0.3"
16
+ gem "simplecov", "~> 0.11"
17
+ gem "coveralls", "~> 0.8", require: false
18
+ gem "pry", "~> 0.10"
19
+ gem "yard", "~> 0.8"
20
+ gem "kramdown", "~> 1.10"
21
+ gem "github-markup", "~> 1.4"
22
+ gem "rubocop", "~> 0.39"
data/README.md CHANGED
@@ -5,11 +5,10 @@
5
5
  [![Build Status](https://secure.travis-ci.org/ShogunPanda/devdnsd.png?branch=master)](http://travis-ci.org/ShogunPanda/devdnsd)
6
6
  [![Code Climate](https://codeclimate.com/github/ShogunPanda/devdnsd.png)](https://codeclimate.com/github/ShogunPanda/devdnsd)
7
7
  [![Coverage Status](https://coveralls.io/repos/ShogunPanda/devdnsd/badge.png)](https://coveralls.io/r/ShogunPanda/devdnsd)
8
- [![Bitdeli Trend](https://d2weczhvl823v0.cloudfront.net/ShogunPanda/devdnsd/trend.png)](https://bitdeli.com/free "Bitdeli Badge")
9
8
 
10
9
  A small DNS server to enable local .dev domain resolution.
11
10
 
12
- http://sw.cow.tc/devdnsd
11
+ http://sw.cowtech.it/devdnsd
13
12
 
14
13
  http://rdoc.info/gems/devdnsd
15
14
 
@@ -36,8 +35,8 @@ Of course, DevDNSd is inspired by [pow](https://github.com/37signals/pow), but i
36
35
  If you experience slowness in resolving host from clients (Chrome, curl etc.) when you don't specify the address type, make sure you have both a `A` and `AAAA` rules set for the same host, like this:
37
36
 
38
37
  ```ruby
39
- config.add_rule(/\.dev$/, "127.0.0.1")
40
- config.add_rule(/\.dev$/, "::1", :AAAA)
38
+ config.add_rule(match: /\.dev$/, reply: "127.0.0.1")
39
+ config.add_rule(match: /\.dev$/, reply: "::1", type: :AAAA)
41
40
  ```
42
41
 
43
42
  ## Advanced usage
@@ -95,7 +94,7 @@ You can, anyway, run the software as DNS server.
95
94
 
96
95
  ## Copyright
97
96
 
98
- This software have been made possible by the awesome job of [Samuel Williams](https://github.com/ioquatix), with his [RubyDNS](https://github.com/rubydns) and [RExec](https://github.com/rexec) gems.
97
+ This software have been made possible by the awesome job of [Samuel Williams](https://github.com/ioquatix), with his [RubyDNS](https://github.com/rubydns) and [process-daemon](https://github.com/process-daemon) gems.
99
98
 
100
99
  Copyright (C) 2013 and above Shogun (shogun@cowtech.it).
101
100
 
data/Rakefile CHANGED
@@ -7,23 +7,39 @@
7
7
  require "bundler/gem_tasks"
8
8
  require "rspec/core/rake_task"
9
9
 
10
+ # Compatibility layer for Rake 11.0
11
+ Rake.application.class.send(:alias_method, :last_comment, :last_description) unless Rake.application.respond_to?(:last_comment)
12
+
10
13
  RSpec::Core::RakeTask.new("spec")
11
- RSpec::Core::RakeTask.new("spec:coverage") { |t| t.ruby_opts = "-r./spec/coverage_helper" }
12
14
 
13
- desc "Generate the documentation"
15
+ RSpec::Core::RakeTask.new("spec:coverage") do
16
+ ENV["COVERAGE"] = "true"
17
+ end
18
+
19
+ RSpec::Core::RakeTask.new("spec:ci") do
20
+ ENV["COVERAGE"] = "true"
21
+ ENV["NO_COLOR"] = "true"
22
+ end
23
+
24
+ desc "Performs linting of the code using rubocop"
25
+ task "lint" do
26
+ Kernel.exec("rubocop -ED bin lib")
27
+ end
28
+
29
+ desc "Generates the documentation"
14
30
  task :docs do
15
31
  system("yardoc") || raise("Failed Execution of: yardoc")
16
32
  end
17
-
18
- desc "Get the current release version"
33
+
34
+ desc "Gets the current release version"
19
35
  task :version, :with_name do |_, args|
20
36
  gem = Bundler::GemHelper.instance.gemspec
21
37
  puts [args[:with_name] == "true" ? gem.name : nil, gem.version].compact.join("-")
22
38
  end
23
39
 
24
- desc "Prepare the release"
40
+ desc "Prepares the release"
25
41
  task :prerelease => ["spec:coverage", "docs"] do
26
42
  ["git add -A", "git commit -am \"Version #{Bundler::GemHelper.instance.gemspec.version}\""].each do |cmd|
27
43
  system(cmd) || raise("Failed Execution of: #{cmd}")
28
44
  end
29
- end
45
+ end
@@ -5,94 +5,100 @@
5
5
  # Licensed under the MIT license, which can be found at http://www.opensource.org/licenses/mit-license.php.
6
6
  #
7
7
 
8
- require "rubygems"
8
+ $:.unshift(File.absolute_path(File.dirname(__FILE__) + "/../lib/"))
9
9
  require "devdnsd"
10
10
 
11
11
  Bovem::Application.create do
12
- localizer = Lazier::Localizer.new(:devdnsd, ::File.absolute_path(::Pathname.new(::File.dirname(__FILE__)).to_s + "/../locales/")).i18n
12
+ i18n = Bovem::I18n.new(root: "devdnsd", path: ::Pathname.new(::File.dirname(__FILE__)).to_s + "/../locales/")
13
13
  name "DevDNSd"
14
- description localizer.application_description
14
+ description i18n.application_description
15
15
  version DevDNSd::Version::STRING
16
16
 
17
- option :configuration, [], {type: String, help: localizer.application_help_configuration, default: "~/.devdnsd/default.conf", meta: localizer.application_meta_file}
18
- option :tld, [], {type: String, help: localizer.application_help_tld, default: "dev", meta: localizer.application_meta_domain}
19
- option :port, [], {type: Integer, help: localizer.application_help_port, default: 7771, meta: localizer.application_meta_port}
20
- option :pid_file, [:P, "pid-file"], {type: String, help: localizer.application_help_pid_file, default: "~/.devdnsd/daemon.pid", meta: localizer.application_meta_file}
21
- option :log_file, [:l, "log-file"], {type: String, help: localizer.application_help_log_file, default: "~/.devdnsd/daemon.log", meta: localizer.application_meta_file}
22
- option :log_level, [:L, "log-level"], {type: Integer, help: localizer.application_help_log_level, default: 1, meta: localizer.application_meta_level}
17
+ option :configuration, [], {type: String, help: i18n.application_help_configuration, default: "~/.devdnsd/default.conf", meta: i18n.application_meta_file}
18
+ option :tld, [], {type: String, help: i18n.application_help_tld, default: "dev", meta: i18n.application_meta_domain}
19
+ option :port, [], {type: Integer, help: i18n.application_help_port, default: 7771, meta: i18n.application_meta_port}
20
+ option :pid_file, [:P, "pid-file"], {type: String, help: i18n.application_help_pid_file, default: "~/.devdnsd/daemon.pid", meta: i18n.application_meta_file}
21
+ option :log_file, [:l, "log-file"], {type: String, help: i18n.application_help_log_file, default: "~/.devdnsd/daemon.log", meta: i18n.application_meta_file}
22
+ option :log_level, [:L, "log-level"], {type: Integer, help: i18n.application_help_log_level, default: 1, meta: i18n.application_meta_level}
23
23
 
24
24
  command :start do
25
- description localizer.command_start
26
- option :foreground, [:n, "foreground"], {help: localizer.application_help_foreground}
25
+ description i18n.command_start
26
+ option :foreground, [:n, "foreground"], {help: i18n.application_help_foreground}
27
27
  action { |command| DevDNSd::Application.instance(command).action_start }
28
28
  end
29
29
 
30
30
  command :status do
31
- description localizer.command_status
32
- action { |command|
31
+ description i18n.command_status
32
+ action do |command|
33
33
  command.application.options[:log_file].set("STDOUT")
34
34
  DevDNSd::Application.instance(command).action_status
35
- }
35
+ end
36
36
  end
37
37
 
38
38
  command :stop do
39
- description localizer.command_stop
39
+ description i18n.command_stop
40
40
  action { |command| DevDNSd::Application.instance(command).action_stop }
41
41
  end
42
42
 
43
43
  command :restart do
44
- description localizer.command_restart
44
+ description i18n.command_restart
45
45
  action { |command| DevDNSd::Application.instance(command).action_restart }
46
46
  end
47
47
 
48
48
  command :install do
49
- description localizer.command_install
50
- action { |command|
49
+ description i18n.command_install
50
+ action do |command|
51
51
  command.application.options[:log_file].set("STDOUT")
52
52
  DevDNSd::Application.instance(command).action_install
53
- }
53
+ end
54
54
  end
55
55
 
56
56
  command :uninstall do
57
- description localizer.command_uninstall
58
- action { |command|
57
+ description i18n.command_uninstall
58
+ action do |command|
59
59
  command.application.options[:log_file].set("STDOUT")
60
60
  DevDNSd::Application.instance(command).action_uninstall
61
- }
61
+ end
62
62
  end
63
63
 
64
64
  command :clean do
65
- description localizer.command_clean
66
- action { |command|
65
+ description i18n.command_clean
66
+ action do |command|
67
67
  command.application.options[:log_file].set("STDOUT")
68
68
  app = DevDNSd::Application.instance(command)
69
69
  app.logger.warn(app.i18n.admin_privileges_warning)
70
70
  app.dns_update
71
- }
71
+ end
72
72
  end
73
73
 
74
74
  command :aliases do
75
- description localizer.command_aliases
76
- option :interface, [], {type: String, help: localizer.application_help_interface, default: "lo0", meta: localizer.application_meta_interface}
77
- option :addresses, [], {type: Array, help: localizer.application_help_addresses, meta: localizer.application_meta_addresses}
78
- option :start_address, [:s, "start-address"], {type: String, help: localizer.application_help_start_address, default: "10.0.0.1", meta: localizer.application_meta_address}
79
- option :aliases, [:S], {type: Integer, help: localizer.application_help_aliases, default: 5, meta: localizer.application_meta_aliases}
80
- option :add_command, [:A, "add-command"], {type: String, help: localizer.application_help_add_command, default: "sudo ifconfig {{interface}} alias {{address}}", meta: localizer.application_meta_command}
81
- option :remove_command, [:R, "remove-command"], {type: String, help: localizer.application_help_remove_command, default: "sudo ifconfig {{interface}} -alias {{address}}", meta: localizer.application_meta_command}
82
- option :dry_run, [:n, "dry-run"], {help: localizer.application_help_dry_run}
75
+ description i18n.command_aliases
76
+ option :interface, [], {type: String, help: i18n.application_help_interface, default: "lo0", meta: i18n.application_meta_interface}
77
+ option :addresses, [], {type: Array, help: i18n.application_help_addresses, meta: i18n.application_meta_addresses}
78
+ option :start_address, [:s, "start-address"], {
79
+ type: String, help: i18n.application_help_start_address, default: "10.0.0.1", meta: i18n.application_meta_address
80
+ }
81
+ option :aliases, [:S], {type: Integer, help: i18n.application_help_aliases, default: 5, meta: i18n.application_meta_aliases}
82
+ option :add_command, [:A, "add-command"], {
83
+ type: String, help: i18n.application_help_add_command, default: "sudo ifconfig {{interface}} alias {{address}}", meta: i18n.application_meta_command
84
+ }
85
+ option :remove_command, [:R, "remove-command"], {
86
+ type: String, help: i18n.application_help_remove_command, default: "sudo ifconfig {{interface}} -alias {{address}}", meta: i18n.application_meta_command
87
+ }
88
+ option :dry_run, [:n, "dry-run"], {help: i18n.application_help_dry_run}
83
89
 
84
90
  command :add do
85
- description localizer.command_add
91
+ description i18n.command_add
86
92
  action { |command| DevDNSd::Application.instance(command).action_add(command.parent.get_options) }
87
93
  end
88
94
 
89
95
  command :remove do
90
- description localizer.command_remove
96
+ description i18n.command_remove
91
97
  action { |command| DevDNSd::Application.instance(command).action_remove(command.parent.get_options) }
92
98
  end
93
99
 
94
100
  action do |command|
95
- self.commands["add"].execute(command.options[:dry_run].value)
101
+ commands["add"].execute(command.options[:dry_run].value)
96
102
  end
97
103
  end
98
104
 
@@ -1,23 +1,23 @@
1
1
  config.log_file = "/tmp/devdnsd-test-log.log"
2
2
 
3
- config.add_rule("match_1.dev", "10.0.1.1")
3
+ config.add_rule(match: "match_1.dev", reply: "10.0.1.1")
4
4
 
5
- config.add_rule("match_2.dev", "10.0.2.1", :MX)
5
+ config.add_rule(match: "match_2.dev", reply: "10.0.2.1", type: :MX)
6
6
 
7
- config.add_rule("match_3.dev") do "10.0.3.1" end
7
+ config.add_rule(match: "match_3.dev") do "10.0.3.1" end
8
8
 
9
- config.add_rule("match_4.dev", :CNAME) do "cowtech.it" end
9
+ config.add_rule(match: "match_4.dev", type: :CNAME) do "cowtech.it" end
10
10
 
11
- config.add_rule(/match_5_(\d+)\.dev/, "ns.cowtech.it", :NS)
11
+ config.add_rule(match: /match_5_(\d+)\.dev/, reply: "ns.cowtech.it", type: :NS)
12
12
 
13
- config.add_rule(/match_6_(\d+).dev/, "10.0.6.$1", :PTR)
13
+ config.add_rule(match: /match_6_(\d+).dev/, reply: "10.0.6.$1", type: :PTR)
14
14
 
15
- config.add_rule(/match_7_(\d+).dev/) do "10.0.7.$1" end
15
+ config.add_rule(match: /match_7_(\d+).dev/) do "10.0.7.$1" end
16
16
 
17
- config.add_rule(/match_8_(\d+).dev/, :PTR) do "10.0.8.$1" end
17
+ config.add_rule(match: /match_8_(\d+).dev/, type: :PTR) do "10.0.8.$1" end
18
18
 
19
- config.add_rule("match_9.dev") do false end
19
+ config.add_rule(match: "match_9.dev") do false end
20
20
 
21
- config.add_rule("match_10.dev", [:A, :MX]) do |match, type, transaction| type == :A ? "10.0.10.1" : "10.0.10.2" end
21
+ config.add_rule(match: "match_10.dev", type: [:A, :MX]) do |match, type, transaction| type == :A ? "10.0.10.1" : "10.0.10.2" end
22
22
 
23
- config.add_rule("quit.dev") do DevDNSd::Application.quit end
23
+ config.add_rule(match: "quit.dev") do DevDNSd::Application.quit end
@@ -9,7 +9,7 @@ require "./lib/devdnsd/version"
9
9
  Gem::Specification.new do |gem|
10
10
  gem.name = "devdnsd"
11
11
  gem.version = DevDNSd::Version::STRING
12
- gem.homepage = "http://sw.cow.tc/devdnsd"
12
+ gem.homepage = "http://sw.cowtech.it/devdnsd"
13
13
  gem.summary = %q{A small DNS server to enable local domain resolution.}
14
14
  gem.description = %q{A small DNS server to enable local domain resolution.}
15
15
  gem.rubyforge_project = "devdnsd"
@@ -23,12 +23,13 @@ Gem::Specification.new do |gem|
23
23
  gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
24
24
  gem.require_paths = ["lib"]
25
25
 
26
- gem.required_ruby_version = ">= 1.9.3"
26
+ gem.required_ruby_version = ">= 2.3.0"
27
27
 
28
- gem.add_dependency("bovem", "~> 3.0.5")
29
- gem.add_dependency("rubydns", "~> 0.7.0")
30
- gem.add_dependency("mustache", "~> 0.99.5")
31
- gem.add_dependency("plist", "~> 3.1.0")
28
+ gem.add_dependency("bovem", "~> 4.0")
29
+ gem.add_dependency("rubydns", "~> 1.0")
30
+ gem.add_dependency("process-daemon", "~> 1.0")
31
+ gem.add_dependency("mustache", "~> 1.0")
32
+ gem.add_dependency("plist", "~> 3.2")
32
33
  end
33
34
 
34
35