brand.dev 0.20.0 → 0.22.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
  SHA256:
3
- metadata.gz: be4fa887e23eb9143aaf2472d22397b99b414cb4ff93540d2ea3da5fbae0cfa3
4
- data.tar.gz: 1c923c23ca8386e90fefe684df20b6ece1cc9455bcc9fec14d1f7cdb221cb100
3
+ metadata.gz: 73bfa839e4a462bc79f8d9fe6b6d8120ffff7ccc4f9da829328bb081eee1f9ac
4
+ data.tar.gz: 9e8e4646335f5c229cfa63c93e192a76dd767965df8714b807f218fed1e65de0
5
5
  SHA512:
6
- metadata.gz: ac2de9483c9ed519557f9fcff0e2ea5041c938d8fd313a934332321d79133d25081c648bad90e320ed22a09a53faada008b3dae7cf023713350382cf8289ec28
7
- data.tar.gz: f82183b8ff1d77f93834c0b4cbcb100ffd3ec1fcfa2ae08f5a3d6f2fc37b8f86933c423e2b5130a1f9319313404a336ac3cc7c4855b3f788e91d971fd3fb669f
6
+ metadata.gz: 3b2512f8069a014412a4f323863a6ef5d4c9a5b9f871758e0990aaac655059cae0168e96d76e34cebf871d018fc905288597df757b01e3a32468ad43497ca4d6
7
+ data.tar.gz: 3ba4231e77f884b787073607b2454bc146cf175a44541e5a0c49f406f9e0bfb7332e8711a2dada8ce10c28ed0265c5b422c72d8b396d34631aab24af0b2f9409
data/CHANGELOG.md CHANGED
@@ -1,5 +1,48 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.22.0 (2026-02-07)
4
+
5
+ Full Changelog: [v0.21.0...v0.22.0](https://github.com/brand-dot-dev/ruby-sdk/compare/v0.21.0...v0.22.0)
6
+
7
+ ### Features
8
+
9
+ * **api:** api update ([f61453c](https://github.com/brand-dot-dev/ruby-sdk/commit/f61453cacff28784915b193547f730b8eb76cf92))
10
+
11
+
12
+ ### Bug Fixes
13
+
14
+ * **client:** always add content-length to post body, even when empty ([6d12b11](https://github.com/brand-dot-dev/ruby-sdk/commit/6d12b114daabfd7ca3afc167a18adbe1fe347a36))
15
+ * **client:** loosen json header parsing ([3739920](https://github.com/brand-dot-dev/ruby-sdk/commit/37399200e8e055ed11e83489cdf2674a2a9e6aa8))
16
+
17
+
18
+ ### Chores
19
+
20
+ * **docs:** remove www prefix ([5b8d2c8](https://github.com/brand-dot-dev/ruby-sdk/commit/5b8d2c8b141d6bc47c5ac75aa640d620bfd3ada2))
21
+
22
+ ## 0.21.0 (2026-02-02)
23
+
24
+ Full Changelog: [v0.20.0...v0.21.0](https://github.com/brand-dot-dev/ruby-sdk/compare/v0.20.0...v0.21.0)
25
+
26
+ ### Features
27
+
28
+ * **api:** api update ([a423b3c](https://github.com/brand-dot-dev/ruby-sdk/commit/a423b3c7bb3672541395e056cc611df45597d188))
29
+
30
+
31
+ ### Bug Fixes
32
+
33
+ * **docs:** fix mcp installation instructions for remote servers ([a6ec5ef](https://github.com/brand-dot-dev/ruby-sdk/commit/a6ec5efbad9664835ade1580fe9433adda3b495b))
34
+
35
+
36
+ ### Chores
37
+
38
+ * **internal:** update `actions/checkout` version ([06ba397](https://github.com/brand-dot-dev/ruby-sdk/commit/06ba3972227f9850264787f04bb0d49cf786ee74))
39
+ * move `cgi` into dependencies for ruby 4 ([0e2e7df](https://github.com/brand-dot-dev/ruby-sdk/commit/0e2e7df7deebaa4950ff7813f52ad00fc033b74a))
40
+
41
+
42
+ ### Documentation
43
+
44
+ * prominently feature MCP server setup in root SDK readmes ([328c136](https://github.com/brand-dot-dev/ruby-sdk/commit/328c136767a0b5ae60cc7cdfd23681e50f2569b5))
45
+
3
46
  ## 0.20.0 (2026-01-05)
4
47
 
5
48
  Full Changelog: [v0.19.0...v0.20.0](https://github.com/brand-dot-dev/ruby-sdk/compare/v0.19.0...v0.20.0)
data/README.md CHANGED
@@ -4,6 +4,15 @@ The Brand Dev Ruby library provides convenient access to the Brand Dev REST API
4
4
 
5
5
  It is generated with [Stainless](https://www.stainless.com/).
6
6
 
7
+ ## MCP Server
8
+
9
+ Use the Brand Dev MCP Server to enable AI assistants to interact with this API, allowing them to explore endpoints, make test requests, and use documentation to help integrate this SDK into your application.
10
+
11
+ [![Add to Cursor](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en-US/install-mcp?name=brand.dev-mcp&config=eyJuYW1lIjoiYnJhbmQuZGV2LW1jcCIsInRyYW5zcG9ydCI6Imh0dHAiLCJ1cmwiOiJodHRwczovL2JyYW5kLWRldi5zdGxtY3AuY29tIiwiaGVhZGVycyI6eyJ4LWJyYW5kLWRldi1hcGkta2V5IjoiTXkgQVBJIEtleSJ9fQ)
12
+ [![Install in VS Code](https://img.shields.io/badge/_-Add_to_VS_Code-blue?style=for-the-badge&logo=data:image/svg%2bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCA0MCA0MCI+PHBhdGggZmlsbD0iI0VFRSIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMzAuMjM1IDM5Ljg4NGEyLjQ5MSAyLjQ5MSAwIDAgMS0xLjc4MS0uNzNMMTIuNyAyNC43OGwtMy40NiAyLjYyNC0zLjQwNiAyLjU4MmExLjY2NSAxLjY2NSAwIDAgMS0xLjA4Mi4zMzggMS42NjQgMS42NjQgMCAwIDEtMS4wNDYtLjQzMWwtMi4yLTJhMS42NjYgMS42NjYgMCAwIDEgMC0yLjQ2M0w3LjQ1OCAyMCA0LjY3IDE3LjQ1MyAxLjUwNyAxNC41N2ExLjY2NSAxLjY2NSAwIDAgMSAwLTIuNDYzbDIuMi0yYTEuNjY1IDEuNjY1IDAgMCAxIDIuMTMtLjA5N2w2Ljg2MyA1LjIwOUwyOC40NTIuODQ0YTIuNDg4IDIuNDg4IDAgMCAxIDEuODQxLS43MjljLjM1MS4wMDkuNjk5LjA5MSAxLjAxOS4yNDVsOC4yMzYgMy45NjFhMi41IDIuNSAwIDAgMSAxLjQxNSAyLjI1M3YuMDk5LS4wNDVWMzMuMzd2LS4wNDUuMDk1YTIuNTAxIDIuNTAxIDAgMCAxLTEuNDE2IDIuMjU3bC04LjIzNSAzLjk2MWEyLjQ5MiAyLjQ5MiAwIDAgMS0xLjA3Ny4yNDZabS43MTYtMjguOTQ3LTExLjk0OCA5LjA2MiAxMS45NTIgOS4wNjUtLjAwNC0xOC4xMjdaIi8+PC9zdmc+)](https://vscode.stainless.com/mcp/%7B%22name%22%3A%22brand.dev-mcp%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fbrand-dev.stlmcp.com%22%2C%22headers%22%3A%7B%22x-brand-dev-api-key%22%3A%22My%20API%20Key%22%7D%7D)
13
+
14
+ > Note: You may need to set environment variables in your MCP client.
15
+
7
16
  ## Documentation
8
17
 
9
18
  Documentation for releases of this gem can be found [on RubyDoc](https://gemdocs.org/gems/brand.dev).
@@ -17,7 +26,7 @@ To use this gem, install via Bundler by adding the following to your application
17
26
  <!-- x-release-please-start-version -->
18
27
 
19
28
  ```ruby
20
- gem "brand.dev", "~> 0.20.0"
29
+ gem "brand.dev", "~> 0.22.0"
21
30
  ```
22
31
 
23
32
  <!-- x-release-please-end -->
@@ -75,7 +75,7 @@ module BrandDev
75
75
 
76
76
  case body
77
77
  in nil
78
- nil
78
+ req["content-length"] ||= 0 unless req["transfer-encoding"]
79
79
  in String
80
80
  req["content-length"] ||= body.bytesize.to_s unless req["transfer-encoding"]
81
81
  req.body_stream = BrandDev::Internal::Util::ReadIOAdapter.new(body, &blk)
@@ -485,7 +485,7 @@ module BrandDev
485
485
  end
486
486
 
487
487
  # @type [Regexp]
488
- JSON_CONTENT = %r{^application/(?:vnd(?:\.[^.]+)*\+)?json(?!l)}
488
+ JSON_CONTENT = %r{^application/(?:[a-zA-Z0-9.-]+\+)?json(?!l)}
489
489
  # @type [Regexp]
490
490
  JSONL_CONTENT = %r{^application/(:?x-(?:n|l)djson)|(:?(?:x-)?jsonl)}
491
491
 
@@ -7,11 +7,21 @@ module BrandDev
7
7
  extend BrandDev::Internal::Type::RequestParameters::Converter
8
8
  include BrandDev::Internal::Type::RequestParameters
9
9
 
10
+ # @!attribute direct_url
11
+ # A specific URL to use directly as the starting point for extraction without
12
+ # domain resolution. Useful when you want to extract products from a specific page
13
+ # rather than discovering the site's product pages automatically. Either 'domain'
14
+ # or 'directUrl' must be provided, but not both.
15
+ #
16
+ # @return [String, nil]
17
+ optional :direct_url, String, api_name: :directUrl
18
+
10
19
  # @!attribute domain
11
- # The domain name to analyze
20
+ # The domain name to analyze. Either 'domain' or 'directUrl' must be provided, but
21
+ # not both.
12
22
  #
13
- # @return [String]
14
- required :domain, String
23
+ # @return [String, nil]
24
+ optional :domain, String
15
25
 
16
26
  # @!attribute max_products
17
27
  # Maximum number of products to extract.
@@ -27,11 +37,13 @@ module BrandDev
27
37
  # @return [Integer, nil]
28
38
  optional :timeout_ms, Integer, api_name: :timeoutMS
29
39
 
30
- # @!method initialize(domain:, max_products: nil, timeout_ms: nil, request_options: {})
40
+ # @!method initialize(direct_url: nil, domain: nil, max_products: nil, timeout_ms: nil, request_options: {})
31
41
  # Some parameter documentations has been truncated, see
32
42
  # {BrandDev::Models::BrandAIProductsParams} for more details.
33
43
  #
34
- # @param domain [String] The domain name to analyze
44
+ # @param direct_url [String] A specific URL to use directly as the starting point for extraction without doma
45
+ #
46
+ # @param domain [String] The domain name to analyze. Either 'domain' or 'directUrl' must be provided, but
35
47
  #
36
48
  # @param max_products [Integer] Maximum number of products to extract.
37
49
  #
@@ -11,8 +11,8 @@ module BrandDev
11
11
  # Domain name to retrieve brand data for (e.g., 'example.com', 'google.com').
12
12
  # Cannot be used with name or ticker parameters.
13
13
  #
14
- # @return [String, nil]
15
- optional :domain, String
14
+ # @return [String]
15
+ required :domain, String
16
16
 
17
17
  # @!attribute force_language
18
18
  # Optional parameter to force the language of the retrieved brand data. Works with
@@ -37,7 +37,7 @@ module BrandDev
37
37
  # @return [Integer, nil]
38
38
  optional :timeout_ms, Integer
39
39
 
40
- # @!method initialize(domain: nil, force_language: nil, max_speed: nil, timeout_ms: nil, request_options: {})
40
+ # @!method initialize(domain:, force_language: nil, max_speed: nil, timeout_ms: nil, request_options: {})
41
41
  # Some parameter documentations has been truncated, see
42
42
  # {BrandDev::Models::BrandRetrieveParams} for more details.
43
43
  #
@@ -9,7 +9,7 @@ module BrandDev
9
9
  # Retrieve logos, backdrops, colors, industry, description, and more from any
10
10
  # domain
11
11
  #
12
- # @overload retrieve(domain: nil, force_language: nil, max_speed: nil, timeout_ms: nil, request_options: {})
12
+ # @overload retrieve(domain:, force_language: nil, max_speed: nil, timeout_ms: nil, request_options: {})
13
13
  #
14
14
  # @param domain [String] Domain name to retrieve brand data for (e.g., 'example.com', 'google.com'). Cann
15
15
  #
@@ -24,7 +24,7 @@ module BrandDev
24
24
  # @return [BrandDev::Models::BrandRetrieveResponse]
25
25
  #
26
26
  # @see BrandDev::Models::BrandRetrieveParams
27
- def retrieve(params = {})
27
+ def retrieve(params)
28
28
  parsed, options = BrandDev::BrandRetrieveParams.dump_request(params)
29
29
  @client.request(
30
30
  method: :get,
@@ -42,9 +42,11 @@ module BrandDev
42
42
  # analyze the website and return a list of products with details such as name,
43
43
  # description, image, pricing, features, and more.
44
44
  #
45
- # @overload ai_products(domain:, max_products: nil, timeout_ms: nil, request_options: {})
45
+ # @overload ai_products(direct_url: nil, domain: nil, max_products: nil, timeout_ms: nil, request_options: {})
46
46
  #
47
- # @param domain [String] The domain name to analyze
47
+ # @param direct_url [String] A specific URL to use directly as the starting point for extraction without doma
48
+ #
49
+ # @param domain [String] The domain name to analyze. Either 'domain' or 'directUrl' must be provided, but
48
50
  #
49
51
  # @param max_products [Integer] Maximum number of products to extract.
50
52
  #
@@ -55,7 +57,7 @@ module BrandDev
55
57
  # @return [BrandDev::Models::BrandAIProductsResponse]
56
58
  #
57
59
  # @see BrandDev::Models::BrandAIProductsParams
58
- def ai_products(params)
60
+ def ai_products(params = {})
59
61
  parsed, options = BrandDev::BrandAIProductsParams.dump_request(params)
60
62
  @client.request(
61
63
  method: :post,
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module BrandDev
4
- VERSION = "0.20.0"
4
+ VERSION = "0.22.0"
5
5
  end
@@ -296,7 +296,7 @@ module BrandDev
296
296
  end
297
297
 
298
298
  JSON_CONTENT =
299
- T.let(%r{^application/(?:vnd(?:\.[^.]+)*\+)?json(?!l)}, Regexp)
299
+ T.let(%r{^application/(?:[a-zA-Z0-9.-]+\+)?json(?!l)}, Regexp)
300
300
  JSONL_CONTENT =
301
301
  T.let(%r{^application/(:?x-(?:n|l)djson)|(:?(?:x-)?jsonl)}, Regexp)
302
302
 
@@ -11,9 +11,23 @@ module BrandDev
11
11
  T.any(BrandDev::BrandAIProductsParams, BrandDev::Internal::AnyHash)
12
12
  end
13
13
 
14
- # The domain name to analyze
15
- sig { returns(String) }
16
- attr_accessor :domain
14
+ # A specific URL to use directly as the starting point for extraction without
15
+ # domain resolution. Useful when you want to extract products from a specific page
16
+ # rather than discovering the site's product pages automatically. Either 'domain'
17
+ # or 'directUrl' must be provided, but not both.
18
+ sig { returns(T.nilable(String)) }
19
+ attr_reader :direct_url
20
+
21
+ sig { params(direct_url: String).void }
22
+ attr_writer :direct_url
23
+
24
+ # The domain name to analyze. Either 'domain' or 'directUrl' must be provided, but
25
+ # not both.
26
+ sig { returns(T.nilable(String)) }
27
+ attr_reader :domain
28
+
29
+ sig { params(domain: String).void }
30
+ attr_writer :domain
17
31
 
18
32
  # Maximum number of products to extract.
19
33
  sig { returns(T.nilable(Integer)) }
@@ -33,6 +47,7 @@ module BrandDev
33
47
 
34
48
  sig do
35
49
  params(
50
+ direct_url: String,
36
51
  domain: String,
37
52
  max_products: Integer,
38
53
  timeout_ms: Integer,
@@ -40,8 +55,14 @@ module BrandDev
40
55
  ).returns(T.attached_class)
41
56
  end
42
57
  def self.new(
43
- # The domain name to analyze
44
- domain:,
58
+ # A specific URL to use directly as the starting point for extraction without
59
+ # domain resolution. Useful when you want to extract products from a specific page
60
+ # rather than discovering the site's product pages automatically. Either 'domain'
61
+ # or 'directUrl' must be provided, but not both.
62
+ direct_url: nil,
63
+ # The domain name to analyze. Either 'domain' or 'directUrl' must be provided, but
64
+ # not both.
65
+ domain: nil,
45
66
  # Maximum number of products to extract.
46
67
  max_products: nil,
47
68
  # Optional timeout in milliseconds for the request. If the request takes longer
@@ -55,6 +76,7 @@ module BrandDev
55
76
  sig do
56
77
  override.returns(
57
78
  {
79
+ direct_url: String,
58
80
  domain: String,
59
81
  max_products: Integer,
60
82
  timeout_ms: Integer,
@@ -13,11 +13,8 @@ module BrandDev
13
13
 
14
14
  # Domain name to retrieve brand data for (e.g., 'example.com', 'google.com').
15
15
  # Cannot be used with name or ticker parameters.
16
- sig { returns(T.nilable(String)) }
17
- attr_reader :domain
18
-
19
- sig { params(domain: String).void }
20
- attr_writer :domain
16
+ sig { returns(String) }
17
+ attr_accessor :domain
21
18
 
22
19
  # Optional parameter to force the language of the retrieved brand data. Works with
23
20
  # all three lookup methods.
@@ -66,7 +63,7 @@ module BrandDev
66
63
  def self.new(
67
64
  # Domain name to retrieve brand data for (e.g., 'example.com', 'google.com').
68
65
  # Cannot be used with name or ticker parameters.
69
- domain: nil,
66
+ domain:,
70
67
  # Optional parameter to force the language of the retrieved brand data. Works with
71
68
  # all three lookup methods.
72
69
  force_language: nil,
@@ -18,7 +18,7 @@ module BrandDev
18
18
  def retrieve(
19
19
  # Domain name to retrieve brand data for (e.g., 'example.com', 'google.com').
20
20
  # Cannot be used with name or ticker parameters.
21
- domain: nil,
21
+ domain:,
22
22
  # Optional parameter to force the language of the retrieved brand data. Works with
23
23
  # all three lookup methods.
24
24
  force_language: nil,
@@ -39,6 +39,7 @@ module BrandDev
39
39
  # description, image, pricing, features, and more.
40
40
  sig do
41
41
  params(
42
+ direct_url: String,
42
43
  domain: String,
43
44
  max_products: Integer,
44
45
  timeout_ms: Integer,
@@ -46,8 +47,14 @@ module BrandDev
46
47
  ).returns(BrandDev::Models::BrandAIProductsResponse)
47
48
  end
48
49
  def ai_products(
49
- # The domain name to analyze
50
- domain:,
50
+ # A specific URL to use directly as the starting point for extraction without
51
+ # domain resolution. Useful when you want to extract products from a specific page
52
+ # rather than discovering the site's product pages automatically. Either 'domain'
53
+ # or 'directUrl' must be provided, but not both.
54
+ direct_url: nil,
55
+ # The domain name to analyze. Either 'domain' or 'directUrl' must be provided, but
56
+ # not both.
57
+ domain: nil,
51
58
  # Maximum number of products to extract.
52
59
  max_products: nil,
53
60
  # Optional timeout in milliseconds for the request. If the request takes longer
@@ -1,14 +1,25 @@
1
1
  module BrandDev
2
2
  module Models
3
3
  type brand_ai_products_params =
4
- { domain: String, max_products: Integer, timeout_ms: Integer }
4
+ {
5
+ direct_url: String,
6
+ domain: String,
7
+ max_products: Integer,
8
+ timeout_ms: Integer
9
+ }
5
10
  & BrandDev::Internal::Type::request_parameters
6
11
 
7
12
  class BrandAIProductsParams < BrandDev::Internal::Type::BaseModel
8
13
  extend BrandDev::Internal::Type::RequestParameters::Converter
9
14
  include BrandDev::Internal::Type::RequestParameters
10
15
 
11
- attr_accessor domain: String
16
+ attr_reader direct_url: String?
17
+
18
+ def direct_url=: (String) -> String
19
+
20
+ attr_reader domain: String?
21
+
22
+ def domain=: (String) -> String
12
23
 
13
24
  attr_reader max_products: Integer?
14
25
 
@@ -19,13 +30,15 @@ module BrandDev
19
30
  def timeout_ms=: (Integer) -> Integer
20
31
 
21
32
  def initialize: (
22
- domain: String,
33
+ ?direct_url: String,
34
+ ?domain: String,
23
35
  ?max_products: Integer,
24
36
  ?timeout_ms: Integer,
25
37
  ?request_options: BrandDev::request_opts
26
38
  ) -> void
27
39
 
28
40
  def to_hash: -> {
41
+ direct_url: String,
29
42
  domain: String,
30
43
  max_products: Integer,
31
44
  timeout_ms: Integer,
@@ -13,9 +13,7 @@ module BrandDev
13
13
  extend BrandDev::Internal::Type::RequestParameters::Converter
14
14
  include BrandDev::Internal::Type::RequestParameters
15
15
 
16
- attr_reader domain: String?
17
-
18
- def domain=: (String) -> String
16
+ attr_accessor domain: String
19
17
 
20
18
  attr_reader force_language: BrandDev::Models::BrandRetrieveParams::force_language?
21
19
 
@@ -32,7 +30,7 @@ module BrandDev
32
30
  def timeout_ms=: (Integer) -> Integer
33
31
 
34
32
  def initialize: (
35
- ?domain: String,
33
+ domain: String,
36
34
  ?force_language: BrandDev::Models::BrandRetrieveParams::force_language,
37
35
  ?max_speed: bool,
38
36
  ?timeout_ms: Integer,
@@ -2,7 +2,7 @@ module BrandDev
2
2
  module Resources
3
3
  class Brand
4
4
  def retrieve: (
5
- ?domain: String,
5
+ domain: String,
6
6
  ?force_language: BrandDev::Models::BrandRetrieveParams::force_language,
7
7
  ?max_speed: bool,
8
8
  ?timeout_ms: Integer,
@@ -10,7 +10,8 @@ module BrandDev
10
10
  ) -> BrandDev::Models::BrandRetrieveResponse
11
11
 
12
12
  def ai_products: (
13
- domain: String,
13
+ ?direct_url: String,
14
+ ?domain: String,
14
15
  ?max_products: Integer,
15
16
  ?timeout_ms: Integer,
16
17
  ?request_options: BrandDev::request_opts
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: brand.dev
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.20.0
4
+ version: 0.22.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brand Dev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-01-05 00:00:00.000000000 Z
11
+ date: 2026-02-07 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: cgi
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: connection_pool
15
29
  requirement: !ruby/object:Gem::Requirement