pact_broker 1.6.0 → 1.7.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e750616e35159ab4915a82899463fb4726c3f1a0
4
- data.tar.gz: 194233d951cfa4bc3b4039efbaac97f19ecf88f7
3
+ metadata.gz: 9d2bef5e5437959448b15a75ea7b521c759230ea
4
+ data.tar.gz: b160d8c66c450e5fd20d0a9c629c819249967191
5
5
  SHA512:
6
- metadata.gz: fe4b4e81c2224d8ef238c3ddc8f5539b435dcadf5c87add833e9992d4e5ca79ad8463aff7a337601826be1fccd148cc709a6ca9b43c922a618ddf259b0b35eeb
7
- data.tar.gz: 3a3b9df99e3e07546c2088297e6baf3b15d6928d0190642de12ed86bcd627b56412c40f486793954600f1c1aa368cd178fbea307f85d9f04e1db65be669b016e
6
+ metadata.gz: fe2da2b3ccd031e076334878f8e23fc543d17147e1a2ebf3bd209d20a55d2693826febadd760962514c20ee42bb5ed89f862128308fa541320a40479c900ef4a
7
+ data.tar.gz: 31f2080bbed54f778972966987629973738ed2e4e9f0a6808f1a184b7bbb6d1bb7c525e38febc9bdc486702cc19c53f65d3b86b30e2e9eb008796473e5cd332c
data/CHANGELOG.md CHANGED
@@ -2,6 +2,10 @@ Do this to generate your change history
2
2
 
3
3
  $ git log --pretty=format:' * %h - %s (%an, %ad)' vX.Y.Z..HEAD
4
4
 
5
+ #### 1.7.0 (2015-03-20)
6
+
7
+ * a26402c - Allow configuration of version parsing. (Beth Skurrie, Tue Apr 14 09:39:05 2015 +1000)
8
+
5
9
  #### 1.6.0 (2015-03-20)
6
10
 
7
11
  * e20e657 - Added support for JSON contracts that are not in the Pact format (e.g. top level is an array) (Beth Skurrie, Fri Mar 20 19:12:46 2015 +1100)
@@ -18,14 +18,9 @@ module PactBroker
18
18
  end
19
19
 
20
20
  def invalid_consumer_version_number?
21
- begin
22
- Versionomy.parse(consumer_version_number)
23
- false
24
- rescue Versionomy::Errors::ParseError => e
25
- true
26
- end
21
+ parsed_version_number = PactBroker.configuration.version_parser.call consumer_version_number
22
+ parsed_version_number.nil?
27
23
  end
28
-
29
24
  end
30
25
  end
31
26
  end
@@ -1,6 +1,5 @@
1
1
  require 'reform'
2
2
  require 'reform/contract'
3
- require 'versionomy'
4
3
  require 'pact_broker/messages'
5
4
  require 'pact_broker/constants'
6
5
  require 'pact_broker/api/contracts/pacticipant_name_contract'
@@ -11,7 +11,7 @@ module PactBroker
11
11
  attr_accessor :configuration
12
12
 
13
13
  def initialize &block
14
- @configuration = Configuration.default_configuration
14
+ @configuration = PactBroker.configuration
15
15
  yield configuration
16
16
  post_configure
17
17
  build_app
@@ -7,7 +7,7 @@ module PactBroker
7
7
  class Configuration
8
8
 
9
9
  attr_accessor :log_dir, :database_connection, :auto_migrate_db, :use_hal_browser, :html_pact_renderer
10
- attr_accessor :validate_database_connection_config, :enable_diagnostic_endpoints
10
+ attr_accessor :validate_database_connection_config, :enable_diagnostic_endpoints, :version_parser
11
11
  attr_writer :logger
12
12
 
13
13
  def logger
@@ -15,6 +15,7 @@ module PactBroker
15
15
  end
16
16
 
17
17
  def self.default_configuration
18
+ require 'pact_broker/versions/parse_semantic_version'
18
19
  config = Configuration.new
19
20
  config.log_dir = File.expand_path("./log")
20
21
  config.auto_migrate_db = true
@@ -22,6 +23,7 @@ module PactBroker
22
23
  config.html_pact_renderer = default_html_pact_render
23
24
  config.validate_database_connection_config = true
24
25
  config.enable_diagnostic_endpoints = true
26
+ config.version_parser = PactBroker::Versions::ParseSemanticVersion
25
27
  config
26
28
  end
27
29
 
@@ -47,4 +49,4 @@ module PactBroker
47
49
 
48
50
  end
49
51
 
50
- end
52
+ end
@@ -1,5 +1,3 @@
1
- require 'versionomy'
2
-
3
1
  module PactBroker
4
2
  module Domain
5
3
  class Group < Array
@@ -18,4 +16,4 @@ module PactBroker
18
16
 
19
17
  end
20
18
  end
21
- end
19
+ end
@@ -1,4 +1,4 @@
1
- require 'versionomy'
1
+ require 'pact_broker/configuration'
2
2
 
3
3
  module PactBroker
4
4
  module Domain
@@ -15,7 +15,7 @@ module PactBroker
15
15
 
16
16
  def initialize version_model
17
17
  @version_model = version_model
18
- @sortable_number = Versionomy.parse(version_model.number)
18
+ @sortable_number = PactBroker.configuration.version_parser.call version_model.number
19
19
  end
20
20
 
21
21
  def <=> other
@@ -30,4 +30,4 @@ module PactBroker
30
30
  end
31
31
  end
32
32
  end
33
- end
33
+ end
@@ -8,8 +8,8 @@ en:
8
8
  invalid_url: "Invalid URL '%{url}'. Expected format: http://example.org"
9
9
  pact_missing_pacticipant_name: "was not found at expected path $.%{pacticipant}.name in the submitted pact file."
10
10
  consumer_version_number_missing: "Please specify the consumer version number by setting the X-Pact-Consumer-Version header."
11
- consumer_version_number_header_invalid: "X-Pact-Consumer-Version '%{consumer_version_number}' is not recognised as a standard semantic version. eg. 1.3.0 or 2.0.4.rc1"
12
- consumer_version_number_invalid: "Consumer version number '%{consumer_version_number}' is not recognised as a standard semantic version. eg. 1.3.0 or 2.0.4.rc1"
11
+ consumer_version_number_header_invalid: "X-Pact-Consumer-Version '%{consumer_version_number}' cannot be parsed to a version number. The expected format (unless this configuration has been overridden) is a semantic version. eg. 1.3.0 or 2.0.4.rc1"
12
+ consumer_version_number_invalid: "Consumer version number '%{consumer_version_number}' cannot be parsed to a version number. The expected format (unless this configuration has been overridden) is a semantic version. eg. 1.3.0 or 2.0.4.rc1"
13
13
  pacticipant_name_mismatch: "in pact ('%{name_in_pact}') does not match %{pacticipant} name in path ('%{name}')."
14
14
  connection_encoding_not_utf8: "The Sequel connection encoding (%{encoding}) is strongly recommended to be \"utf8\". If you need to set it to %{encoding} for some particular reason, then disable this check by setting config.validate_database_connection_config = false"
15
15
  duplicate_pacticipant: |
@@ -1,3 +1,3 @@
1
1
  module PactBroker
2
- VERSION = '1.6.0'
2
+ VERSION = '1.7.0'
3
3
  end
@@ -0,0 +1,17 @@
1
+ require 'versionomy'
2
+
3
+ module PactBroker
4
+ module Versions
5
+ class ParseSemanticVersion
6
+
7
+ def self.call string_version
8
+ begin
9
+ ::Versionomy.parse(string_version)
10
+ rescue ::Versionomy::Errors::ParseError => e
11
+ nil
12
+ end
13
+ end
14
+
15
+ end
16
+ end
17
+ end
@@ -62,7 +62,7 @@ module PactBroker
62
62
  let(:attributes) { {consumer_version_number: 'blah'} }
63
63
 
64
64
  it "returns an error" do
65
- expect(subject.errors[:base]).to include "Consumer version number 'blah' is not recognised as a standard semantic version. eg. 1.3.0 or 2.0.4.rc1"
65
+ expect(subject.errors[:base].first).to include "Consumer version number 'blah' cannot be parsed to a version number."
66
66
  end
67
67
  end
68
68
 
@@ -20,4 +20,4 @@ describe PactBroker::Domain::OrderVersions do
20
20
  expect(ordered_versions).to eq(['1.3.0','1.4.0', '1.5.0'])
21
21
  end
22
22
 
23
- end
23
+ end
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: 1.6.0
4
+ version: 1.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bethany Skurrie
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2015-03-20 00:00:00.000000000 Z
13
+ date: 2015-04-13 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: httparty
@@ -522,6 +522,7 @@ files:
522
522
  - lib/pact_broker/ui/views/layouts/main.haml
523
523
  - lib/pact_broker/ui/views/relationships/show.haml
524
524
  - lib/pact_broker/version.rb
525
+ - lib/pact_broker/versions/parse_semantic_version.rb
525
526
  - lib/rack/hal_browser.rb
526
527
  - lib/rack/hal_browser/redirect.rb
527
528
  - lib/rack/pact_broker/convert_file_extension_to_accept_header.rb