devdnsd 2.2.0 → 2.3.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.
data/lib/devdnsd/rule.rb CHANGED
@@ -35,7 +35,7 @@ module DevDNSd
35
35
  # @param block [Proc] An optional block to compute the reply instead of using the `reply` parameter.
36
36
  # @see .create
37
37
  def initialize(match = /.+/, reply = "127.0.0.1", type = :A, options = {}, &block)
38
- self.i18n_setup(:devdnsd, ::File.absolute_path(::Pathname.new(::File.dirname(__FILE__)).to_s + "/../../locales/"))
38
+ i18n_setup(:devdnsd, ::File.absolute_path(::Pathname.new(::File.dirname(__FILE__)).to_s + "/../../locales/"))
39
39
  self.i18n = options[:locale]
40
40
  setup(match, reply, type, options, block)
41
41
  validate_rule
@@ -45,7 +45,7 @@ module DevDNSd
45
45
  #
46
46
  # @return [Array|Class] The class(es) for the current rule.
47
47
  def resource_class
48
- classes = @type.ensure_array.collect {|cls| self.class.symbol_to_resource_class(cls, options[:locale]) }.compact.uniq
48
+ classes = @type.ensure_array(nil, true, true) {|cls| self.class.symbol_to_resource_class(cls, options[:locale]) }
49
49
  classes.length == 1 ? classes.first : classes
50
50
  end
51
51
 
@@ -68,7 +68,7 @@ module DevDNSd
68
68
  # @param hostname [String] The hostname to match.
69
69
  # @return [MatchData|Boolean|Nil] Return `true` or MatchData (if the pattern is a regexp) if the rule matches, `false` or `nil` otherwise.
70
70
  def match_host(hostname)
71
- self.is_regexp? ? @match.match(hostname) : (@match == hostname)
71
+ is_regexp? ? @match.match(hostname) : (@match == hostname)
72
72
  end
73
73
 
74
74
  # Creates a new rule.
@@ -81,7 +81,7 @@ module DevDNSd
81
81
  # @return [Rule] The new rule.
82
82
  def self.create(match, reply_or_type = nil, type = nil, options = {}, &block)
83
83
  validate_options(reply_or_type, options, block, Lazier::Localizer.new(:devdnsd, ::File.absolute_path(::Pathname.new(::File.dirname(__FILE__)).to_s + "/../../locales/"), options.is_a?(Hash) ? options[:locale] : nil))
84
- setup(self.new(match), reply_or_type, type, options, block)
84
+ setup(new(match), reply_or_type, type, options, block)
85
85
  end
86
86
 
87
87
  # Converts a class to the correspondent symbol.
@@ -125,8 +125,8 @@ module DevDNSd
125
125
 
126
126
  # Validates a newly created rule.
127
127
  def validate_rule
128
- raise(DevDNSd::Errors::InvalidRule.new(self.i18n.rule_invalid_call)) if @reply.blank? && @block.nil?
129
- raise(DevDNSd::Errors::InvalidRule.new(self.i18n.rule_invalid_options)) if !@options.is_a?(::Hash)
128
+ raise(DevDNSd::Errors::InvalidRule.new(i18n.rule_invalid_call)) if @reply.blank? && @block.nil?
129
+ raise(DevDNSd::Errors::InvalidRule.new(i18n.rule_invalid_options)) if !@options.is_a?(::Hash)
130
130
  end
131
131
 
132
132
  # Setups a new rule.
@@ -13,7 +13,7 @@ module DevDNSd
13
13
  MAJOR = 2
14
14
 
15
15
  # The minor version.
16
- MINOR = 2
16
+ MINOR = 3
17
17
 
18
18
  # The patch version.
19
19
  PATCH = 0
@@ -6,6 +6,9 @@
6
6
 
7
7
  require "pathname"
8
8
  require "simplecov"
9
+ require "coveralls"
10
+
11
+ Coveralls.wear!
9
12
 
10
13
  SimpleCov.start do
11
14
  root = Pathname.new(File.dirname(__FILE__)) + ".."
@@ -88,7 +88,7 @@ describe DevDNSd::Application do
88
88
  end
89
89
 
90
90
  let(:mamertes) {
91
- mamertes_app = Mamertes::App(run: false) do
91
+ Mamertes::App(run: false) do
92
92
  option :configuration, [], {default: "/dev/null"}
93
93
  option :tld, [], {default: "dev"}
94
94
  option :port, [], {type: Integer, default: 7771}
@@ -257,7 +257,7 @@ describe DevDNSd::Application do
257
257
  @resource_class = cls
258
258
  end
259
259
 
260
- def respond!(*args)
260
+ def respond!(*_)
261
261
  true
262
262
  end
263
263
  end
@@ -328,6 +328,15 @@ describe DevDNSd::Application do
328
328
  end
329
329
  end
330
330
 
331
+ describe "#is_osx?" do
332
+ it "should return the correct information" do
333
+ stub_const("RbConfig::CONFIG", {"host_os" => "darwin foo"})
334
+ expect(application.is_osx?).to be_true
335
+ stub_const("RbConfig::CONFIG", {"host_os" => "another"})
336
+ expect(application.is_osx?).to be_false
337
+ end
338
+ end
339
+
331
340
  describe "#resolver_path" do
332
341
  it "should return the resolver file basing on the configuration" do
333
342
  expect(application.resolver_path).to eq("/etc/resolver/#{application.config.tld}")
@@ -382,89 +391,92 @@ describe DevDNSd::Application do
382
391
  end
383
392
 
384
393
  describe "#action_install" do
385
- if ::RbConfig::CONFIG['host_os'] =~ /^darwin/ then
386
- it "should create the resolver" do
387
- application.stub(:resolver_path).and_return(resolver_path)
388
- application.stub(:launch_agent_path).and_return(launch_agent_path)
389
- ::File.unlink(application.resolver_path) if ::File.exists?(application.resolver_path)
390
- ::File.unlink(application.launch_agent_path) if ::File.exists?(application.launch_agent_path)
391
-
392
- application.action_install
393
- expect(::File.exists?(resolver_path)).to be_true
394
-
395
- ::File.unlink(application.resolver_path) if ::File.exists?(application.resolver_path)
396
- ::File.unlink(application.launch_agent_path) if ::File.exists?(application.launch_agent_path)
397
- end
394
+ before(:each) do
395
+ application.stub(:is_osx?).and_return(true)
396
+ application.stub(:execute_command)
397
+ end
398
398
 
399
- it "should create the agent" do
400
- application.stub(:resolver_path).and_return(resolver_path)
401
- application.stub(:launch_agent_path).and_return(launch_agent_path)
402
- ::File.unlink(application.resolver_path) if ::File.exists?(application.resolver_path)
403
- ::File.unlink(application.launch_agent_path) if ::File.exists?(application.launch_agent_path)
399
+ it "should create the resolver" do
400
+ application.stub(:resolver_path).and_return(resolver_path)
401
+ application.stub(:launch_agent_path).and_return(launch_agent_path)
402
+ ::File.unlink(application.resolver_path) if ::File.exists?(application.resolver_path)
403
+ ::File.unlink(application.launch_agent_path) if ::File.exists?(application.launch_agent_path)
404
404
 
405
- application.stub(:resolver_path).and_return(resolver_path)
406
- application.action_install
407
- expect(::File.exists?(application.launch_agent_path)).to be_true
405
+ application.action_install
406
+ expect(::File.exists?(resolver_path)).to be_true
408
407
 
409
- ::File.unlink(application.resolver_path) if ::File.exists?(application.resolver_path)
410
- ::File.unlink(application.launch_agent_path) if ::File.exists?(application.launch_agent_path)
411
- end
408
+ ::File.unlink(application.resolver_path) if ::File.exists?(application.resolver_path)
409
+ ::File.unlink(application.launch_agent_path) if ::File.exists?(application.launch_agent_path)
410
+ end
412
411
 
413
- it "should update the DNS cache" do
414
- application.stub(:resolver_path).and_return(resolver_path)
415
- application.stub(:launch_agent_path).and_return(launch_agent_path)
416
- ::File.unlink(application.resolver_path) if ::File.exists?(application.resolver_path)
417
- ::File.unlink(application.launch_agent_path) if ::File.exists?(application.launch_agent_path)
412
+ it "should create the agent" do
413
+ application.stub(:resolver_path).and_return(resolver_path)
414
+ application.stub(:launch_agent_path).and_return(launch_agent_path)
415
+ ::File.unlink(application.resolver_path) if ::File.exists?(application.resolver_path)
416
+ ::File.unlink(application.launch_agent_path) if ::File.exists?(application.launch_agent_path)
418
417
 
419
- application.should_receive(:dns_update)
420
- application.action_install
418
+ application.stub(:resolver_path).and_return(resolver_path)
419
+ application.action_install
420
+ expect(::File.exists?(application.launch_agent_path)).to be_true
421
421
 
422
- ::File.unlink(application.resolver_path) if ::File.exists?(application.resolver_path)
423
- ::File.unlink(application.launch_agent_path) if ::File.exists?(application.launch_agent_path)
424
- end
422
+ ::File.unlink(application.resolver_path) if ::File.exists?(application.resolver_path)
423
+ ::File.unlink(application.launch_agent_path) if ::File.exists?(application.launch_agent_path)
424
+ end
425
425
 
426
- it "should not create an invalid resolver" do
427
- application.stub(:resolver_path).and_return("/invalid/resolver")
428
- application.stub(:launch_agent_path).and_return("/invalid/agent")
429
- ::File.unlink(application.resolver_path) if ::File.exists?(application.resolver_path)
430
- ::File.unlink(application.launch_agent_path) if ::File.exists?(application.launch_agent_path)
426
+ it "should update the DNS cache" do
427
+ application.stub(:resolver_path).and_return(resolver_path)
428
+ application.stub(:launch_agent_path).and_return(launch_agent_path)
429
+ ::File.unlink(application.resolver_path) if ::File.exists?(application.resolver_path)
430
+ ::File.unlink(application.launch_agent_path) if ::File.exists?(application.launch_agent_path)
431
431
 
432
- application.logger.should_receive(:error).with("Cannot create the resolver file.")
433
- application.action_install
432
+ application.should_receive(:dns_update)
433
+ application.action_install
434
434
 
435
- ::File.unlink(application.resolver_path) if ::File.exists?(application.resolver_path)
436
- ::File.unlink(application.launch_agent_path) if ::File.exists?(application.launch_agent_path)
437
- end
435
+ ::File.unlink(application.resolver_path) if ::File.exists?(application.resolver_path)
436
+ ::File.unlink(application.launch_agent_path) if ::File.exists?(application.launch_agent_path)
437
+ end
438
438
 
439
- it "should not create an invalid agent" do
440
- application.stub(:resolver_path).and_return(resolver_path)
441
- application.stub(:launch_agent_path).and_return("/invalid/agent")
442
- ::File.unlink(application.resolver_path) if ::File.exists?(application.resolver_path)
443
- ::File.unlink(application.launch_agent_path) if ::File.exists?(application.launch_agent_path)
439
+ it "should not create an invalid resolver" do
440
+ application.stub(:resolver_path).and_return("/invalid/resolver")
441
+ application.stub(:launch_agent_path).and_return("/invalid/agent")
442
+ ::File.unlink(application.resolver_path) if ::File.exists?(application.resolver_path)
443
+ ::File.unlink(application.launch_agent_path) if ::File.exists?(application.launch_agent_path)
444
444
 
445
- application.logger.should_receive(:error).with("Cannot create the launch agent.")
446
- application.action_install
445
+ application.logger.should_receive(:error).with("Cannot create the resolver file.")
446
+ application.action_install
447
447
 
448
- ::File.unlink(application.resolver_path) if ::File.exists?(application.resolver_path)
449
- ::File.unlink(application.launch_agent_path) if ::File.exists?(application.launch_agent_path)
450
- end
448
+ ::File.unlink(application.resolver_path) if ::File.exists?(application.resolver_path)
449
+ ::File.unlink(application.launch_agent_path) if ::File.exists?(application.launch_agent_path)
450
+ end
451
451
 
452
- it "should not load an invalid agent" do
453
- application.stub(:execute_command) do |command|
454
- command =~ /^launchctl/ ? raise(StandardError) : system(command)
455
- end
452
+ it "should not create an invalid agent" do
453
+ application.stub(:resolver_path).and_return(resolver_path)
454
+ application.stub(:launch_agent_path).and_return("/invalid/agent")
455
+ ::File.unlink(application.resolver_path) if ::File.exists?(application.resolver_path)
456
+ ::File.unlink(application.launch_agent_path) if ::File.exists?(application.launch_agent_path)
456
457
 
457
- application.stub(:resolver_path).and_return(resolver_path)
458
- application.stub(:launch_agent_path).and_return(launch_agent_path)
459
- ::File.unlink(application.resolver_path) if ::File.exists?(application.resolver_path)
460
- ::File.unlink(application.launch_agent_path) if ::File.exists?(application.launch_agent_path)
458
+ application.logger.should_receive(:error).with("Cannot create the launch agent.")
459
+ application.action_install
461
460
 
462
- application.logger.should_receive(:error).with("Cannot load the launch agent.")
463
- application.action_install
461
+ ::File.unlink(application.resolver_path) if ::File.exists?(application.resolver_path)
462
+ ::File.unlink(application.launch_agent_path) if ::File.exists?(application.launch_agent_path)
463
+ end
464
464
 
465
- ::File.unlink(application.resolver_path) if ::File.exists?(application.resolver_path)
466
- ::File.unlink(application.launch_agent_path) if ::File.exists?(application.launch_agent_path)
465
+ it "should not load an invalid agent" do
466
+ application.stub(:execute_command) do |command|
467
+ command =~ /^launchctl/ ? raise(StandardError) : true
467
468
  end
469
+
470
+ application.stub(:resolver_path).and_return(resolver_path)
471
+ application.stub(:launch_agent_path).and_return(launch_agent_path)
472
+ ::File.unlink(application.resolver_path) if ::File.exists?(application.resolver_path)
473
+ ::File.unlink(application.launch_agent_path) if ::File.exists?(application.launch_agent_path)
474
+
475
+ application.logger.should_receive(:error).with("Cannot load the launch agent.")
476
+ application.action_install
477
+
478
+ ::File.unlink(application.resolver_path) if ::File.exists?(application.resolver_path)
479
+ ::File.unlink(application.launch_agent_path) if ::File.exists?(application.launch_agent_path)
468
480
  end
469
481
 
470
482
  it "should raise an exception if not running on OSX" do
@@ -475,87 +487,90 @@ describe DevDNSd::Application do
475
487
  end
476
488
 
477
489
  describe "#action_uninstall" do
478
- if ::RbConfig::CONFIG['host_os'] =~ /^darwin/ then
479
- it "should remove the resolver" do
480
- application.stub(:resolver_path).and_return(resolver_path)
481
- application.stub(:launch_agent_path).and_return(launch_agent_path)
482
- ::File.unlink(application.resolver_path) if ::File.exists?(application.resolver_path)
483
- ::File.unlink(application.launch_agent_path) if ::File.exists?(application.launch_agent_path)
484
-
485
- application.action_install
486
- application.action_uninstall
487
- expect(::File.exists?(resolver_path)).to be_false
488
-
489
- ::File.unlink(application.resolver_path) if ::File.exists?(application.resolver_path)
490
- ::File.unlink(application.launch_agent_path) if ::File.exists?(application.launch_agent_path)
491
- end
490
+ before(:each) do
491
+ application.stub(:is_osx?).and_return(true)
492
+ application.stub(:execute_command)
493
+ end
492
494
 
493
- it "should remove the agent" do
494
- application.stub(:resolver_path).and_return(resolver_path)
495
- application.stub(:launch_agent_path).and_return(launch_agent_path)
496
- ::File.unlink(application.resolver_path) if ::File.exists?(application.resolver_path)
497
- ::File.unlink(application.launch_agent_path) if ::File.exists?(application.launch_agent_path)
495
+ it "should remove the resolver" do
496
+ application.stub(:resolver_path).and_return(resolver_path)
497
+ application.stub(:launch_agent_path).and_return(launch_agent_path)
498
+ ::File.unlink(application.resolver_path) if ::File.exists?(application.resolver_path)
499
+ ::File.unlink(application.launch_agent_path) if ::File.exists?(application.launch_agent_path)
498
500
 
499
- Bovem::Logger.stub(:default_file).and_return($stdout)
500
- application.action_install
501
- application.action_uninstall
502
- expect(::File.exists?(application.launch_agent_path)).to be_false
501
+ application.action_install
502
+ application.action_uninstall
503
+ expect(::File.exists?(resolver_path)).to be_false
503
504
 
504
- ::File.unlink(application.resolver_path) if ::File.exists?(application.resolver_path)
505
- ::File.unlink(application.launch_agent_path) if ::File.exists?(application.launch_agent_path)
506
- end
505
+ ::File.unlink(application.resolver_path) if ::File.exists?(application.resolver_path)
506
+ ::File.unlink(application.launch_agent_path) if ::File.exists?(application.launch_agent_path)
507
+ end
507
508
 
508
- it "should not delete an invalid resolver" do
509
- application.stub(:resolver_path).and_return("/invalid/resolver")
510
- application.stub(:launch_agent_path).and_return("/invalid/agent")
509
+ it "should remove the agent" do
510
+ application.stub(:resolver_path).and_return(resolver_path)
511
+ application.stub(:launch_agent_path).and_return(launch_agent_path)
512
+ ::File.unlink(application.resolver_path) if ::File.exists?(application.resolver_path)
513
+ ::File.unlink(application.launch_agent_path) if ::File.exists?(application.launch_agent_path)
511
514
 
512
- application.action_install
513
- application.logger.should_receive(:warn).at_least(1)
514
- application.action_uninstall
515
+ Bovem::Logger.stub(:default_file).and_return($stdout)
516
+ application.action_install
517
+ application.action_uninstall
518
+ expect(::File.exists?(application.launch_agent_path)).to be_false
515
519
 
516
- ::File.unlink(application.resolver_path) if ::File.exists?(application.resolver_path)
517
- ::File.unlink(application.launch_agent_path) if ::File.exists?(application.launch_agent_path)
518
- end
520
+ ::File.unlink(application.resolver_path) if ::File.exists?(application.resolver_path)
521
+ ::File.unlink(application.launch_agent_path) if ::File.exists?(application.launch_agent_path)
522
+ end
519
523
 
520
- it "should not delete an invalid agent" do
521
- application.stub(:resolver_path).and_return(resolver_path)
522
- application.stub(:launch_agent_path).and_return("/invalid/agent")
524
+ it "should not delete an invalid resolver" do
525
+ application.stub(:resolver_path).and_return("/invalid/resolver")
526
+ application.stub(:launch_agent_path).and_return("/invalid/agent")
523
527
 
524
- application.action_install
525
- application.logger.should_receive(:warn).at_least(1)
526
- application.action_uninstall
528
+ application.action_install
529
+ application.logger.should_receive(:warn).at_least(1)
530
+ application.action_uninstall
527
531
 
528
- ::File.unlink(application.resolver_path) if ::File.exists?(application.resolver_path)
529
- ::File.unlink(application.launch_agent_path) if ::File.exists?(application.launch_agent_path)
530
- end
532
+ ::File.unlink(application.resolver_path) if ::File.exists?(application.resolver_path)
533
+ ::File.unlink(application.launch_agent_path) if ::File.exists?(application.launch_agent_path)
534
+ end
531
535
 
532
- it "should not unload invalid agent" do
533
- application.stub(:resolver_path).and_return(resolver_path)
534
- application.stub(:launch_agent_path).and_return("/invalid/agent")
536
+ it "should not delete an invalid agent" do
537
+ application.stub(:resolver_path).and_return(resolver_path)
538
+ application.stub(:launch_agent_path).and_return("/invalid/agent")
535
539
 
536
- application.action_install
537
- application.stub(:execute_command).and_raise(StandardError)
538
- application.stub(:dns_update)
539
- application.logger.should_receive(:warn).at_least(1)
540
- application.action_uninstall
540
+ application.action_install
541
+ application.logger.should_receive(:warn).at_least(1)
542
+ application.action_uninstall
541
543
 
542
- ::File.unlink(application.resolver_path) if ::File.exists?(application.resolver_path)
543
- ::File.unlink(application.launch_agent_path) if ::File.exists?(application.launch_agent_path)
544
- end
544
+ ::File.unlink(application.resolver_path) if ::File.exists?(application.resolver_path)
545
+ ::File.unlink(application.launch_agent_path) if ::File.exists?(application.launch_agent_path)
546
+ end
545
547
 
546
- it "should update the DNS cache" do
547
- application.stub(:resolver_path).and_return(resolver_path)
548
- application.stub(:launch_agent_path).and_return(launch_agent_path)
549
- ::File.unlink(application.resolver_path) if ::File.exists?(application.resolver_path)
550
- ::File.unlink(application.launch_agent_path) if ::File.exists?(application.launch_agent_path)
548
+ it "should not unload invalid agent" do
549
+ application.stub(:resolver_path).and_return(resolver_path)
550
+ application.stub(:launch_agent_path).and_return("/invalid/agent")
551
551
 
552
- application.action_install
553
- application.should_receive(:dns_update)
554
- application.action_uninstall
552
+ application.action_install
553
+ application.stub(:execute_command).and_raise(StandardError)
554
+ application.stub(:dns_update)
555
+ application.logger.should_receive(:warn).at_least(1)
556
+ application.action_uninstall
555
557
 
556
- ::File.unlink(application.resolver_path) if ::File.exists?(application.resolver_path)
557
- ::File.unlink(application.launch_agent_path) if ::File.exists?(application.launch_agent_path)
558
- end
558
+ ::File.unlink(application.resolver_path) if ::File.exists?(application.resolver_path)
559
+ ::File.unlink(application.launch_agent_path) if ::File.exists?(application.launch_agent_path)
560
+ end
561
+
562
+ it "should update the DNS cache" do
563
+ application.stub(:resolver_path).and_return(resolver_path)
564
+ application.stub(:launch_agent_path).and_return(launch_agent_path)
565
+ ::File.unlink(application.resolver_path) if ::File.exists?(application.resolver_path)
566
+ ::File.unlink(application.launch_agent_path) if ::File.exists?(application.launch_agent_path)
567
+
568
+ application.action_install
569
+ application.should_receive(:dns_update)
570
+ application.action_uninstall
571
+
572
+ ::File.unlink(application.resolver_path) if ::File.exists?(application.resolver_path)
573
+ ::File.unlink(application.launch_agent_path) if ::File.exists?(application.launch_agent_path)
559
574
  end
560
575
 
561
576
  it "should raise an exception if not running on OSX" do
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: 2.2.0
4
+ version: 2.3.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: 2013-04-13 00:00:00.000000000 Z
12
+ date: 2013-07-15 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: 2.1.2
21
+ version: 2.2.0
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: 2.1.2
29
+ version: 2.2.0
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.6.1
37
+ version: 0.6.3
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.6.1
45
+ version: 0.6.3
46
46
  - !ruby/object:Gem::Dependency
47
47
  name: rexec
48
48
  requirement: !ruby/object:Gem::Requirement
@@ -137,7 +137,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
137
137
  version: '0'
138
138
  segments:
139
139
  - 0
140
- hash: 2842268612372954598
140
+ hash: 1433778156204366420
141
141
  requirements: []
142
142
  rubyforge_project: devdnsd
143
143
  rubygems_version: 1.8.25