devdnsd 1.7.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,6 +1,6 @@
1
1
  # encoding: utf-8
2
2
  #
3
- # This file is part of the devdnsd gem. Copyright (C) 2012 and above Shogun <shogun_panda@me.com>.
3
+ # This file is part of the devdnsd gem. Copyright (C) 2013 and above Shogun <shogun_panda@me.com>.
4
4
  # Licensed under the MIT license, which can be found at http://www.opensource.org/licenses/mit-license.php.
5
5
  #
6
6
 
@@ -1,6 +1,6 @@
1
1
  # encoding: utf-8
2
2
  #
3
- # This file is part of the devdnsd gem. Copyright (C) 2012 and above Shogun <shogun_panda@me.com>.
3
+ # This file is part of the devdnsd gem. Copyright (C) 2013 and above Shogun <shogun_panda@me.com>.
4
4
  # Licensed under the MIT license, which can be found at http://www.opensource.org/licenses/mit-license.php.
5
5
  #
6
6
 
@@ -18,11 +18,11 @@ describe DevDNSd::Rule do
18
18
  end
19
19
 
20
20
  it("should create a rule with arguments and no block") do
21
- rule = DevDNSd::Rule.new("MATCH", "REPLY", "TYPE", {:a => :b})
21
+ rule = DevDNSd::Rule.new("MATCH", "REPLY", "TYPE", {a: :b})
22
22
  expect(rule.match).to eq("MATCH")
23
23
  expect(rule.reply).to eq("REPLY")
24
24
  expect(rule.type).to eq("TYPE")
25
- expect(rule.options).to eq({:a => :b})
25
+ expect(rule.options).to eq({a: :b})
26
26
  expect(rule.block).to be_nil
27
27
  end
28
28
 
@@ -93,11 +93,11 @@ describe DevDNSd::Rule do
93
93
  end
94
94
 
95
95
  it("should create a rule with host, reply and type") do
96
- rule = DevDNSd::Rule.create("MATCH", "REPLY", "TYPE", {:a => :b})
96
+ rule = DevDNSd::Rule.create("MATCH", "REPLY", "TYPE", {a: :b})
97
97
  expect(rule.match).to eq("MATCH")
98
98
  expect(rule.reply).to eq("REPLY")
99
99
  expect(rule.type).to eq("TYPE")
100
- expect(rule.options).to eq({:a => :b})
100
+ expect(rule.options).to eq({a: :b})
101
101
  expect(rule.block).to be_nil
102
102
  end
103
103
 
@@ -134,11 +134,11 @@ describe DevDNSd::Rule do
134
134
 
135
135
  describe "::symbol_to_resource_class" do
136
136
  it("should convert a symbol to a resource class") do
137
- expect(DevDNSd::Rule.symbol_to_resource_class(:A)).to eq(Resolv::DNS::Resource::IN::A)
137
+ expect(DevDNSd::Rule.symbol_to_resource_class(:A, :en)).to eq(Resolv::DNS::Resource::IN::A)
138
138
  end
139
139
 
140
140
  it("should fail for a invalid class") do
141
- expect { DevDNSd::Rule.symbol_to_resource_class(:Invalid) }.to raise_error(DevDNSd::Errors::InvalidRule)
141
+ expect { DevDNSd::Rule.symbol_to_resource_class(:Invalid, :en) }.to raise_error(DevDNSd::Errors::InvalidRule)
142
142
  end
143
143
  end
144
144
  end
data/spec/spec_helper.rb CHANGED
@@ -1,12 +1,11 @@
1
1
  # encoding: utf-8
2
2
  #
3
- # This file is part of the devdnsd gem. Copyright (C) 2012 and above Shogun <shogun_panda@me.com>.
3
+ # This file is part of the devdnsd gem. Copyright (C) 2013 and above Shogun <shogun_panda@me.com>.
4
4
  # Licensed under the MIT license, which can be found at http://www.opensource.org/licenses/mit-license.php.
5
5
  #
6
6
 
7
7
  require "rubygems"
8
8
  require "bundler/setup"
9
- require "coverage_helper"
10
9
  require "devdnsd"
11
10
  require "net/dns"
12
11
 
data/utils/tester.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
  # encoding: utf-8
3
3
  #
4
- # This file is part of the devdnsd gem. Copyright (C) 2012 and above Shogun <shogun_panda@me.com>.
4
+ # This file is part of the devdnsd gem. Copyright (C) 2013 and above Shogun <shogun_panda@me.com>.
5
5
  # Licensed under the MIT license, which can be found at http://www.opensource.org/licenses/mit-license.php.
6
6
  #
7
7
 
@@ -13,18 +13,15 @@ require "net/dns"
13
13
  # Patch to avoid resolving of hostname containing numbers.
14
14
  class Net::DNS::Resolver
15
15
  def is_ip_address?(addr)
16
+ ipv6_norm = [/\A[\dA-Fa-f]{1,4}(:[\dA-Fa-f]{1,4})*\Z/, /\A[\dA-Fa-f]{1,4}(:[\dA-Fa-f]{1,4})*::([\dA-Fa-f]{1,4}(:[\dA-Fa-f]{1,4})*)?\Z/, /\A::([\dA-Fa-f]{1,4}(:[\dA-Fa-f]{1,4})*)?\Z/]
17
+ ipv6_compat = [/\A[\dA-Fa-f]{1,4}(:[\dA-Fa-f]{1,4})*:/, /\A[\dA-Fa-f]{1,4}(:[\dA-Fa-f]{1,4})*::([\dA-Fa-f]{1,4}(:[\dA-Fa-f]{1,4})*:)?/, /\A::([\dA-Fa-f]{1,4}(:[\dA-Fa-f]{1,4})*:)?/]
18
+
16
19
  catch(:valid_ip) do
17
20
  if /\A(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\Z/ =~ addr
18
21
  throw(:valid_ip, true) if $~.captures.all? {|i| i.to_i < 256}
19
22
  else
20
23
  # IPv6 (normal)
21
- throw(:valid_ip, true) if /\A[\dA-Fa-f]{1,4}(:[\dA-Fa-f]{1,4})*\Z/ =~ addr
22
- throw(:valid_ip, true) if /\A[\dA-Fa-f]{1,4}(:[\dA-Fa-f]{1,4})*::([\dA-Fa-f]{1,4}(:[\dA-Fa-f]{1,4})*)?\Z/ =~ addr
23
- throw(:valid_ip, true) if /\A::([\dA-Fa-f]{1,4}(:[\dA-Fa-f]{1,4})*)?\Z/ =~ addr
24
- # IPv6 (IPv4 compat)
25
- throw(:valid_ip, true) if /\A[\dA-Fa-f]{1,4}(:[\dA-Fa-f]{1,4})*:/ =~ addr && valid_v4?($')
26
- throw(:valid_ip, true) if /\A[\dA-Fa-f]{1,4}(:[\dA-Fa-f]{1,4})*::([\dA-Fa-f]{1,4}(:[\dA-Fa-f]{1,4})*:)?/ =~ addr && valid_v4?($')
27
- throw(:valid_ip, true) if /\A::([\dA-Fa-f]{1,4}(:[\dA-Fa-f]{1,4})*:)?/ =~ addr && valid_v4?($')
24
+ throw(:valid_ip, true) if ipv6_norm.any? {|r| r =~ addr } || (ipv6_compat.any? {|r| r =~ addr } && valid_v4?($'))
28
25
  end
29
26
 
30
27
  false
@@ -54,8 +51,6 @@ class Net::DNS::Resolver
54
51
  packet.header.recursive = @config[:recursive] ? 1 : 0
55
52
  end
56
53
 
57
- # DNSSEC and TSIG stuff to be inserted here
58
-
59
54
  packet
60
55
  end
61
56
  end
@@ -76,24 +71,15 @@ def devdnsd_resolv(address = "match.dev", type = "ANY", nameserver = "127.0.0.1"
76
71
  tmpfile = "/tmp/devdnsd-test-tester-#{Time.now.strftime("%Y%m%d-%H:%M:%S")}"
77
72
 
78
73
  begin
79
- resolver = Net::DNS::Resolver.new(:nameservers => nameserver, :port => port.to_i, :recursive => false, :udp_timeout => 1, :log_file => tmpfile)
80
- response = resolver.search(address, type)
81
-
82
- response.answer.each do |answer|
74
+ Net::DNS::Resolver.new(:nameservers => nameserver, :port => port.to_i, :recursive => false, :udp_timeout => 1, :log_file => tmpfile).search(address, type).answer.each do |answer|
83
75
  type = answer.type.upcase.to_sym
84
- result = ""
85
-
86
- case type
87
- when :MX
88
- result = answer.exchange.gsub(/\.$/, "")
89
- when :CNAME
90
- result = answer.cname.gsub(/\.$/, "")
91
- when :NS
92
- result = answer.nsdname.gsub(/\.$/, "")
93
- when :PTR
94
- result = answer.ptrdname.gsub(/\.$/, "")
95
- else
96
- result = answer.address.to_s
76
+
77
+ result = case type
78
+ when :MX then answer.exchange.gsub(/\.$/, "")
79
+ when :CNAME then answer.cname.gsub(/\.$/, "")
80
+ when :NS then answer.nsdname.gsub(/\.$/, "")
81
+ when :PTR then answer.ptrdname.gsub(/\.$/, "")
82
+ else answer.address.to_s
97
83
  end
98
84
 
99
85
  rv << [result, type]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: devdnsd
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.0
4
+ version: 2.0.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-10-22 00:00:00.000000000 Z
12
+ date: 2013-02-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: mamertes
@@ -18,7 +18,7 @@ dependencies:
18
18
  requirements:
19
19
  - - ~>
20
20
  - !ruby/object:Gem::Version
21
- version: 1.2.0
21
+ version: 2.0.7
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
@@ -26,7 +26,7 @@ dependencies:
26
26
  requirements:
27
27
  - - ~>
28
28
  - !ruby/object:Gem::Version
29
- version: 1.2.0
29
+ version: 2.0.7
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: rubydns
32
32
  requirement: !ruby/object:Gem::Requirement
@@ -34,7 +34,7 @@ dependencies:
34
34
  requirements:
35
35
  - - ~>
36
36
  - !ruby/object:Gem::Version
37
- version: 0.5.2
37
+ version: 0.5.4
38
38
  type: :runtime
39
39
  prerelease: false
40
40
  version_requirements: !ruby/object:Gem::Requirement
@@ -42,7 +42,7 @@ dependencies:
42
42
  requirements:
43
43
  - - ~>
44
44
  - !ruby/object:Gem::Version
45
- version: 0.5.2
45
+ version: 0.5.4
46
46
  - !ruby/object:Gem::Dependency
47
47
  name: rexec
48
48
  requirement: !ruby/object:Gem::Requirement
@@ -59,134 +59,6 @@ dependencies:
59
59
  - - ~>
60
60
  - !ruby/object:Gem::Version
61
61
  version: 1.5.1
62
- - !ruby/object:Gem::Dependency
63
- name: rspec
64
- requirement: !ruby/object:Gem::Requirement
65
- none: false
66
- requirements:
67
- - - ~>
68
- - !ruby/object:Gem::Version
69
- version: 2.11.0
70
- type: :development
71
- prerelease: false
72
- version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
- requirements:
75
- - - ~>
76
- - !ruby/object:Gem::Version
77
- version: 2.11.0
78
- - !ruby/object:Gem::Dependency
79
- name: rake
80
- requirement: !ruby/object:Gem::Requirement
81
- none: false
82
- requirements:
83
- - - ~>
84
- - !ruby/object:Gem::Version
85
- version: 0.9.0
86
- type: :development
87
- prerelease: false
88
- version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
- requirements:
91
- - - ~>
92
- - !ruby/object:Gem::Version
93
- version: 0.9.0
94
- - !ruby/object:Gem::Dependency
95
- name: simplecov
96
- requirement: !ruby/object:Gem::Requirement
97
- none: false
98
- requirements:
99
- - - ~>
100
- - !ruby/object:Gem::Version
101
- version: 0.7.0
102
- type: :development
103
- prerelease: false
104
- version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
- requirements:
107
- - - ~>
108
- - !ruby/object:Gem::Version
109
- version: 0.7.0
110
- - !ruby/object:Gem::Dependency
111
- name: pry
112
- requirement: !ruby/object:Gem::Requirement
113
- none: false
114
- requirements:
115
- - - ! '>='
116
- - !ruby/object:Gem::Version
117
- version: '0'
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
- requirements:
123
- - - ! '>='
124
- - !ruby/object:Gem::Version
125
- version: '0'
126
- - !ruby/object:Gem::Dependency
127
- name: net-dns
128
- requirement: !ruby/object:Gem::Requirement
129
- none: false
130
- requirements:
131
- - - ~>
132
- - !ruby/object:Gem::Version
133
- version: 0.7.0
134
- type: :development
135
- prerelease: false
136
- version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
- requirements:
139
- - - ~>
140
- - !ruby/object:Gem::Version
141
- version: 0.7.0
142
- - !ruby/object:Gem::Dependency
143
- name: yard
144
- requirement: !ruby/object:Gem::Requirement
145
- none: false
146
- requirements:
147
- - - ~>
148
- - !ruby/object:Gem::Version
149
- version: 0.8.0
150
- type: :development
151
- prerelease: false
152
- version_requirements: !ruby/object:Gem::Requirement
153
- none: false
154
- requirements:
155
- - - ~>
156
- - !ruby/object:Gem::Version
157
- version: 0.8.0
158
- - !ruby/object:Gem::Dependency
159
- name: redcarpet
160
- requirement: !ruby/object:Gem::Requirement
161
- none: false
162
- requirements:
163
- - - ~>
164
- - !ruby/object:Gem::Version
165
- version: 2.2.2
166
- type: :development
167
- prerelease: false
168
- version_requirements: !ruby/object:Gem::Requirement
169
- none: false
170
- requirements:
171
- - - ~>
172
- - !ruby/object:Gem::Version
173
- version: 2.2.2
174
- - !ruby/object:Gem::Dependency
175
- name: github-markup
176
- requirement: !ruby/object:Gem::Requirement
177
- none: false
178
- requirements:
179
- - - ~>
180
- - !ruby/object:Gem::Version
181
- version: 0.7.0
182
- type: :development
183
- prerelease: false
184
- version_requirements: !ruby/object:Gem::Requirement
185
- none: false
186
- requirements:
187
- - - ~>
188
- - !ruby/object:Gem::Version
189
- version: 0.7.0
190
62
  description: A small DNS server to enable local domain resolution.
191
63
  email:
192
64
  - shogun_panda@me.com
@@ -197,10 +69,10 @@ extra_rdoc_files: []
197
69
  files:
198
70
  - .DS_Store
199
71
  - .gitignore
72
+ - .travis-gemfile
200
73
  - .travis.yml
201
74
  - .yardopts
202
75
  - Gemfile
203
- - Gemfile.lock
204
76
  - README.md
205
77
  - Rakefile
206
78
  - bin/devdnsd
@@ -208,6 +80,10 @@ files:
208
80
  - devdnsd.gemspec
209
81
  - doc/DevDNSd.html
210
82
  - doc/DevDNSd/Application.html
83
+ - doc/DevDNSd/ApplicationMethods.html
84
+ - doc/DevDNSd/ApplicationMethods/Server.html
85
+ - doc/DevDNSd/ApplicationMethods/System.html
86
+ - doc/DevDNSd/ApplicationMethods/System/ClassMethods.html
211
87
  - doc/DevDNSd/Configuration.html
212
88
  - doc/DevDNSd/Errors.html
213
89
  - doc/DevDNSd/Errors/InvalidRule.html
@@ -233,13 +109,15 @@ files:
233
109
  - lib/devdnsd/errors.rb
234
110
  - lib/devdnsd/rule.rb
235
111
  - lib/devdnsd/version.rb
112
+ - locales/en.yml
113
+ - locales/it.yml
236
114
  - spec/coverage_helper.rb
237
115
  - spec/devdnsd/application_spec.rb
238
116
  - spec/devdnsd/configuration_spec.rb
239
117
  - spec/devdnsd/rule_spec.rb
240
118
  - spec/spec_helper.rb
241
119
  - utils/tester.rb
242
- homepage: http://github.com/ShogunPanda/devdnsd
120
+ homepage: http://sw.cow.tc/devdnsd
243
121
  licenses: []
244
122
  post_install_message:
245
123
  rdoc_options: []
@@ -250,10 +128,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
250
128
  requirements:
251
129
  - - ! '>='
252
130
  - !ruby/object:Gem::Version
253
- version: '0'
254
- segments:
255
- - 0
256
- hash: 437645592278327287
131
+ version: 1.9.3
257
132
  required_rubygems_version: !ruby/object:Gem::Requirement
258
133
  none: false
259
134
  requirements:
@@ -262,10 +137,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
262
137
  version: '0'
263
138
  segments:
264
139
  - 0
265
- hash: 437645592278327287
140
+ hash: 4257481357820499987
266
141
  requirements: []
267
142
  rubyforge_project: devdnsd
268
- rubygems_version: 1.8.24
143
+ rubygems_version: 1.8.25
269
144
  signing_key:
270
145
  specification_version: 3
271
146
  summary: A small DNS server to enable local domain resolution.
data/Gemfile.lock DELETED
@@ -1,101 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- devdnsd (1.7.0)
5
- mamertes (~> 1.2.0)
6
- rexec (~> 1.5.1)
7
- rubydns (~> 0.5.2)
8
-
9
- GEM
10
- remote: http://rubygems.org/
11
- specs:
12
- actionpack (3.2.8)
13
- activemodel (= 3.2.8)
14
- activesupport (= 3.2.8)
15
- builder (~> 3.0.0)
16
- erubis (~> 2.7.0)
17
- journey (~> 1.0.4)
18
- rack (~> 1.4.0)
19
- rack-cache (~> 1.2)
20
- rack-test (~> 0.6.1)
21
- sprockets (~> 2.1.3)
22
- activemodel (3.2.8)
23
- activesupport (= 3.2.8)
24
- builder (~> 3.0.0)
25
- activesupport (3.2.8)
26
- i18n (~> 0.6)
27
- multi_json (~> 1.0)
28
- bovem (1.2.6)
29
- lazier (~> 1.0)
30
- open4 (~> 1.3.0)
31
- builder (3.0.4)
32
- coderay (1.0.7)
33
- diff-lcs (1.1.3)
34
- erubis (2.7.0)
35
- eventmachine (1.0.0)
36
- github-markup (0.7.4)
37
- hike (1.2.1)
38
- i18n (0.6.1)
39
- journey (1.0.4)
40
- json (1.7.5)
41
- lazier (1.0.6)
42
- actionpack (~> 3.0)
43
- json (~> 1.7.0)
44
- tzinfo (~> 0.3.0)
45
- mamertes (1.2.0)
46
- bovem (~> 1.2.2)
47
- method_source (0.8)
48
- multi_json (1.3.6)
49
- net-dns (0.7.1)
50
- open4 (1.3.0)
51
- pry (0.9.10)
52
- coderay (~> 1.0.5)
53
- method_source (~> 0.8)
54
- slop (~> 3.3.1)
55
- rack (1.4.1)
56
- rack-cache (1.2)
57
- rack (>= 0.4)
58
- rack-test (0.6.2)
59
- rack (>= 1.0)
60
- rainbow (1.1.4)
61
- rake (0.9.2.2)
62
- redcarpet (2.2.2)
63
- rexec (1.5.1)
64
- rainbow
65
- rspec (2.11.0)
66
- rspec-core (~> 2.11.0)
67
- rspec-expectations (~> 2.11.0)
68
- rspec-mocks (~> 2.11.0)
69
- rspec-core (2.11.1)
70
- rspec-expectations (2.11.3)
71
- diff-lcs (~> 1.1.3)
72
- rspec-mocks (2.11.3)
73
- rubydns (0.5.2)
74
- eventmachine (~> 1.0.0)
75
- rexec (~> 1.5.1)
76
- simplecov (0.7.1)
77
- multi_json (~> 1.0)
78
- simplecov-html (~> 0.7.1)
79
- simplecov-html (0.7.1)
80
- slop (3.3.3)
81
- sprockets (2.1.3)
82
- hike (~> 1.2)
83
- rack (~> 1.0)
84
- tilt (~> 1.1, != 1.3.0)
85
- tilt (1.3.3)
86
- tzinfo (0.3.33)
87
- yard (0.8.2.1)
88
-
89
- PLATFORMS
90
- ruby
91
-
92
- DEPENDENCIES
93
- devdnsd!
94
- github-markup (~> 0.7.0)
95
- net-dns (~> 0.7.0)
96
- pry
97
- rake (~> 0.9.0)
98
- redcarpet (~> 2.2.2)
99
- rspec (~> 2.11.0)
100
- simplecov (~> 0.7.0)
101
- yard (~> 0.8.0)