Module: Contracts
- Defined in:
- lib/contracts.rb,
lib/contracts/request.rb,
lib/contracts/version.rb,
lib/contracts/contract.rb,
lib/contracts/response.rb,
lib/contracts/rake_task.rb,
lib/contracts/extensions.rb,
lib/contracts/response_adapter.rb,
lib/contracts/instantiated_contract.rb
Defined Under Namespace
Modules: Extensions
Classes: Contract, InstantiatedContract, RakeTask, Request, Response, ResponseAdapter
Constant Summary
collapse
- VERSION =
"0.0.1"
Class Method Summary
collapse
Class Method Details
.build_from_file(contract_path, host) ⇒ Object
19
20
21
22
23
24
|
# File 'lib/contracts.rb', line 19
def self.build_from_file(contract_path, host)
definition = JSON.parse(File.read(contract_path))
request = Request.new(host, definition["request"])
response = Response.new(definition["response"])
Contract.new(request, response)
end
|
.register(name, contract) ⇒ Object
26
27
28
29
|
# File 'lib/contracts.rb', line 26
def self.register(name, contract)
raise ArgumentError, "contract \" #{name}\" has already been registered" if registered.has_key?(name)
registered[name] = contract
end
|
.registered ⇒ Object
39
40
41
|
# File 'lib/contracts.rb', line 39
def self.registered
@registered ||= {}
end
|
.unregister_all! ⇒ Object
43
44
45
|
# File 'lib/contracts.rb', line 43
def self.unregister_all!
@registered = {}
end
|
.use(contract_name, values = nil, path = nil) ⇒ Object
31
32
33
34
35
36
37
|
# File 'lib/contracts.rb', line 31
def self.use(contract_name, values = nil, path = nil)
raise ArgumentError, "contract \"#{contract_name}\" not found" unless registered.has_key?(contract_name)
instantiated_contract = registered[contract_name].instantiate(values)
instantiated_contract.request.path = path unless path.nil?
instantiated_contract.stub!
instantiated_contract
end
|