hugo-zerigo_dns 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile ADDED
@@ -0,0 +1,26 @@
1
+ require 'rubygems'
2
+ require 'rake'
3
+
4
+ begin
5
+ require 'jeweler'
6
+ Jeweler::Tasks.new do |gemspec|
7
+ gemspec.add_dependency('hugo')
8
+ gemspec.add_dependency('builder', '>= 0')
9
+ gemspec.add_dependency('i18n', '>= 0')
10
+ gemspec.add_dependency('activesupport', '>= 2.3.5')
11
+ gemspec.add_dependency('activeresource', '>= 2.3.5')
12
+ gemspec.add_dependency('zerigo_dns', '>= 1.0.0')
13
+
14
+ gemspec.name = "hugo-zerigo_dns"
15
+ gemspec.summary = "A Hugo Plug-in that gives you automated access to zerigo_dns"
16
+ gemspec.description = ""
17
+ gemspec.email = "tom@jackhq.com"
18
+ gemspec.homepage = "http://github.com/twilson63/hugo-zerigo_dns"
19
+ gemspec.authors = ["Tom Wilson"]
20
+
21
+ gemspec.files = FileList['spec/*.rb'] + FileList['lib/**/*.rb'] + ['README.rdoc', 'LICENSE', 'VERSION.yml', 'Rakefile']
22
+ end
23
+ Jeweler::GemcutterTasks.new
24
+ rescue LoadError
25
+ puts "Jeweler not available. Install it with: gem install jeweler"
26
+ end
@@ -0,0 +1,11 @@
1
+ module Hugo; end
2
+
3
+ class Hugo::Cloud
4
+
5
+ def dns(hostname, &block)
6
+ dns_info = Hugo::Dns.instance
7
+ dns_info.hostname hostname
8
+ dns_info.instance_eval(&block) if block_given?
9
+ dns_info.deploy
10
+ end
11
+ end
data/lib/hugo/dns.rb ADDED
@@ -0,0 +1,51 @@
1
+ require 'zerigo_dns'
2
+
3
+ module Hugo; end
4
+
5
+ class Hugo::Dns
6
+ include Singleton
7
+ include Hugo::Mixin::ParamsValidate
8
+
9
+ attr_accessor :host
10
+
11
+ def deploy
12
+ # Initialize Resouce
13
+ Zerigo::DNS::Base.user = user
14
+ Zerigo::DNS::Base.password = token
15
+ # find or create domain
16
+ zone = Zerigo::DNS::Zone.find_or_create(domain)
17
+ # find or create host
18
+ host = Zerigo::DNS::Host.update_or_create(zone.id, hostname, type, ttl, data)
19
+ puts "Successfully configured DNS Host"
20
+ end
21
+
22
+ def user(arg=nil)
23
+ set_or_return(:user, arg, :kind_of => [String])
24
+ end
25
+
26
+ def token(arg=nil)
27
+ set_or_return(:token, arg, :kind_of => [String])
28
+ end
29
+
30
+ def hostname(arg=nil)
31
+ set_or_return(:hostname, arg, :kind_of => [String])
32
+ end
33
+
34
+ def domain(arg=nil)
35
+ set_or_return(:domain, arg, :kind_of => [String])
36
+ end
37
+
38
+ def type(arg=nil)
39
+ set_or_return(:type, arg, :kind_of => [String])
40
+ end
41
+
42
+ def ttl(arg=nil)
43
+ set_or_return(:ttl, arg, :kind_of => [Integer])
44
+ end
45
+
46
+ def data(arg=nil)
47
+ set_or_return(:data, arg, :kind_of => [String])
48
+ end
49
+
50
+
51
+ end
@@ -0,0 +1,7 @@
1
+ require 'active_support'
2
+ require 'active_resource'
3
+ require 'zerigo_dns'
4
+
5
+ require File.dirname(__FILE__) + '/hugo/cloud_zerigo_dns'
6
+ require File.dirname(__FILE__) + '/hugo/dns'
7
+
File without changes
@@ -0,0 +1,29 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper'
2
+
3
+ describe "Hugo DNS" do
4
+ it "should be valid" do
5
+ zone = mock('Zerigo::DNS::Zone')
6
+ zone.stub!(:id).and_return(1)
7
+ Zerigo::DNS::Base.stub!(:user=)
8
+ Zerigo::DNS::Base.stub!(:password=)
9
+ Zerigo::DNS::Zone.stub!(:find_or_create).and_return(zone)
10
+ Zerigo::DNS::Host.stub!(:update_or_create).and_return(mock('Zerigo::DNS::Host'))
11
+
12
+ block = lambda do
13
+ cloud "my_cloud" do
14
+ dns "www" do
15
+ domain "example.com"
16
+ user "name@email.com"
17
+ token "1e23fjsda"
18
+ type "A"
19
+ ttl 86400
20
+ data "123.123.123.123"
21
+ end
22
+ end
23
+ end
24
+
25
+ lambda do
26
+ Hugo &block
27
+ end.should_not raise_error
28
+ end
29
+ end
@@ -0,0 +1,6 @@
1
+ require 'hugo'
2
+ require File.expand_path(File.dirname(__FILE__) + "/../lib/hugo_zerigo_dns")
3
+ require 'spec'
4
+ require 'spec/autorun'
5
+ require 'spec/interop/test'
6
+
metadata ADDED
@@ -0,0 +1,120 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: hugo-zerigo_dns
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Tom Wilson
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2010-02-07 00:00:00 -05:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: hugo
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: "0"
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: builder
27
+ type: :runtime
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: "0"
34
+ version:
35
+ - !ruby/object:Gem::Dependency
36
+ name: i18n
37
+ type: :runtime
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: "0"
44
+ version:
45
+ - !ruby/object:Gem::Dependency
46
+ name: activesupport
47
+ type: :runtime
48
+ version_requirement:
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: 2.3.5
54
+ version:
55
+ - !ruby/object:Gem::Dependency
56
+ name: activeresource
57
+ type: :runtime
58
+ version_requirement:
59
+ version_requirements: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: 2.3.5
64
+ version:
65
+ - !ruby/object:Gem::Dependency
66
+ name: zerigo_dns
67
+ type: :runtime
68
+ version_requirement:
69
+ version_requirements: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ version: 1.0.0
74
+ version:
75
+ description: ""
76
+ email: tom@jackhq.com
77
+ executables: []
78
+
79
+ extensions: []
80
+
81
+ extra_rdoc_files: []
82
+
83
+ files:
84
+ - Rakefile
85
+ - lib/hugo/cloud_zerigo_dns.rb
86
+ - lib/hugo/dns.rb
87
+ - lib/hugo_zerigo_dns.rb
88
+ - spec/spec_helper.rb
89
+ has_rdoc: true
90
+ homepage: http://github.com/twilson63/hugo-zerigo_dns
91
+ licenses: []
92
+
93
+ post_install_message:
94
+ rdoc_options:
95
+ - --charset=UTF-8
96
+ require_paths:
97
+ - lib
98
+ required_ruby_version: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: "0"
103
+ version:
104
+ required_rubygems_version: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - ">="
107
+ - !ruby/object:Gem::Version
108
+ version: "0"
109
+ version:
110
+ requirements: []
111
+
112
+ rubyforge_project:
113
+ rubygems_version: 1.3.5
114
+ signing_key:
115
+ specification_version: 3
116
+ summary: A Hugo Plug-in that gives you automated access to zerigo_dns
117
+ test_files:
118
+ - spec/lib/cloud_zeigo_dns_spec.rb
119
+ - spec/lib/hugo/dns_spec.rb
120
+ - spec/spec_helper.rb