pact_broker 0.0.5 → 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.md +15 -0
- data/Gemfile.lock +1 -1
- data/lib/pact_broker/api/decorators.rb +6 -0
- data/lib/pact_broker/api/decorators/base_decorator.rb +33 -0
- data/lib/pact_broker/api/{representors → decorators}/pact_broker_urls.rb +17 -5
- data/lib/pact_broker/api/decorators/pact_collection_decorator.rb +38 -0
- data/lib/pact_broker/api/decorators/pact_decorator.rb +22 -0
- data/lib/pact_broker/api/decorators/pact_pacticipant_decorator.rb +25 -0
- data/lib/pact_broker/api/{representors/pacticipant_collection_representor.rb → decorators/pacticipant_collection_decorator.rb} +6 -9
- data/lib/pact_broker/api/decorators/pacticipant_decorator.rb +32 -0
- data/lib/pact_broker/api/{representors → decorators}/representable_pact.rb +1 -1
- data/lib/pact_broker/api/decorators/version_decorator.rb +16 -0
- data/lib/pact_broker/repositories/pact_repository.rb +1 -0
- data/lib/pact_broker/resources/{json_resource.rb → base_resource.rb} +12 -14
- data/lib/pact_broker/resources/latest_pact.rb +2 -13
- data/lib/pact_broker/resources/latest_pacts.rb +3 -24
- data/lib/pact_broker/resources/pact.rb +9 -8
- data/lib/pact_broker/resources/pacticipant.rb +15 -27
- data/lib/pact_broker/resources/pacticipants.rb +3 -16
- data/lib/pact_broker/version.rb +1 -1
- data/spec/lib/pact_broker/api/{representors/pact_collection_representor_spec.rb → decorators/pact_collection_decorator_spec.rb} +3 -3
- data/spec/lib/pact_broker/api/{representors → decorators}/representable_pact_spec.rb +2 -2
- metadata +19 -19
- data/lib/pact_broker/api/representors.rb +0 -6
- data/lib/pact_broker/api/representors/pact_collection_representor.rb +0 -34
- data/lib/pact_broker/api/representors/pact_pacticipant_representor.rb +0 -27
- data/lib/pact_broker/api/representors/pact_representor.rb +0 -27
- data/lib/pact_broker/api/representors/pacticipant_empty_collection_representor.rb +0 -33
- data/lib/pact_broker/api/representors/pacticipant_representor.rb +0 -35
- data/lib/pact_broker/api/representors/version_representor.rb +0 -20
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,21 @@ Do this to generate your change history
|
|
2
2
|
|
3
3
|
$ git log --date=relative --pretty=format:' * %h - %s (%an, %ad)' 'package/pact-broker-0.0.PRODVERSION'..'package/pact-broker-0.0.NEWVERSION'
|
4
4
|
|
5
|
+
#### 0.0.6 (2013-11-15)
|
6
|
+
|
7
|
+
* 021faae - Refactoring resources to DRY out code (Beth, 18 hours ago)
|
8
|
+
* bab0367 - Cleaning up the base_url setting hack. (Beth, 19 hours ago)
|
9
|
+
* f6df613 - Renamed representors to decorators (Beth, 19 hours ago)
|
10
|
+
* 3e89c20 - Created BaseDecorator (Beth, 19 hours ago)
|
11
|
+
* e5c3f88 - Changing from representors to decorators (Beth, 19 hours ago)
|
12
|
+
* b2eeb6f - Added back resource_exists? implementation in pacticipant resource - accidental deletion. (Beth, 19 hours ago)
|
13
|
+
* 1962a05 - Ever so slightly less hacky way of handling PATCH (Beth, 21 hours ago)
|
14
|
+
* 587e9c1 - First go at trying to use a dynamic base URL - to be continued (Beth, 2 days ago)
|
15
|
+
* ab9c185 - Including URLs for the dynamically calculated latest pact, not the hard link to the latest pact. (Beth, 2 days ago)
|
16
|
+
* 5621e41 - Beginning change from Roar Representor to Decoractor. Updating to new 'latest pact' URL (Beth, 2 days ago)
|
17
|
+
* d1bd995 - Adding missing PactBroker::Logging require (Beth, 2 days ago)
|
18
|
+
|
19
|
+
|
5
20
|
#### 0.0.5 (2013-11-13)
|
6
21
|
|
7
22
|
* 2cf987c - Added data migration to script which adds order column (Beth, 56 minutes ago)
|
data/Gemfile.lock
CHANGED
@@ -0,0 +1,6 @@
|
|
1
|
+
require 'pact_broker/api/decorators/pacticipant_decorator'
|
2
|
+
require 'pact_broker/api/decorators/pacticipant_collection_decorator'
|
3
|
+
require 'pact_broker/api/decorators/version_decorator'
|
4
|
+
require 'pact_broker/api/decorators/pact_collection_decorator'
|
5
|
+
require 'pact_broker/api/decorators/pact_pacticipant_decorator'
|
6
|
+
require 'pact_broker/api/decorators/pact_decorator'
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'roar/decorator'
|
2
|
+
require 'roar/representer/json/hal'
|
3
|
+
require 'pact_broker/api/decorators/pact_broker_urls'
|
4
|
+
|
5
|
+
module PactBroker
|
6
|
+
|
7
|
+
module Api
|
8
|
+
|
9
|
+
module Decorators
|
10
|
+
|
11
|
+
class BaseDecorator < Roar::Decorator
|
12
|
+
include Roar::Representer::JSON::HAL
|
13
|
+
include Roar::Representer::JSON::HAL::Links
|
14
|
+
include PactBroker::Api::PactBrokerUrls
|
15
|
+
|
16
|
+
def initialize represented, base_url = nil
|
17
|
+
super(represented)
|
18
|
+
@base_url = base_url
|
19
|
+
end
|
20
|
+
|
21
|
+
def to_json
|
22
|
+
json = super()
|
23
|
+
if @base_url
|
24
|
+
json.gsub(base_url_placeholder, @base_url)
|
25
|
+
else
|
26
|
+
json
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -2,12 +2,14 @@ module PactBroker
|
|
2
2
|
module Api
|
3
3
|
module PactBrokerUrls
|
4
4
|
|
5
|
-
|
6
|
-
|
5
|
+
BASE_URL_PLACEHOLDER = "http://_______PACT_BROKER_BASE_URL_PLACEHOLDER_TO_BE_REPLACED_AFTER_TO_JSON_______"
|
6
|
+
|
7
|
+
def base_url_placeholder
|
8
|
+
BASE_URL_PLACEHOLDER
|
7
9
|
end
|
8
10
|
|
9
11
|
def pacticipants_url
|
10
|
-
"#{
|
12
|
+
"#{base_url_placeholder}/pacticipants"
|
11
13
|
end
|
12
14
|
|
13
15
|
def pacticipant_url pacticipant
|
@@ -27,11 +29,21 @@ module PactBroker
|
|
27
29
|
end
|
28
30
|
|
29
31
|
def pact_url pact
|
30
|
-
"#{
|
32
|
+
"#{pactigration_base_url(pact)}/version/#{pact.consumer.version.number}"
|
33
|
+
end
|
34
|
+
|
35
|
+
def latest_pact_url pact
|
36
|
+
"#{pactigration_base_url(pact)}/latest"
|
31
37
|
end
|
32
38
|
|
33
39
|
def latest_pacts_url
|
34
|
-
"#{
|
40
|
+
"#{base_url_placeholder}/pacts/latest"
|
41
|
+
end
|
42
|
+
|
43
|
+
private
|
44
|
+
|
45
|
+
def pactigration_base_url pact
|
46
|
+
"#{base_url_placeholder}/pact/provider/#{url_encode(pact.provider.name)}/consumer/#{url_encode(pact.consumer.name)}"
|
35
47
|
end
|
36
48
|
|
37
49
|
def url_encode param
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require_relative 'base_decorator'
|
2
|
+
require_relative 'version_decorator'
|
3
|
+
require_relative 'pact_decorator'
|
4
|
+
require_relative 'representable_pact'
|
5
|
+
|
6
|
+
module PactBroker
|
7
|
+
|
8
|
+
module Api
|
9
|
+
|
10
|
+
module Decorators
|
11
|
+
|
12
|
+
class PactCollectionRepresenter < BaseDecorator
|
13
|
+
include Roar::Representer::JSON::HAL
|
14
|
+
include PactBroker::Api::PactBrokerUrls
|
15
|
+
|
16
|
+
collection :pacts, decorator_scope: true, :class => PactBroker::Models::Pact, :extend => PactBroker::Api::Decorators::PactRepresenter
|
17
|
+
|
18
|
+
def pacts
|
19
|
+
represented.collect{ | pact | create_representable_pact(pact) }
|
20
|
+
end
|
21
|
+
|
22
|
+
def create_representable_pact pact
|
23
|
+
PactBroker::Api::Decorators::RepresentablePact.new(pact)
|
24
|
+
end
|
25
|
+
|
26
|
+
link :self do
|
27
|
+
latest_pacts_url
|
28
|
+
end
|
29
|
+
|
30
|
+
# This is the LATEST pact URL
|
31
|
+
links :pacts do
|
32
|
+
represented.collect{ | pact | {:href => latest_pact_url(pact), :consumer => pact.consumer.name, :provider => pact.provider.name } }
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require_relative 'base_decorator'
|
2
|
+
require_relative 'pact_pacticipant_decorator'
|
3
|
+
|
4
|
+
module PactBroker
|
5
|
+
|
6
|
+
module Api
|
7
|
+
|
8
|
+
module Decorators
|
9
|
+
|
10
|
+
class PactRepresenter < BaseDecorator
|
11
|
+
|
12
|
+
property :consumer, :extend => PactBroker::Api::Decorators::PactPacticipantRepresenter, :embedded => true
|
13
|
+
property :provider, :extend => PactBroker::Api::Decorators::PactPacticipantRepresenter, :embedded => true
|
14
|
+
|
15
|
+
link :self do
|
16
|
+
pact_url(represented)
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require_relative 'pact_broker_urls'
|
2
|
+
require_relative 'version_decorator'
|
3
|
+
require_relative 'base_decorator'
|
4
|
+
|
5
|
+
|
6
|
+
module PactBroker
|
7
|
+
|
8
|
+
module Api
|
9
|
+
|
10
|
+
module Decorators
|
11
|
+
|
12
|
+
class PactPacticipantRepresenter < BaseDecorator
|
13
|
+
|
14
|
+
property :name
|
15
|
+
property :repository_url
|
16
|
+
property :version, :class => "PactBroker::Models::Version", :extend => PactBroker::Api::Decorators::VersionRepresenter, :embedded => true
|
17
|
+
|
18
|
+
link :self do
|
19
|
+
pacticipant_url(represented)
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'roar/representer/json/hal'
|
2
2
|
require_relative 'pact_broker_urls'
|
3
|
-
require_relative '
|
3
|
+
require_relative 'version_decorator'
|
4
4
|
|
5
5
|
module Roar
|
6
6
|
module Representer
|
@@ -26,17 +26,14 @@ module PactBroker
|
|
26
26
|
|
27
27
|
module Api
|
28
28
|
|
29
|
-
module
|
29
|
+
module Decorators
|
30
30
|
|
31
|
-
|
32
|
-
include Roar::Representer::JSON::HAL
|
33
|
-
include PactBroker::Api::PactBrokerUrls
|
31
|
+
class PacticipantCollectionRepresenter < BaseDecorator
|
34
32
|
|
35
|
-
|
36
|
-
collection :pacticipants, :class => PactBroker::Models::Pacticipant, :extend => PactBroker::Api::Representors::PacticipantRepresenter
|
33
|
+
collection :pacticipants, decorator_scope: true, :class => PactBroker::Models::Pacticipant, :extend => PactBroker::Api::Decorators::PacticipantRepresenter
|
37
34
|
|
38
35
|
def pacticipants
|
39
|
-
|
36
|
+
represented
|
40
37
|
end
|
41
38
|
|
42
39
|
link :self do
|
@@ -44,7 +41,7 @@ module PactBroker
|
|
44
41
|
end
|
45
42
|
|
46
43
|
links :pacticipants do
|
47
|
-
collect{ | pacticipant | {:href => pacticipant_url(pacticipant), :name => pacticipant.name } }
|
44
|
+
represented.collect{ | pacticipant | {:href => pacticipant_url(pacticipant), :name => pacticipant.name } }
|
48
45
|
end
|
49
46
|
|
50
47
|
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require_relative 'base_decorator'
|
2
|
+
require_relative 'version_decorator'
|
3
|
+
|
4
|
+
module PactBroker
|
5
|
+
|
6
|
+
module Api
|
7
|
+
|
8
|
+
module Decorators
|
9
|
+
|
10
|
+
class PacticipantRepresenter < BaseDecorator
|
11
|
+
|
12
|
+
property :name
|
13
|
+
property :repository_url
|
14
|
+
|
15
|
+
property :last_version, :class => PactBroker::Models::Version, :extend => PactBroker::Api::Decorators::VersionRepresenter, :embedded => true
|
16
|
+
|
17
|
+
link :self do
|
18
|
+
pacticipant_url(represented)
|
19
|
+
end
|
20
|
+
|
21
|
+
link :last_version do
|
22
|
+
last_version_url(represented)
|
23
|
+
end
|
24
|
+
|
25
|
+
link :versions do
|
26
|
+
versions_url(represented)
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -1,18 +1,11 @@
|
|
1
1
|
require 'webmachine'
|
2
|
-
require '
|
2
|
+
require 'pact_broker/services'
|
3
|
+
require 'pact_broker/api/decorators'
|
3
4
|
|
4
5
|
module PactBroker
|
5
6
|
|
6
7
|
module Resources
|
7
8
|
|
8
|
-
module PathInfo
|
9
|
-
def identifier_from_path
|
10
|
-
request.path_info.each_with_object({}) do | pair, hash|
|
11
|
-
hash[pair.first] = CGI::unescape(pair.last)
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
9
|
class ErrorHandler
|
17
10
|
def self.handle_exception e, response
|
18
11
|
response.body = {:message => e.message, :backtrace => e.backtrace }.to_json
|
@@ -20,13 +13,18 @@ module PactBroker
|
|
20
13
|
end
|
21
14
|
end
|
22
15
|
|
23
|
-
class
|
24
|
-
|
25
|
-
|
16
|
+
class BaseResource < Webmachine::Resource
|
17
|
+
|
18
|
+
include PactBroker::Services
|
19
|
+
|
20
|
+
def identifier_from_path
|
21
|
+
request.path_info.each_with_object({}) do | pair, hash|
|
22
|
+
hash[pair.first] = CGI::unescape(pair.last)
|
23
|
+
end
|
26
24
|
end
|
27
25
|
|
28
|
-
def
|
29
|
-
|
26
|
+
def request_base_url
|
27
|
+
request.uri.to_s.gsub(/#{request.uri.path}$/,'')
|
30
28
|
end
|
31
29
|
|
32
30
|
def handle_exception e
|
@@ -1,17 +1,10 @@
|
|
1
|
-
require '
|
2
|
-
require 'json'
|
3
|
-
|
4
|
-
require 'pact_broker/services'
|
5
|
-
require 'pact_broker/resources/json_resource'
|
1
|
+
require 'pact_broker/resources/base_resource'
|
6
2
|
|
7
3
|
module PactBroker
|
8
4
|
|
9
5
|
module Resources
|
10
6
|
|
11
|
-
class LatestPact <
|
12
|
-
|
13
|
-
include PactBroker::Services
|
14
|
-
include PactBroker::Resources::PathInfo
|
7
|
+
class LatestPact < BaseResource
|
15
8
|
|
16
9
|
def content_types_provided
|
17
10
|
[["application/json", :to_json]]
|
@@ -31,10 +24,6 @@ module PactBroker
|
|
31
24
|
@pact.json_content
|
32
25
|
end
|
33
26
|
|
34
|
-
def handle_exception e
|
35
|
-
PactBroker::Resources::ErrorHandler.handle_exception(e, response)
|
36
|
-
end
|
37
|
-
|
38
27
|
end
|
39
28
|
end
|
40
29
|
|
@@ -1,20 +1,11 @@
|
|
1
|
-
require '
|
2
|
-
require 'json'
|
3
|
-
|
4
|
-
require 'pact_broker/services'
|
5
|
-
require 'pact_broker/resources/json_resource'
|
6
|
-
|
7
|
-
require 'pact_broker/api/representors/representable_pact'
|
1
|
+
require 'pact_broker/resources/base_resource'
|
8
2
|
|
9
3
|
module PactBroker
|
10
4
|
|
11
5
|
module Resources
|
12
6
|
|
13
|
-
class LatestPacts <
|
7
|
+
class LatestPacts < BaseResource
|
14
8
|
|
15
|
-
include PactBroker::Services
|
16
|
-
|
17
|
-
#FIX to hal+json
|
18
9
|
def content_types_provided
|
19
10
|
[["application/hal+json", :to_json]]
|
20
11
|
end
|
@@ -28,19 +19,7 @@ module PactBroker
|
|
28
19
|
end
|
29
20
|
|
30
21
|
def generate_json pacts
|
31
|
-
pacts
|
32
|
-
pacts.extend(PactBroker::Api::Representors::PactCollectionRepresenter)
|
33
|
-
pacts.to_json
|
34
|
-
end
|
35
|
-
|
36
|
-
def handle_exception e
|
37
|
-
PactBroker::Resources::ErrorHandler.handle_exception(e, response)
|
38
|
-
end
|
39
|
-
|
40
|
-
private
|
41
|
-
|
42
|
-
def create_representable_pact pact
|
43
|
-
PactBroker::Api::Representors::RepresentablePact.new(pact)
|
22
|
+
PactBroker::Api::Decorators::PactCollectionRepresenter.new(pacts, request_base_url).to_json
|
44
23
|
end
|
45
24
|
|
46
25
|
end
|
@@ -1,18 +1,19 @@
|
|
1
|
-
require 'webmachine'
|
2
|
-
require 'json'
|
3
1
|
require 'cgi'
|
4
|
-
|
5
|
-
require 'pact_broker/services'
|
6
|
-
require 'pact_broker/resources/json_resource'
|
2
|
+
require 'pact_broker/resources/base_resource'
|
7
3
|
|
8
4
|
module PactBroker
|
9
5
|
|
10
6
|
module Resources
|
11
7
|
|
12
|
-
class Pact <
|
8
|
+
class Pact < BaseResource
|
9
|
+
|
10
|
+
def content_types_provided
|
11
|
+
[["application/json", :to_json]]
|
12
|
+
end
|
13
13
|
|
14
|
-
|
15
|
-
|
14
|
+
def content_types_accepted
|
15
|
+
[["application/json", :from_json]]
|
16
|
+
end
|
16
17
|
|
17
18
|
def allowed_methods
|
18
19
|
["GET", "PUT"]
|
@@ -1,19 +1,18 @@
|
|
1
|
-
require '
|
2
|
-
require 'json'
|
3
|
-
require 'cgi'
|
1
|
+
require 'pact_broker/resources/base_resource'
|
4
2
|
|
5
|
-
|
6
|
-
|
7
|
-
|
3
|
+
module Webmachine
|
4
|
+
class Request
|
5
|
+
def put?
|
6
|
+
method == "PUT" || method == "PATCH"
|
7
|
+
end
|
8
|
+
end
|
9
|
+
end
|
8
10
|
|
9
11
|
module PactBroker
|
10
12
|
|
11
13
|
module Resources
|
12
14
|
|
13
|
-
class Pacticipant <
|
14
|
-
|
15
|
-
include PactBroker::Services
|
16
|
-
include PactBroker::Resources::PathInfo
|
15
|
+
class Pacticipant < BaseResource
|
17
16
|
|
18
17
|
def content_types_provided
|
19
18
|
[["application/hal+json", :to_json]]
|
@@ -23,10 +22,6 @@ module PactBroker
|
|
23
22
|
[["application/json", :from_json]]
|
24
23
|
end
|
25
24
|
|
26
|
-
def handle_exception e
|
27
|
-
PactBroker::Resources::ErrorHandler.handle_exception(e, response)
|
28
|
-
end
|
29
|
-
|
30
25
|
def allowed_methods
|
31
26
|
["GET", "PATCH"]
|
32
27
|
end
|
@@ -44,30 +39,23 @@ module PactBroker
|
|
44
39
|
response.body = generate_json(pacticipant)
|
45
40
|
end
|
46
41
|
|
42
|
+
def resource_exists?
|
43
|
+
@pacticipant = pacticipant_service.find_pacticipant_by_name(identifier_from_path[:name])
|
44
|
+
@pacticipant != nil
|
45
|
+
end
|
46
|
+
|
47
47
|
def finish_request
|
48
48
|
if @manual_response_code
|
49
49
|
response.code = @manual_response_code
|
50
50
|
end
|
51
51
|
end
|
52
52
|
|
53
|
-
def resource_exists?
|
54
|
-
#Terrible hack to allow Webmachine to continue when a PATCH is used - does not seem to support it
|
55
|
-
if request.method == 'PATCH'
|
56
|
-
def request.method
|
57
|
-
'PUT'
|
58
|
-
end
|
59
|
-
end
|
60
|
-
@pacticipant = pacticipant_service.find_pacticipant_by_name(identifier_from_path[:name])
|
61
|
-
@pacticipant != nil
|
62
|
-
end
|
63
|
-
|
64
53
|
def to_json
|
65
54
|
generate_json(@pacticipant)
|
66
55
|
end
|
67
56
|
|
68
57
|
def generate_json pacticipant
|
69
|
-
|
70
|
-
pacticipant.to_json
|
58
|
+
PactBroker::Api::Decorators::PacticipantRepresenter.new(pacticipant, request_base_url).to_json
|
71
59
|
end
|
72
60
|
|
73
61
|
def params
|
@@ -1,27 +1,15 @@
|
|
1
|
-
require '
|
2
|
-
require 'json'
|
3
|
-
|
4
|
-
require 'pact_broker/services'
|
5
|
-
require 'pact_broker/resources/json_resource'
|
6
|
-
require 'pact_broker/api/representors'
|
1
|
+
require 'pact_broker/resources/base_resource'
|
7
2
|
|
8
3
|
module PactBroker
|
9
4
|
|
10
5
|
module Resources
|
11
6
|
|
12
|
-
class Pacticipants <
|
13
|
-
|
14
|
-
include PactBroker::Services
|
15
|
-
include PactBroker::Resources::PathInfo
|
7
|
+
class Pacticipants < BaseResource
|
16
8
|
|
17
9
|
def content_types_provided
|
18
10
|
[["application/hal+json", :to_json]]
|
19
11
|
end
|
20
12
|
|
21
|
-
def handle_exception e
|
22
|
-
PactBroker::Resources::ErrorHandler.handle_exception(e, response)
|
23
|
-
end
|
24
|
-
|
25
13
|
def allowed_methods
|
26
14
|
["GET"]
|
27
15
|
end
|
@@ -31,8 +19,7 @@ module PactBroker
|
|
31
19
|
end
|
32
20
|
|
33
21
|
def generate_json pacticipants
|
34
|
-
|
35
|
-
pacticipants.to_json
|
22
|
+
PactBroker::Api::Decorators::PacticipantCollectionRepresenter.new(pacticipants, request_base_url).to_json
|
36
23
|
end
|
37
24
|
|
38
25
|
end
|
data/lib/pact_broker/version.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
require 'pact_broker/models'
|
4
|
-
require 'pact_broker/api/
|
4
|
+
require 'pact_broker/api/decorators'
|
5
5
|
|
6
|
-
module PactBroker::Api::
|
6
|
+
module PactBroker::Api::Decorators
|
7
7
|
|
8
8
|
describe PactCollectionRepresenter do
|
9
9
|
|
@@ -16,7 +16,7 @@ module PactBroker::Api::Representors
|
|
16
16
|
end
|
17
17
|
|
18
18
|
xit "should description" do
|
19
|
-
puts [pact]
|
19
|
+
puts PactCollectionRepresenter.new([pact]).to_json
|
20
20
|
end
|
21
21
|
end
|
22
22
|
|
@@ -1,8 +1,8 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
require 'spec/support/provider_state_builder'
|
3
|
-
require 'pact_broker/api/
|
3
|
+
require 'pact_broker/api/decorators/representable_pact'
|
4
4
|
|
5
|
-
module PactBroker::Api::
|
5
|
+
module PactBroker::Api::Decorators
|
6
6
|
describe RepresentablePact do
|
7
7
|
let(:pact) { ProviderStateBuilder.new.create_pact_with_hierarchy 'Consumer', '1.2.3', 'Provider' }
|
8
8
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pact_broker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2013-11-
|
14
|
+
date: 2013-11-14 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: httparty
|
@@ -297,16 +297,16 @@ files:
|
|
297
297
|
- db/pact_broker_database.sqlite3
|
298
298
|
- lib/pact_broker.rb
|
299
299
|
- lib/pact_broker/api.rb
|
300
|
-
- lib/pact_broker/api/
|
301
|
-
- lib/pact_broker/api/
|
302
|
-
- lib/pact_broker/api/
|
303
|
-
- lib/pact_broker/api/
|
304
|
-
- lib/pact_broker/api/
|
305
|
-
- lib/pact_broker/api/
|
306
|
-
- lib/pact_broker/api/
|
307
|
-
- lib/pact_broker/api/
|
308
|
-
- lib/pact_broker/api/
|
309
|
-
- lib/pact_broker/api/
|
300
|
+
- lib/pact_broker/api/decorators.rb
|
301
|
+
- lib/pact_broker/api/decorators/base_decorator.rb
|
302
|
+
- lib/pact_broker/api/decorators/pact_broker_urls.rb
|
303
|
+
- lib/pact_broker/api/decorators/pact_collection_decorator.rb
|
304
|
+
- lib/pact_broker/api/decorators/pact_decorator.rb
|
305
|
+
- lib/pact_broker/api/decorators/pact_pacticipant_decorator.rb
|
306
|
+
- lib/pact_broker/api/decorators/pacticipant_collection_decorator.rb
|
307
|
+
- lib/pact_broker/api/decorators/pacticipant_decorator.rb
|
308
|
+
- lib/pact_broker/api/decorators/representable_pact.rb
|
309
|
+
- lib/pact_broker/api/decorators/version_decorator.rb
|
310
310
|
- lib/pact_broker/db.rb
|
311
311
|
- lib/pact_broker/logging.rb
|
312
312
|
- lib/pact_broker/models.rb
|
@@ -319,7 +319,7 @@ files:
|
|
319
319
|
- lib/pact_broker/repositories/pact_repository.rb
|
320
320
|
- lib/pact_broker/repositories/pacticipant_repository.rb
|
321
321
|
- lib/pact_broker/repositories/version_repository.rb
|
322
|
-
- lib/pact_broker/resources/
|
322
|
+
- lib/pact_broker/resources/base_resource.rb
|
323
323
|
- lib/pact_broker/resources/latest_pact.rb
|
324
324
|
- lib/pact_broker/resources/latest_pacts.rb
|
325
325
|
- lib/pact_broker/resources/pact.rb
|
@@ -334,8 +334,8 @@ files:
|
|
334
334
|
- lib/pact_broker/version.rb
|
335
335
|
- pact_broker.gemspec
|
336
336
|
- pact_broker_client-pact_broker.json
|
337
|
-
- spec/lib/pact_broker/api/
|
338
|
-
- spec/lib/pact_broker/api/
|
337
|
+
- spec/lib/pact_broker/api/decorators/pact_collection_decorator_spec.rb
|
338
|
+
- spec/lib/pact_broker/api/decorators/representable_pact_spec.rb
|
339
339
|
- spec/lib/pact_broker/models/order_versions_spec.rb
|
340
340
|
- spec/lib/pact_broker/repositories/pact_repository_spec.rb
|
341
341
|
- spec/service_consumers/pact_helper.rb
|
@@ -360,7 +360,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
360
360
|
version: '0'
|
361
361
|
segments:
|
362
362
|
- 0
|
363
|
-
hash:
|
363
|
+
hash: 3334088908397739735
|
364
364
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
365
365
|
none: false
|
366
366
|
requirements:
|
@@ -369,7 +369,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
369
369
|
version: '0'
|
370
370
|
segments:
|
371
371
|
- 0
|
372
|
-
hash:
|
372
|
+
hash: 3334088908397739735
|
373
373
|
requirements: []
|
374
374
|
rubyforge_project:
|
375
375
|
rubygems_version: 1.8.23
|
@@ -377,8 +377,8 @@ signing_key:
|
|
377
377
|
specification_version: 3
|
378
378
|
summary: See description
|
379
379
|
test_files:
|
380
|
-
- spec/lib/pact_broker/api/
|
381
|
-
- spec/lib/pact_broker/api/
|
380
|
+
- spec/lib/pact_broker/api/decorators/pact_collection_decorator_spec.rb
|
381
|
+
- spec/lib/pact_broker/api/decorators/representable_pact_spec.rb
|
382
382
|
- spec/lib/pact_broker/models/order_versions_spec.rb
|
383
383
|
- spec/lib/pact_broker/repositories/pact_repository_spec.rb
|
384
384
|
- spec/service_consumers/pact_helper.rb
|
@@ -1,6 +0,0 @@
|
|
1
|
-
require 'pact_broker/api/representors/pacticipant_representor'
|
2
|
-
require 'pact_broker/api/representors/pacticipant_collection_representor'
|
3
|
-
require 'pact_broker/api/representors/version_representor'
|
4
|
-
require 'pact_broker/api/representors/pact_collection_representor'
|
5
|
-
require 'pact_broker/api/representors/pact_pacticipant_representor'
|
6
|
-
require 'pact_broker/api/representors/pact_representor'
|
@@ -1,34 +0,0 @@
|
|
1
|
-
require 'roar/representer/json/hal'
|
2
|
-
require_relative 'pact_broker_urls'
|
3
|
-
require_relative 'version_representor'
|
4
|
-
require_relative 'pact_representor'
|
5
|
-
|
6
|
-
module PactBroker
|
7
|
-
|
8
|
-
module Api
|
9
|
-
|
10
|
-
module Representors
|
11
|
-
|
12
|
-
module PactCollectionRepresenter
|
13
|
-
include Roar::Representer::JSON::HAL
|
14
|
-
include PactBroker::Api::PactBrokerUrls
|
15
|
-
|
16
|
-
|
17
|
-
collection :pacts, :class => PactBroker::Models::Pact, :extend => PactBroker::Api::Representors::PactRepresenter
|
18
|
-
|
19
|
-
def pacts
|
20
|
-
self
|
21
|
-
end
|
22
|
-
|
23
|
-
link :self do
|
24
|
-
latest_pacts_url
|
25
|
-
end
|
26
|
-
|
27
|
-
links :pacts do
|
28
|
-
collect{ | pact | {:href => pact_url(pact) } }
|
29
|
-
end
|
30
|
-
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
require 'roar/representer/json/hal'
|
2
|
-
require_relative 'pact_broker_urls'
|
3
|
-
require_relative 'version_representor'
|
4
|
-
|
5
|
-
module PactBroker
|
6
|
-
|
7
|
-
module Api
|
8
|
-
|
9
|
-
module Representors
|
10
|
-
|
11
|
-
module PactPacticipantRepresenter
|
12
|
-
include Roar::Representer::JSON::HAL
|
13
|
-
include Roar::Representer::JSON::HAL::Links
|
14
|
-
include PactBroker::Api::PactBrokerUrls
|
15
|
-
|
16
|
-
property :name
|
17
|
-
property :repository_url
|
18
|
-
property :version, :class => "PactBroker::Models::Version", :extend => PactBroker::Api::Representors::VersionRepresenter, :embedded => true
|
19
|
-
|
20
|
-
link :self do
|
21
|
-
pacticipant_url(self)
|
22
|
-
end
|
23
|
-
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
require 'roar/representer/json/hal'
|
2
|
-
require_relative 'pact_broker_urls'
|
3
|
-
require_relative 'pact_pacticipant_representor'
|
4
|
-
|
5
|
-
module PactBroker
|
6
|
-
|
7
|
-
module Api
|
8
|
-
|
9
|
-
module Representors
|
10
|
-
|
11
|
-
module PactRepresenter
|
12
|
-
include Roar::Representer::JSON::HAL
|
13
|
-
include Roar::Representer::JSON::HAL::Links
|
14
|
-
include PactBroker::Api::PactBrokerUrls
|
15
|
-
|
16
|
-
|
17
|
-
property :consumer, :extend => PactBroker::Api::Representors::PactPacticipantRepresenter, :embedded => true
|
18
|
-
property :provider, :extend => PactBroker::Api::Representors::PactPacticipantRepresenter, :embedded => true
|
19
|
-
|
20
|
-
link :self do
|
21
|
-
pact_url(self)
|
22
|
-
end
|
23
|
-
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
@@ -1,33 +0,0 @@
|
|
1
|
-
require 'roar/representer/json/hal'
|
2
|
-
require_relative 'pact_broker_urls'
|
3
|
-
require_relative 'version_representor'
|
4
|
-
|
5
|
-
module PactBroker
|
6
|
-
|
7
|
-
module Api
|
8
|
-
|
9
|
-
module Representors
|
10
|
-
|
11
|
-
module PacticipantCollectionRepresenter
|
12
|
-
include Roar::Representer::JSON::HAL
|
13
|
-
include PactBroker::Api::PactBrokerUrls
|
14
|
-
|
15
|
-
|
16
|
-
collection :pacticipants, :class => PactBroker::Models::Pacticipant, :extend => PactBroker::Api::Representors::PacticipantRepresenter
|
17
|
-
|
18
|
-
def pacticipants
|
19
|
-
self
|
20
|
-
end
|
21
|
-
|
22
|
-
link :self do
|
23
|
-
pacticipants_url
|
24
|
-
end
|
25
|
-
|
26
|
-
links :pacticipants do
|
27
|
-
collect{ | pacticipant | {:href => pacticipant_url(pacticipant), :name => pacticipant.name } }
|
28
|
-
end
|
29
|
-
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
@@ -1,35 +0,0 @@
|
|
1
|
-
require 'roar/representer/json/hal'
|
2
|
-
require_relative 'pact_broker_urls'
|
3
|
-
require_relative 'version_representor'
|
4
|
-
|
5
|
-
module PactBroker
|
6
|
-
|
7
|
-
module Api
|
8
|
-
|
9
|
-
module Representors
|
10
|
-
|
11
|
-
module PacticipantRepresenter
|
12
|
-
include Roar::Representer::JSON::HAL
|
13
|
-
include Roar::Representer::JSON::HAL::Links
|
14
|
-
include PactBroker::Api::PactBrokerUrls
|
15
|
-
|
16
|
-
property :name
|
17
|
-
property :repository_url
|
18
|
-
|
19
|
-
property :last_version, :class => PactBroker::Models::Version, :extend => PactBroker::Api::Representors::VersionRepresenter, :embedded => true
|
20
|
-
|
21
|
-
link :self do
|
22
|
-
pacticipant_url(self)
|
23
|
-
end
|
24
|
-
|
25
|
-
link :last_version do
|
26
|
-
last_version_url(self)
|
27
|
-
end
|
28
|
-
|
29
|
-
link :versions do
|
30
|
-
versions_url(self)
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
@@ -1,20 +0,0 @@
|
|
1
|
-
require 'roar/representer/json/hal'
|
2
|
-
require_relative 'pact_broker_urls'
|
3
|
-
|
4
|
-
module PactBroker
|
5
|
-
module Api
|
6
|
-
module Representors
|
7
|
-
module VersionRepresenter
|
8
|
-
include Roar::Representer::JSON::HAL
|
9
|
-
include Roar::Representer::JSON::HAL::Links
|
10
|
-
include PactBroker::Api::PactBrokerUrls
|
11
|
-
|
12
|
-
property :number
|
13
|
-
|
14
|
-
link :self do
|
15
|
-
version_url(self)
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|