hugo-zerigo_dns 0.1.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/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