moo_moo 0.2.0 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +5 -7
- data/lib/moo_moo/base.rb +12 -30
- data/lib/moo_moo/command.rb +2 -6
- data/lib/moo_moo/config.rb +7 -7
- data/lib/moo_moo/middleware/open_srs_errors.rb +0 -2
- data/lib/moo_moo/middleware/open_srs_xml_builder.rb +9 -17
- data/lib/moo_moo/middleware/parse_open_srs.rb +3 -3
- data/lib/moo_moo/response.rb +15 -20
- data/lib/moo_moo/{cookie.rb → services/cookie.rb} +0 -0
- data/lib/moo_moo/{dns_zone.rb → services/dns_zone.rb} +0 -0
- data/lib/moo_moo/{lookup.rb → services/lookup.rb} +0 -0
- data/lib/moo_moo/{nameserver.rb → services/nameserver.rb} +0 -0
- data/lib/moo_moo/{provisioning.rb → services/provisioning.rb} +0 -0
- data/lib/moo_moo/{transfer.rb → services/transfer.rb} +0 -0
- data/lib/moo_moo/version.rb +1 -1
- data/lib/moo_moo.rb +15 -15
- data/spec/integration_spec.rb +1 -2
- data/spec/moo_moo/base_spec.rb +9 -18
- data/spec/moo_moo/command_spec.rb +1 -2
- data/spec/moo_moo/config_spec.rb +6 -6
- data/spec/moo_moo/middleware/open_srs_xml_builder_spec.rb +14 -6
- data/spec/moo_moo/response_spec.rb +43 -0
- data/spec/moo_moo/{cookie_spec.rb → services/cookie_spec.rb} +0 -0
- data/spec/moo_moo/{dns_zone_spec.rb → services/dns_zone_spec.rb} +0 -0
- data/spec/moo_moo/{lookup_spec.rb → services/lookup_spec.rb} +0 -0
- data/spec/moo_moo/{nameserver_spec.rb → services/nameserver_spec.rb} +0 -0
- data/spec/moo_moo/{provisioning_spec.rb → services/provisioning_spec.rb} +0 -0
- data/spec/moo_moo/{transfer_spec.rb → services/transfer_spec.rb} +0 -0
- data/spec/moo_moo_spec.rb +8 -8
- data/spec/spec_helper.rb +9 -9
- metadata +24 -22
data/README.md
CHANGED
@@ -35,10 +35,10 @@ First, create an opensrs object for the namespace you want to use:
|
|
35
35
|
Or configure MooMoo and you can initialize it without any arguments:
|
36
36
|
|
37
37
|
MooMoo.configure do |config|
|
38
|
-
config.host
|
39
|
-
config.key
|
40
|
-
config.
|
41
|
-
config.
|
38
|
+
config.host = "horizon.opensrs.net"
|
39
|
+
config.key = "<YOUR_KEY>"
|
40
|
+
config.username = "<YOUR_RESELLER_USER>"
|
41
|
+
config.password = "<YOUR_PASSWORD>"
|
42
42
|
end
|
43
43
|
|
44
44
|
...
|
@@ -51,12 +51,10 @@ configuration for the library to use.
|
|
51
51
|
Now you can call a variety of commands to deal with domains, nameservers, etc.
|
52
52
|
Here's how to check the availability of a domain name:
|
53
53
|
|
54
|
-
res = lookup.lookup_domain('example.com')
|
54
|
+
res = lookup.lookup_domain(:attributes => { :domain => 'example.com' })
|
55
55
|
p res.success?
|
56
|
-
p res.result['status']
|
57
56
|
|
58
57
|
true
|
59
|
-
taken
|
60
58
|
|
61
59
|
Each method returns an `OpenSRSResponse` object which you can use to determine
|
62
60
|
if the call was successful and retrieve the response code and/or error
|
data/lib/moo_moo/base.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
module MooMoo
|
2
2
|
class Base
|
3
|
-
attr_reader :host, :key, :
|
3
|
+
attr_reader :host, :key, :username, :password, :port
|
4
4
|
|
5
5
|
# Register an api service for the current class.
|
6
6
|
#
|
@@ -21,10 +21,8 @@ module MooMoo
|
|
21
21
|
define_method(method_name) do |*args|
|
22
22
|
params = args.first || {}
|
23
23
|
|
24
|
-
params[:key] = 'attributes'
|
25
|
-
cookie = params.delete :cookie
|
26
24
|
instance_exec(params, &block) if block
|
27
|
-
run_command action_name, object, params
|
25
|
+
run_command action_name, object, params
|
28
26
|
end
|
29
27
|
end
|
30
28
|
|
@@ -33,17 +31,17 @@ module MooMoo
|
|
33
31
|
# === Required
|
34
32
|
# * <tt>:host</tt> - host of the OpenSRS server
|
35
33
|
# * <tt>:key</tt> - private key
|
36
|
-
# * <tt>:
|
37
|
-
# * <tt>:
|
34
|
+
# * <tt>:username</tt> - username of the reseller
|
35
|
+
# * <tt>:password</tt> - password of the rseller
|
38
36
|
#
|
39
37
|
# === Optional
|
40
38
|
# * <tt>:port</tt> - port to connect on
|
41
|
-
def initialize(
|
42
|
-
@host
|
43
|
-
@key
|
44
|
-
@
|
45
|
-
@
|
46
|
-
@port
|
39
|
+
def initialize(params = {})
|
40
|
+
@host = params[:host] || MooMoo.config.host || raise(OpenSRSException, "Host is required")
|
41
|
+
@key = params[:key] || MooMoo.config.key || raise(OpenSRSException, "Key is required")
|
42
|
+
@username = params[:username] || MooMoo.config.username || raise(OpenSRSException, "Username is required")
|
43
|
+
@password = params[:password] || MooMoo.config.password || raise(OpenSRSException, "Password is required")
|
44
|
+
@port = params[:port] || MooMoo.config.port || 55443
|
47
45
|
end
|
48
46
|
|
49
47
|
# Runs a command
|
@@ -54,14 +52,8 @@ module MooMoo
|
|
54
52
|
#
|
55
53
|
# === Optional
|
56
54
|
# * <tt>:params</tt> - parameters for the command
|
57
|
-
|
58
|
-
|
59
|
-
cmd = Command.new(action, object, params, cookie)
|
60
|
-
|
61
|
-
try_opensrs do
|
62
|
-
result = cmd.run(@host, @key, @user, @port)
|
63
|
-
Response.new(result, params[:key])
|
64
|
-
end
|
55
|
+
def run_command(action, object, params = {})
|
56
|
+
Response.new Command.new(action, object, params).run(@host, @key, @username, @port)
|
65
57
|
end
|
66
58
|
|
67
59
|
private
|
@@ -79,15 +71,5 @@ module MooMoo
|
|
79
71
|
|
80
72
|
arr_indexed
|
81
73
|
end
|
82
|
-
|
83
|
-
def try_opensrs
|
84
|
-
begin
|
85
|
-
yield
|
86
|
-
rescue Exception => e
|
87
|
-
exception = OpenSRSException.new(e.message)
|
88
|
-
exception.set_backtrace(e.backtrace)
|
89
|
-
raise exception
|
90
|
-
end
|
91
|
-
end
|
92
74
|
end
|
93
75
|
end
|
data/lib/moo_moo/command.rb
CHANGED
@@ -6,14 +6,10 @@ module MooMoo
|
|
6
6
|
# * <tt>:action</tt> - action of the command
|
7
7
|
# * <tt>:object</tt> - object the command operates on
|
8
8
|
# * <tt>:params</tt> - additional parameters for the command
|
9
|
-
|
10
|
-
# ==== Optional
|
11
|
-
# * <tt>:cookie</tt> - a cookie for the domain if the command requires it
|
12
|
-
def initialize(action, object, params = {}, cookie = nil)
|
9
|
+
def initialize(action, object, params = {})
|
13
10
|
@action = action
|
14
11
|
@object = object
|
15
12
|
@params = params
|
16
|
-
@cookie = cookie
|
17
13
|
end
|
18
14
|
|
19
15
|
# Runs the command against OpenSRS server
|
@@ -25,7 +21,7 @@ module MooMoo
|
|
25
21
|
# * <tt>:port</tt> - port to connect to
|
26
22
|
def run(host, key, user, port)
|
27
23
|
@returned_parameters = Faraday.new(:url => "https://#{host}:#{port}", :ssl => {:verify => true}) do |c|
|
28
|
-
c.request :open_srs_xml_builder, @action, @object, @
|
24
|
+
c.request :open_srs_xml_builder, @action, @object, @params, key, user
|
29
25
|
c.response :parse_open_srs
|
30
26
|
c.response :open_srs_errors
|
31
27
|
c.adapter :net_http
|
data/lib/moo_moo/config.rb
CHANGED
@@ -4,16 +4,16 @@ module MooMoo
|
|
4
4
|
class Config
|
5
5
|
attr_accessor :host
|
6
6
|
attr_accessor :key
|
7
|
-
attr_accessor :
|
8
|
-
attr_accessor :
|
7
|
+
attr_accessor :username
|
8
|
+
attr_accessor :password
|
9
9
|
attr_accessor :port
|
10
10
|
|
11
11
|
def initialize
|
12
|
-
@host
|
13
|
-
@key
|
14
|
-
@
|
15
|
-
@
|
16
|
-
@port
|
12
|
+
@host = default_option("host") || 'horizon.opensrs.net'
|
13
|
+
@key = default_option("key")
|
14
|
+
@username = default_option("username")
|
15
|
+
@password = default_option("password")
|
16
|
+
@port = default_option("port")
|
17
17
|
end
|
18
18
|
|
19
19
|
private
|
@@ -1,12 +1,10 @@
|
|
1
1
|
module MooMoo
|
2
2
|
class OpenSRSErrors < Faraday::Response::Middleware
|
3
|
-
|
4
3
|
def on_complete(env)
|
5
4
|
# Checks for invalid http status
|
6
5
|
unless (200..299).include?(env[:status])
|
7
6
|
raise OpenSRSException, "Bad HTTP Status: #{env[:status]}"
|
8
7
|
end
|
9
8
|
end
|
10
|
-
|
11
9
|
end
|
12
10
|
end
|
@@ -2,14 +2,13 @@ module MooMoo
|
|
2
2
|
class OpenSRSXMLBuilder < Faraday::Middleware
|
3
3
|
dependency 'rexml/document'
|
4
4
|
dependency 'digest/md5'
|
5
|
-
|
5
|
+
|
6
6
|
def initialize(app, *args)
|
7
7
|
@action = args[0]
|
8
8
|
@object = args[1]
|
9
|
-
@
|
10
|
-
@
|
11
|
-
@
|
12
|
-
@user = args[5]
|
9
|
+
@params = args[2] || {}
|
10
|
+
@key = args[3]
|
11
|
+
@user = args[4]
|
13
12
|
super(app)
|
14
13
|
end
|
15
14
|
|
@@ -24,7 +23,7 @@ module MooMoo
|
|
24
23
|
@app.call(env)
|
25
24
|
end
|
26
25
|
|
27
|
-
|
26
|
+
private
|
28
27
|
|
29
28
|
# Builds an XML string of the command which can be sent to OpenSRS
|
30
29
|
def build_command
|
@@ -52,19 +51,14 @@ module MooMoo
|
|
52
51
|
doc.root.elements["body/data_block/dt_assoc/item[@key='action']"].text = @action
|
53
52
|
doc.root.elements["body/data_block/dt_assoc/item[@key='object']"].text = @object
|
54
53
|
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
end
|
59
|
-
|
60
|
-
unless @params.nil?
|
61
|
-
elem = doc.root.elements["body/data_block/dt_assoc"].add_element('item', {'key' => 'attributes'})
|
62
|
-
build_child(elem, @params)
|
54
|
+
@params.each do |key, value|
|
55
|
+
elem = doc.root.elements["body/data_block/dt_assoc"].add_element('item', {'key' => key})
|
56
|
+
build_child(elem, value)
|
63
57
|
end
|
64
58
|
|
65
59
|
doc
|
66
60
|
end
|
67
|
-
|
61
|
+
|
68
62
|
# Adds XML child elements to the specified XML element for a given collection
|
69
63
|
#
|
70
64
|
# ==== Required
|
@@ -87,7 +81,6 @@ module MooMoo
|
|
87
81
|
elem.text = coll
|
88
82
|
end
|
89
83
|
end
|
90
|
-
|
91
84
|
|
92
85
|
def signature(content)
|
93
86
|
Digest::MD5.hexdigest(
|
@@ -96,6 +89,5 @@ module MooMoo
|
|
96
89
|
) + @key
|
97
90
|
)
|
98
91
|
end
|
99
|
-
|
100
92
|
end
|
101
93
|
end
|
@@ -4,13 +4,13 @@ module MooMoo
|
|
4
4
|
def on_complete(env)
|
5
5
|
env[:body] = parse_response(env[:body])
|
6
6
|
end
|
7
|
-
|
7
|
+
|
8
8
|
def response_values(env)
|
9
9
|
{:status => env[:status], :headers => env[:response_headers], :body => env[:body]}
|
10
10
|
end
|
11
|
-
|
11
|
+
|
12
12
|
private
|
13
|
-
|
13
|
+
|
14
14
|
# Parses an XML response from the OpenSRS registry and generates a
|
15
15
|
# hash containing all of the data. Elements with child elements
|
16
16
|
# are converted into hashes themselves, with the :element_text entry
|
data/lib/moo_moo/response.rb
CHANGED
@@ -1,39 +1,34 @@
|
|
1
1
|
module MooMoo
|
2
|
+
# Based on opensrs_xmlapi.pdf page 25.
|
2
3
|
class Response
|
4
|
+
attr_reader :hash
|
5
|
+
|
3
6
|
# Constructor
|
4
7
|
#
|
5
8
|
# ==== Required
|
6
|
-
# * <tt>:hash</tt> - hash
|
7
|
-
|
8
|
-
# ==== Optional
|
9
|
-
# * <tt>:key</tt> - primary key to use when indexing the hash
|
10
|
-
def initialize(hash, key = nil)
|
9
|
+
# * <tt>:hash</tt> - response hash
|
10
|
+
def initialize(hash)
|
11
11
|
@hash = hash
|
12
|
-
@key = key
|
13
12
|
end
|
14
13
|
|
15
14
|
# Returns whether or not the command executed was successful
|
16
|
-
#
|
17
15
|
def success?
|
18
|
-
@hash['is_success'].
|
19
|
-
end
|
20
|
-
|
21
|
-
# Returns the error message if one is present
|
22
|
-
#
|
23
|
-
def error_msg
|
24
|
-
@hash['response_text']
|
16
|
+
@hash['is_success'].to_i == 1
|
25
17
|
end
|
26
18
|
|
27
19
|
# Returns the response code if one is present
|
28
|
-
|
29
|
-
def error_code
|
20
|
+
def code
|
30
21
|
@hash['response_code'].to_i
|
31
22
|
end
|
32
23
|
|
33
|
-
# Returns the
|
34
|
-
|
35
|
-
|
36
|
-
|
24
|
+
# Returns the response message if one is present
|
25
|
+
def text
|
26
|
+
@hash['response_text']
|
27
|
+
end
|
28
|
+
|
29
|
+
# Returns the response attributes.
|
30
|
+
def attributes
|
31
|
+
@hash['attributes']
|
37
32
|
end
|
38
33
|
end
|
39
34
|
end
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/lib/moo_moo/version.rb
CHANGED
data/lib/moo_moo.rb
CHANGED
@@ -1,22 +1,15 @@
|
|
1
1
|
require 'moo_moo/exceptions'
|
2
2
|
require 'faraday'
|
3
|
+
require 'moo_moo/version'
|
4
|
+
require 'moo_moo/config'
|
5
|
+
require 'moo_moo/command'
|
6
|
+
require 'moo_moo/response'
|
7
|
+
require 'moo_moo/base'
|
8
|
+
require 'moo_moo/middleware/open_srs_errors'
|
9
|
+
require 'moo_moo/middleware/parse_open_srs'
|
10
|
+
require 'moo_moo/middleware/open_srs_xml_builder'
|
3
11
|
|
4
12
|
module MooMoo
|
5
|
-
autoload :Version, 'moo_moo/version'
|
6
|
-
autoload :Config, 'moo_moo/config'
|
7
|
-
autoload :Command, 'moo_moo/command'
|
8
|
-
autoload :Response, 'moo_moo/response'
|
9
|
-
autoload :Base, 'moo_moo/base'
|
10
|
-
autoload :Lookup, 'moo_moo/lookup'
|
11
|
-
autoload :Nameserver, 'moo_moo/nameserver'
|
12
|
-
autoload :Provisioning, 'moo_moo/provisioning'
|
13
|
-
autoload :Transfer, 'moo_moo/transfer'
|
14
|
-
autoload :DnsZone, 'moo_moo/dns_zone'
|
15
|
-
autoload :Cookie, 'moo_moo/cookie'
|
16
|
-
autoload :OpenSRSErrors, 'moo_moo/middleware/open_srs_errors'
|
17
|
-
autoload :ParseOpenSRS, 'moo_moo/middleware/parse_open_srs'
|
18
|
-
autoload :OpenSRSXMLBuilder, 'moo_moo/middleware/open_srs_xml_builder'
|
19
|
-
|
20
13
|
class << self
|
21
14
|
attr_accessor :config
|
22
15
|
end
|
@@ -29,5 +22,12 @@ module MooMoo
|
|
29
22
|
self.config = Config.new
|
30
23
|
end
|
31
24
|
|
25
|
+
require 'moo_moo/services/lookup'
|
26
|
+
require 'moo_moo/services/nameserver'
|
27
|
+
require 'moo_moo/services/provisioning'
|
28
|
+
require 'moo_moo/services/transfer'
|
29
|
+
require 'moo_moo/services/dns_zone'
|
30
|
+
require 'moo_moo/services/cookie'
|
31
|
+
|
32
32
|
Faraday.register_middleware :request, :open_srs_xml_builder => MooMoo::OpenSRSXMLBuilder
|
33
33
|
Faraday.register_middleware :response, :open_srs_errors => MooMoo::OpenSRSErrors, :parse_open_srs => MooMoo::ParseOpenSRS
|
data/spec/integration_spec.rb
CHANGED
@@ -7,8 +7,7 @@ describe "Real World integration" do
|
|
7
7
|
|
8
8
|
VCR.use_cassette("integration/lookup") do
|
9
9
|
response = lookup.lookup_domain(:domain => "opensrs.net")
|
10
|
-
|
11
|
-
response.result["status"].should == "taken"
|
10
|
+
response.attributes["status"].should == "taken"
|
12
11
|
end
|
13
12
|
end
|
14
13
|
|
data/spec/moo_moo/base_spec.rb
CHANGED
@@ -11,7 +11,8 @@ end
|
|
11
11
|
describe MooMoo::Base do
|
12
12
|
|
13
13
|
before :each do
|
14
|
-
@service = SampleService.new("thehost",
|
14
|
+
@service = SampleService.new(:host => "thehost", :key => "thekey",
|
15
|
+
:username => "theuser", :password => "thepass", :port => "theport")
|
15
16
|
end
|
16
17
|
|
17
18
|
describe "class methods" do
|
@@ -21,7 +22,7 @@ describe MooMoo::Base do
|
|
21
22
|
params = {:the => :params, :cookie => "thecookie"}
|
22
23
|
|
23
24
|
@service.should_receive(:run_command).
|
24
|
-
with(:service1, :object1, params
|
25
|
+
with(:service1, :object1, params).
|
25
26
|
and_return("theresult")
|
26
27
|
|
27
28
|
@service.service1(params).should == "theresult"
|
@@ -31,7 +32,7 @@ describe MooMoo::Base do
|
|
31
32
|
params = {:the => :params, :cookie => "thecookie"}
|
32
33
|
|
33
34
|
@service.should_receive(:run_command).
|
34
|
-
with(:action2, :object2, params
|
35
|
+
with(:action2, :object2, params).
|
35
36
|
and_return("theresult")
|
36
37
|
|
37
38
|
@service.service2(params).should == "theresult"
|
@@ -39,10 +40,10 @@ describe MooMoo::Base do
|
|
39
40
|
|
40
41
|
it "service3" do
|
41
42
|
params = {:the => :params, :cookie => "thecookie"}
|
42
|
-
expected_params = {:the => :params, :
|
43
|
+
expected_params = {:the => :params, :cookie => "thecookie", :example => "theexample"}
|
43
44
|
|
44
45
|
@service.should_receive(:run_command).
|
45
|
-
with(:service3, :object3, expected_params
|
46
|
+
with(:service3, :object3, expected_params).
|
46
47
|
and_return("theresult")
|
47
48
|
|
48
49
|
@service.service3(params).should == "theresult"
|
@@ -57,21 +58,11 @@ describe MooMoo::Base do
|
|
57
58
|
command = stub()
|
58
59
|
command.should_receive(:run).with("thehost", "thekey", "theuser", "theport").and_return(result)
|
59
60
|
MooMoo::Command.should_receive(:new).
|
60
|
-
with("theaction", "theobject", {
|
61
|
+
with("theaction", "theobject", {"the" => "params"}).
|
61
62
|
and_return(command)
|
62
63
|
|
63
|
-
response = @service.run_command("theaction", "theobject", {
|
64
|
-
response.
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
describe "#try_opensrs" do
|
69
|
-
it "raises an OpenSRSException" do
|
70
|
-
expect do
|
71
|
-
MooMoo::Base.new.instance_eval do
|
72
|
-
try_opensrs { raise "Exception message" }
|
73
|
-
end
|
74
|
-
end.to raise_error MooMoo::OpenSRSException
|
64
|
+
response = @service.run_command("theaction", "theobject", {"the" => "params"})
|
65
|
+
response.hash.should == result
|
75
66
|
end
|
76
67
|
end
|
77
68
|
end
|
@@ -10,9 +10,8 @@ describe MooMoo::Command do
|
|
10
10
|
:array => [{:param => "arrayvalue1"}, {:param => "arrayvalue2"}],
|
11
11
|
:array_list => ["arrayvalue1", "arrayvalue2"]
|
12
12
|
} }
|
13
|
-
let(:cookie) { "thecookie" }
|
14
13
|
|
15
|
-
let(:command) { MooMoo::Command.new(action, object, params
|
14
|
+
let(:command) { MooMoo::Command.new(action, object, params) }
|
16
15
|
|
17
16
|
describe "#run" do
|
18
17
|
describe "success response" do
|
data/spec/moo_moo/config_spec.rb
CHANGED
@@ -7,8 +7,8 @@ describe MooMoo::Config do
|
|
7
7
|
|
8
8
|
it { @config.should have_attr_accessor :host }
|
9
9
|
it { @config.should have_attr_accessor :key }
|
10
|
-
it { @config.should have_attr_accessor :
|
11
|
-
it { @config.should have_attr_accessor :
|
10
|
+
it { @config.should have_attr_accessor :username }
|
11
|
+
it { @config.should have_attr_accessor :password }
|
12
12
|
it { @config.should have_attr_accessor :port }
|
13
13
|
|
14
14
|
describe "default configuration" do
|
@@ -18,8 +18,8 @@ describe MooMoo::Config do
|
|
18
18
|
"
|
19
19
|
host: thehost
|
20
20
|
key: thekey
|
21
|
-
|
22
|
-
|
21
|
+
username: theuser
|
22
|
+
password: thepass
|
23
23
|
port: theport
|
24
24
|
"
|
25
25
|
)
|
@@ -36,11 +36,11 @@ describe MooMoo::Config do
|
|
36
36
|
end
|
37
37
|
|
38
38
|
it "should set default user from default options file" do
|
39
|
-
@config.
|
39
|
+
@config.username.should == "theuser"
|
40
40
|
end
|
41
41
|
|
42
42
|
it "should set default pass from default options file" do
|
43
|
-
@config.
|
43
|
+
@config.password.should == "thepass"
|
44
44
|
end
|
45
45
|
|
46
46
|
it "should set default port from default options file" do
|
@@ -5,13 +5,17 @@ describe MooMoo::OpenSRSXMLBuilder do
|
|
5
5
|
describe "#build_command" do
|
6
6
|
before :each do
|
7
7
|
params = {
|
8
|
-
:
|
9
|
-
:
|
10
|
-
:
|
11
|
-
|
8
|
+
:cookie => "thecookie",
|
9
|
+
:domain => "mydomain.com",
|
10
|
+
:attributes => {
|
11
|
+
:string => "stringparam",
|
12
|
+
:hash => {:the => "hashparam"},
|
13
|
+
:array => [{:param => "arrayvalue1"}, {:param => "arrayvalue2"}],
|
14
|
+
:array_list => ["arrayvalue1", "arrayvalue2"]
|
15
|
+
}
|
12
16
|
}
|
13
|
-
|
14
|
-
middleware = described_class.new(lambda{|env| env}, "theaction", "theobject",
|
17
|
+
|
18
|
+
middleware = described_class.new(lambda{|env| env}, "theaction", "theobject", params, "key")
|
15
19
|
env = {:body => nil, :request_headers => Faraday::Utils::Headers.new}
|
16
20
|
result = middleware.call(env)
|
17
21
|
@body = REXML::Document.new(result[:body])
|
@@ -30,6 +34,10 @@ describe MooMoo::OpenSRSXMLBuilder do
|
|
30
34
|
end
|
31
35
|
|
32
36
|
describe "attributes" do
|
37
|
+
it "should set the domain param" do
|
38
|
+
@body.root.elements["body/data_block/dt_assoc/item[@key='domain']"].text.should == "mydomain.com"
|
39
|
+
end
|
40
|
+
|
33
41
|
it "should set string params" do
|
34
42
|
@body.root.elements["body/data_block/dt_assoc/item[@key='attributes']/dt_assoc/item[@key='string']"].text.should == "stringparam"
|
35
43
|
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'date'
|
3
|
+
|
4
|
+
describe MooMoo::Response do
|
5
|
+
subject { MooMoo::Response.new(
|
6
|
+
"is_success" => "1", "response_code" => "100",
|
7
|
+
"response_text" => "The message", "attributes" => "The attributes") }
|
8
|
+
|
9
|
+
describe "#hash" do
|
10
|
+
it "retrieves the response hash" do
|
11
|
+
subject.hash.should == { "is_success" => "1", "response_code" => "100",
|
12
|
+
"response_text" => "The message", "attributes" => "The attributes" }
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
describe "#success?" do
|
17
|
+
it "is true when 1" do
|
18
|
+
subject.success?.should be_true
|
19
|
+
end
|
20
|
+
|
21
|
+
it "is false when not 1" do
|
22
|
+
MooMoo::Response.new("is_success" => "0").success?.should be_false
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
describe "#code" do
|
27
|
+
it "retrieves response code" do
|
28
|
+
subject.code.should == 100
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
describe "#text" do
|
33
|
+
it "retrieves response text" do
|
34
|
+
subject.text.should == "The message"
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
describe "#attributes" do
|
39
|
+
it "retrieves response attributes" do
|
40
|
+
subject.attributes.should == "The attributes"
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/spec/moo_moo_spec.rb
CHANGED
@@ -12,18 +12,18 @@ describe MooMoo do
|
|
12
12
|
|
13
13
|
it "loads default settings from config if none are provided" do
|
14
14
|
MooMoo.configure do |config|
|
15
|
-
config.host
|
16
|
-
config.key
|
17
|
-
config.
|
18
|
-
config.
|
15
|
+
config.host = 'host.com'
|
16
|
+
config.key = 'secret'
|
17
|
+
config.username = 'username'
|
18
|
+
config.password = 'secret2'
|
19
19
|
end
|
20
20
|
|
21
21
|
opensrs = MooMoo::Base.new
|
22
22
|
|
23
|
-
opensrs.host.should
|
24
|
-
opensrs.key.should
|
25
|
-
opensrs.
|
26
|
-
opensrs.
|
23
|
+
opensrs.host.should == 'host.com'
|
24
|
+
opensrs.key.should == 'secret'
|
25
|
+
opensrs.username.should == 'username'
|
26
|
+
opensrs.password.should == 'secret2'
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
data/spec/spec_helper.rb
CHANGED
@@ -55,15 +55,15 @@ RSpec.configure do |c|
|
|
55
55
|
c.before(:each) do
|
56
56
|
MooMoo.configure do |config|
|
57
57
|
if live_test?
|
58
|
-
config.host
|
59
|
-
config.key
|
60
|
-
config.
|
61
|
-
config.
|
58
|
+
config.host = ENV['OPENSRS_TEST_URL'] if ENV['OPENSRS_TEST_URL']
|
59
|
+
config.key = ENV['OPENSRS_TEST_KEY'] || raise(ArgumentError, "OPENSRS_TEST_KEY is required")
|
60
|
+
config.username = ENV['OPENSRS_TEST_USER'] || raise(ArgumentError, "OPENSRS_TEST_USER is required")
|
61
|
+
config.password = ENV['OPENSRS_TEST_PASS'] || raise(ArgumentError, "OPENSRS_TEST_PASS is required")
|
62
62
|
else
|
63
|
-
config.host
|
64
|
-
config.key
|
65
|
-
config.
|
66
|
-
config.
|
63
|
+
config.host = "testhost.com"
|
64
|
+
config.key = "testkey"
|
65
|
+
config.username = "testuser"
|
66
|
+
config.password = "testpass"
|
67
67
|
end
|
68
68
|
end
|
69
69
|
end
|
@@ -87,7 +87,7 @@ RSpec::Matchers.define(:have_registered_service) do |*args|
|
|
87
87
|
match do |object|
|
88
88
|
parameters = {:the => :params, :cookie => "thecookie"}
|
89
89
|
object.should_receive(:run_command).
|
90
|
-
with(action_name, object_name, parameters
|
90
|
+
with(action_name, object_name, parameters).
|
91
91
|
and_return("theresult")
|
92
92
|
|
93
93
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: moo_moo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.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: 2012-07-
|
12
|
+
date: 2012-07-24 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: extlib
|
@@ -142,17 +142,17 @@ files:
|
|
142
142
|
- lib/moo_moo/base.rb
|
143
143
|
- lib/moo_moo/command.rb
|
144
144
|
- lib/moo_moo/config.rb
|
145
|
-
- lib/moo_moo/cookie.rb
|
146
|
-
- lib/moo_moo/dns_zone.rb
|
147
145
|
- lib/moo_moo/exceptions.rb
|
148
|
-
- lib/moo_moo/lookup.rb
|
149
146
|
- lib/moo_moo/middleware/open_srs_errors.rb
|
150
147
|
- lib/moo_moo/middleware/open_srs_xml_builder.rb
|
151
148
|
- lib/moo_moo/middleware/parse_open_srs.rb
|
152
|
-
- lib/moo_moo/nameserver.rb
|
153
|
-
- lib/moo_moo/provisioning.rb
|
154
149
|
- lib/moo_moo/response.rb
|
155
|
-
- lib/moo_moo/
|
150
|
+
- lib/moo_moo/services/cookie.rb
|
151
|
+
- lib/moo_moo/services/dns_zone.rb
|
152
|
+
- lib/moo_moo/services/lookup.rb
|
153
|
+
- lib/moo_moo/services/nameserver.rb
|
154
|
+
- lib/moo_moo/services/provisioning.rb
|
155
|
+
- lib/moo_moo/services/transfer.rb
|
156
156
|
- lib/moo_moo/version.rb
|
157
157
|
- moo_moo.gemspec
|
158
158
|
- spec/fixtures/success_response.xml
|
@@ -160,13 +160,14 @@ files:
|
|
160
160
|
- spec/moo_moo/base_spec.rb
|
161
161
|
- spec/moo_moo/command_spec.rb
|
162
162
|
- spec/moo_moo/config_spec.rb
|
163
|
-
- spec/moo_moo/cookie_spec.rb
|
164
|
-
- spec/moo_moo/dns_zone_spec.rb
|
165
|
-
- spec/moo_moo/lookup_spec.rb
|
166
163
|
- spec/moo_moo/middleware/open_srs_xml_builder_spec.rb
|
167
|
-
- spec/moo_moo/
|
168
|
-
- spec/moo_moo/
|
169
|
-
- spec/moo_moo/
|
164
|
+
- spec/moo_moo/response_spec.rb
|
165
|
+
- spec/moo_moo/services/cookie_spec.rb
|
166
|
+
- spec/moo_moo/services/dns_zone_spec.rb
|
167
|
+
- spec/moo_moo/services/lookup_spec.rb
|
168
|
+
- spec/moo_moo/services/nameserver_spec.rb
|
169
|
+
- spec/moo_moo/services/provisioning_spec.rb
|
170
|
+
- spec/moo_moo/services/transfer_spec.rb
|
170
171
|
- spec/moo_moo_spec.rb
|
171
172
|
- spec/spec_helper.rb
|
172
173
|
- spec/vcr_cassettes/integration/lookup.yml
|
@@ -184,7 +185,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
184
185
|
version: '0'
|
185
186
|
segments:
|
186
187
|
- 0
|
187
|
-
hash: -
|
188
|
+
hash: -294129659865012821
|
188
189
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
189
190
|
none: false
|
190
191
|
requirements:
|
@@ -193,7 +194,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
193
194
|
version: '0'
|
194
195
|
segments:
|
195
196
|
- 0
|
196
|
-
hash: -
|
197
|
+
hash: -294129659865012821
|
197
198
|
requirements: []
|
198
199
|
rubyforge_project: opensrs
|
199
200
|
rubygems_version: 1.8.23
|
@@ -206,13 +207,14 @@ test_files:
|
|
206
207
|
- spec/moo_moo/base_spec.rb
|
207
208
|
- spec/moo_moo/command_spec.rb
|
208
209
|
- spec/moo_moo/config_spec.rb
|
209
|
-
- spec/moo_moo/cookie_spec.rb
|
210
|
-
- spec/moo_moo/dns_zone_spec.rb
|
211
|
-
- spec/moo_moo/lookup_spec.rb
|
212
210
|
- spec/moo_moo/middleware/open_srs_xml_builder_spec.rb
|
213
|
-
- spec/moo_moo/
|
214
|
-
- spec/moo_moo/
|
215
|
-
- spec/moo_moo/
|
211
|
+
- spec/moo_moo/response_spec.rb
|
212
|
+
- spec/moo_moo/services/cookie_spec.rb
|
213
|
+
- spec/moo_moo/services/dns_zone_spec.rb
|
214
|
+
- spec/moo_moo/services/lookup_spec.rb
|
215
|
+
- spec/moo_moo/services/nameserver_spec.rb
|
216
|
+
- spec/moo_moo/services/provisioning_spec.rb
|
217
|
+
- spec/moo_moo/services/transfer_spec.rb
|
216
218
|
- spec/moo_moo_spec.rb
|
217
219
|
- spec/spec_helper.rb
|
218
220
|
- spec/vcr_cassettes/integration/lookup.yml
|