bitly 3.0.0 → 3.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '095c28dc60c45e049f9fde01119376322ea8438ca0b9074479de7bd903af55ed'
4
- data.tar.gz: 59df185cab7f082fbdfedc7bc857c79a4bba69b9913d3b91e40effb4852e852e
3
+ metadata.gz: c3f7e8ce05cc1176818efa7b83c94fd1e6f6bcc7ce4caefdfc7f719aab18bbd9
4
+ data.tar.gz: 38593047cf4f4b02b6e45a457cce9d698e3f11b3bc06337d1ebcc0953ba1cb28
5
5
  SHA512:
6
- metadata.gz: dc18dd77b07180334af8adb1961fcefc32b56b2920c7400d6d6e04e33fff054cf1086499defae0cf0c88388afbc4cddd167d365ba87ca3be553d0508a3dc104a
7
- data.tar.gz: 77b804e7d11ba3f82ca7a5329357261a75b592e94b3eb761f120fd0380a0ddca62ee1f717601885e936b5f5e081d6f01f086ef3b4e04d464237167f535497359
6
+ metadata.gz: 34f1f1d76f0f984f4ba22069aee1280332c1fe5deead1bb2572257dad0ebbb8a97e9c7e642d4270bc495fe5aafde7ba6ce7e98980685e4a37ecbec58b74ad074
7
+ data.tar.gz: 4f772f32325b0fc59c76ceef45634aee7ea0f0c4a81985051ca09286b4c570c92077cb1e05b233c2d8287987ffb3636f6386a125e214810b20837adc86509662
@@ -4,9 +4,9 @@ on:
4
4
  - main
5
5
  pull_request:
6
6
  types: [opened, synchronize, reopened]
7
- name: SonarCloud Analysis
7
+ name: SonarQube Analysis
8
8
  jobs:
9
- sonarcloud:
9
+ sonarqube:
10
10
  runs-on: ubuntu-latest
11
11
  steps:
12
12
  - uses: actions/checkout@v2
@@ -23,12 +23,8 @@ jobs:
23
23
  run: bundle exec rspec
24
24
  env:
25
25
  COVERAGE: json
26
- - name: fix code coverage paths
27
- working-directory: ./coverage
28
- run: |
29
- sed -i 's@'$GITHUB_WORKSPACE'@/github/workspace/@g' coverage.json
30
- - name: SonarCloud Scan
31
- uses: sonarsource/sonarcloud-github-action@master
26
+ - name: SonarQube Scan
27
+ uses: SonarSource/sonarqube-scan-action@v5.0.0
32
28
  env:
33
29
  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
34
30
  SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
@@ -8,7 +8,7 @@ jobs:
8
8
  strategy:
9
9
  fail-fast: false
10
10
  matrix:
11
- ruby: [2.5, 2.6, 2.7, "3.0", 3.1, head]
11
+ ruby: [2.5, 2.6, 2.7, "3.0", 3.1, 3.2, 3.3, 3.4, head]
12
12
  continue-on-error: ${{ endsWith(matrix.ruby, 'head') }}
13
13
  steps:
14
14
  - uses: actions/checkout@v2
data/History.txt CHANGED
@@ -1,5 +1,11 @@
1
1
  === Ongoing
2
2
 
3
+ === 3.1.0 / 2025-02-18
4
+
5
+ * Adds `Qrcode` class and methods to fetch qrcodes and list qrcodes by group as well as get a summary of scans and retrieve an image
6
+ * Adds Ruby 3.4 to test matrix
7
+ * Updates to latest SonarQube scanner
8
+
3
9
  === 3.0.0 / 2022-11-08
4
10
 
5
11
  * **Breaking** Removes Group DELETE and Oauth Apps endpoints
data/README.md CHANGED
@@ -4,27 +4,29 @@ A Ruby gem for using the version 4 [Bitly API](https://dev.bitly.com/) to shorte
4
4
 
5
5
  [![Gem version](https://badge.fury.io/rb/bitly.svg)](https://rubygems.org/gems/bitly) ![Build status](https://github.com/philnash/bitly/workflows/tests/badge.svg) [![Maintainability](https://api.codeclimate.com/v1/badges/f8e078b468c1f2aeca53/maintainability)](https://codeclimate.com/github/philnash/bitly/maintainability) [![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=philnash_bitly&metric=sqale_rating)](https://sonarcloud.io/summary/new_code?id=philnash_bitly) [![Inline docs](https://inch-ci.org/github/philnash/bitly.svg?branch=master)](https://inch-ci.org/github/philnash/bitly)
6
6
 
7
- * [Installation](#installation)
8
- * [Usage](#usage)
9
- * [Authentication](#authentication)
10
- * [Creating an API client](#creating-an-api-client)
11
- * [Shorten a link](#shorten-a-link)
12
- * [Expand a link](#expand-a-link)
13
- * [Available API Endpoints](#available-api-endpoints)
14
- * [Groups](#groups)
15
- * [Organizations](#organizations)
16
- * [Users](#users)
17
- * [Bitlinks](#bitlinks)
18
- * [Custom Bitlinks](#custom-bitlinks)
19
- * [Campaigns](#campaigns)
20
- * [BSDs (Branded Short Domains)](#bsds-branded-short-domains)
21
- * [Webhooks](#webhooks)
22
- * [Customising HTTP requests](#customising-http-requests)
23
- * [Build your own adapter](#build-your-own-adapter)
24
- * [Development](#development)
25
- * [Contributing](#contributing)
26
- * [License](#license)
27
- * [Code of Conduct](#code-of-conduct)
7
+ * [Bitly](#bitly)
8
+ * [Installation](#installation)
9
+ * [Usage](#usage)
10
+ * [Authentication](#authentication)
11
+ * [Creating an API client](#creating-an-api-client)
12
+ * [Shorten a link](#shorten-a-link)
13
+ * [Expand a link](#expand-a-link)
14
+ * [Available API Endpoints](#available-api-endpoints)
15
+ * [Groups](#groups)
16
+ * [Organizations](#organizations)
17
+ * [Users](#users)
18
+ * [Bitlinks](#bitlinks)
19
+ * [QR codes](#qr-codes)
20
+ * [Custom Bitlinks](#custom-bitlinks)
21
+ * [Campaigns](#campaigns)
22
+ * [BSDs (Branded Short Domains)](#bsds-branded-short-domains)
23
+ * [Webhooks](#webhooks)
24
+ * [Customising HTTP requests](#customising-http-requests)
25
+ * [Build your own adapter](#build-your-own-adapter)
26
+ * [Development](#development)
27
+ * [Contributing](#contributing)
28
+ * [License](#license)
29
+ * [Code of Conduct](#code-of-conduct)
28
30
 
29
31
  ## Installation
30
32
 
@@ -48,6 +50,8 @@ $ gem install bitly
48
50
 
49
51
  ## Usage
50
52
 
53
+ For a quick introduction, read this blog post on [how to use the Bitly API in Ruby](https://philna.sh/blog/2022/11/09/how-to-use-the-bitly-api-in-ruby/).
54
+
51
55
  ### Authentication
52
56
 
53
57
  All API endpoints require authentication with an OAuth token. You can get your own OAuth token from the [Bitly console](https://app.bitly.com/). Click on the account drop down menu, then _Profile Settings_ then _Generic Access Token_. Fill in your password and you can generate an OAuth access token.
@@ -105,6 +109,7 @@ This gem supports the following active v4 API endpoints for the[Bitly API](https
105
109
  - [x] [Retrieve group shorten counts (`GET /v4/groups/{group_guid}/shorten_counts`)](https://dev.bitly.com/api-reference/#getGroupShortenCounts)
106
110
  - [x] [Retrieve click metrics for a group by referring networks (`GET /v4/groups/{group_guid}/referring_networks`)](https://dev.bitly.com/api-reference/#GetGroupMetricsByReferringNetworks)
107
111
  - [x] [Retrieve click metrics for a group by countries (`GET /v4/groups/{group_guid}/countries`)](https://dev.bitly.com/api-reference/#getGroupMetricsByCountries)
112
+ - [X] [Retrieve QR codes for a group (`GET /v4/groups/{group_guid}/qr-codes`)](https://dev.bitly.com/api-reference/#listQRMinimal)
108
113
  - [ ] __[premium]__ [Retrieve click metrics for a group by city (`GET /v4/groups/{group_guid}/cities`)](https://dev.bitly.com/api-reference/#getGroupMetricsByCities)
109
114
  - [ ] __[premium]__ [Get group overrides (`GET /v4/groups/{group_guid}/overrides`)](https://dev.bitly.com/api-reference/#getOverridesForGroups)
110
115
 
@@ -141,9 +146,14 @@ This gem supports the following active v4 API endpoints for the[Bitly API](https
141
146
  - [x] [Get metrics for a Bitlink by referrers by domain (`GET /v4/bitlinks/{bitlink}/referrers_by_domains`)](https://dev.bitly.com/api-reference/#getMetricsForBitlinkByReferrersByDomains)
142
147
  - [ ] __[premium]__ [Get metrics for a Bitlink by city (`GET /v4/bitlinks/{bitlink}/cities`)](https://dev.bitly.com/api-reference/#getMetricsForBitlinkByCities)
143
148
  - [ ] __[premium]__ [Get metrics for a Bitlink by device type (`GET /v4/bitlinks/{bitlink}/devices`)](https://dev.bitly.com/api-reference/#getMetricsForBitlinkByDevices)
144
- - [ ] __[premium]__ [Retrieve a QR code for a Bitlink (`GET /v4/bitlinks/{bitlink}/qr`)](https://dev.bitly.com/api-reference/#getBitlinkQRCode)
145
- - [ ] __[premium]__ [Update a QR code (`PATCH /v4/bitlinks/{bitlink}/qr`)](https://dev.bitly.com/api-reference/#updateBitlinkQRCode)
146
- - [ ] __[premium]__ [Create a QR code (`POST /v4/bitlinks/{bitlink}/qr`)](https://dev.bitly.com/api-reference/#createBitlinkQRCode)
149
+
150
+ ### QR codes
151
+
152
+ [QR codes documentation](docs/qrcodes.md)
153
+
154
+ - [x] [Retrieve a QR code (`GET /v4/qr-codes/{qrcode_id}`)](https://dev.bitly.com/api-reference/#getQRCodeByIdPublic)
155
+ - [x] [Retrieve the scans summary for a QR code (`GET /v4/qr-codes/{qrcode_id}/scans/summary`)](https://dev.bitly.com/api-reference/#getScanMetricsSummaryForQRCode)
156
+ - [x] [Retrieve a QR code image (`GET /v4/qr-codes/{qrcode_id}/image`)](https://dev.bitly.com/api-reference/#getQRCodeImagePublic)
147
157
 
148
158
  ### Custom Bitlinks
149
159
 
@@ -20,4 +20,4 @@ module Bitly
20
20
  end
21
21
  end
22
22
  end
23
- end
23
+ end
@@ -1,52 +1,18 @@
1
1
  # frozen_string_literal: true
2
- require "cgi"
3
- require "uri"
2
+ require_relative "../paginated_list"
4
3
 
5
4
  module Bitly
6
5
  module API
7
6
  class Bitlink
8
- class PaginatedList < Bitly::API::List
9
- attr_reader :next_url, :prev_url, :size, :page, :total
10
-
11
- def initialize(items:, response: , client:)
12
- super(items: items, response: response)
13
- @client = client
14
- if response.body["pagination"]
15
- pagination = response.body["pagination"]
16
- @next_url = pagination["next"]
17
- @prev_url = pagination["prev"]
18
- @size = pagination["size"]
19
- @page = pagination["page"]
20
- @total = pagination["total"]
21
- end
22
- end
23
-
24
- def has_next_page?
25
- !next_url.nil? && !next_url.empty?
26
- end
27
-
28
- def has_prev_page?
29
- !prev_url.nil? && !prev_url.empty?
7
+ class PaginatedList < Bitly::API::PaginatedList
8
+ def item_key
9
+ "links"
30
10
  end
31
11
 
32
- def next_page
33
- has_next_page? ? get_page(uri: URI(next_url)) : nil
34
- end
35
-
36
- def prev_page
37
- has_prev_page? ? get_page(uri: URI(prev_url)) : nil
38
- end
39
-
40
- private
41
-
42
- def get_page(uri:)
43
- response = @client.request(path: uri.path.gsub(/\/v4/, ""), params: CGI.parse(uri.query))
44
- bitlinks = response.body["links"].map do |link|
45
- Bitlink.new(data: link, client: @client)
46
- end
47
- self.class.new(items: bitlinks, response: response, client: @client)
12
+ def item_factory(data)
13
+ Bitlink.new(data: data, client: @client)
48
14
  end
49
15
  end
50
16
  end
51
17
  end
52
- end
18
+ end
@@ -184,10 +184,7 @@ module Bitly
184
184
  "encoding_login" => encoding_login
185
185
  }
186
186
  response = client.request(path: "/groups/#{group_guid}/bitlinks", params: params)
187
- bitlinks = response.body["links"].map do |link|
188
- new(data: link, client: client)
189
- end
190
- PaginatedList.new(items: bitlinks, response: response, client: client)
187
+ PaginatedList.new(response: response, client: client)
191
188
  end
192
189
 
193
190
  ##
@@ -361,4 +358,4 @@ module Bitly
361
358
  end
362
359
  end
363
360
  end
364
- end
361
+ end
@@ -548,6 +548,18 @@ module Bitly
548
548
  BSD.list(client: self)
549
549
  end
550
550
 
551
+ ##
552
+ # Fetch a qr code by ID
553
+ # [`GET /v4/qr-codes/{qrcode_id}`](https://dev.bitly.com/api-reference/#getQRCodeByIdPublic)
554
+ #
555
+ # @example
556
+ # qrcode = client.qrcode(qrcode_id: "a1b2c3")
557
+ #
558
+ # @return [Bitly::API::Qrcode]
559
+ def qrcode(qrcode_id:)
560
+ Qrcode.fetch(client: self, qrcode_id: qrcode_id)
561
+ end
562
+
551
563
  private
552
564
 
553
565
  def default_headers
@@ -165,6 +165,15 @@ module Bitly
165
165
  Bitly::API::Bitlink.list(client: @client, group_guid: guid)
166
166
  end
167
167
 
168
+ ##
169
+ # Gets the QR Codes for the group.
170
+ # [`GET /v4/groups/{group_guid}/qr-codes`](https://dev.bitly.com/api-reference/#listQRMinimal)
171
+ #
172
+ # @return [Bitly::API::Qrcode::List]
173
+ def qrcodes
174
+ Bitly::API::Qrcode.list_by_group(client: @client, group_guid: guid)
175
+ end
176
+
168
177
  ##
169
178
  # Gets the referring networks for the group.
170
179
  # [`GET /v4/groups/{group_guid}/referring_networks`](https://dev.bitly.com/api-reference/#GetGroupMetricsByReferringNetworks)
@@ -216,4 +225,4 @@ module Bitly
216
225
  end
217
226
  end
218
227
  end
219
- end
228
+ end
@@ -0,0 +1,61 @@
1
+ # frozen_string_literal: true
2
+ require "cgi"
3
+ require "uri"
4
+
5
+ module Bitly
6
+ module API
7
+ class PaginatedList < Bitly::API::List
8
+ attr_reader :next_url, :prev_url, :size, :page, :total
9
+
10
+ def initialize(response: , client:)
11
+ @client = client
12
+ super(items: items_from_response(response: response), response: response)
13
+ if response.body["pagination"]
14
+ pagination = response.body["pagination"]
15
+ @next_url = pagination["next"]
16
+ @prev_url = pagination["prev"]
17
+ @size = pagination["size"]
18
+ @page = pagination["page"]
19
+ @total = pagination["total"]
20
+ end
21
+ end
22
+
23
+ def has_next_page?
24
+ !next_url.nil? && !next_url.empty?
25
+ end
26
+
27
+ def has_prev_page?
28
+ !prev_url.nil? && !prev_url.empty?
29
+ end
30
+
31
+ def next_page
32
+ has_next_page? ? get_page(uri: URI(next_url)) : nil
33
+ end
34
+
35
+ def prev_page
36
+ has_prev_page? ? get_page(uri: URI(prev_url)) : nil
37
+ end
38
+
39
+ def item_key
40
+ raise NotImplementedError
41
+ end
42
+
43
+ def item_factory(item)
44
+ raise NotImplementedError
45
+ end
46
+
47
+ private
48
+
49
+ def get_page(uri:)
50
+ response = @client.request(path: uri.path.gsub(/\/v4/, ""), params: CGI.parse(uri.query))
51
+ self.class.new(response: response, client: @client)
52
+ end
53
+
54
+ def items_from_response(response:)
55
+ response.body[item_key].map do |item|
56
+ item_factory(item)
57
+ end
58
+ end
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+ require_relative "../paginated_list"
3
+
4
+ module Bitly
5
+ module API
6
+ class Qrcode
7
+ class PaginatedList < Bitly::API::PaginatedList
8
+ def item_key
9
+ "qr_codes"
10
+ end
11
+
12
+ def item_factory(data)
13
+ Qrcode.new(data: data, client: @client)
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+ require_relative "../base"
3
+
4
+ module Bitly
5
+ module API
6
+ class Qrcode
7
+ class ScansSummary
8
+ include Base
9
+
10
+ def self.fetch(client:, qrcode_id:, unit: nil, units: nil, unit_reference: nil)
11
+ response = client.request(
12
+ path: "/qr-codes/#{qrcode_id}/scans/summary",
13
+ params: {
14
+ "unit" => unit,
15
+ "units" => units,
16
+ "unit_reference" => unit_reference
17
+ }
18
+ )
19
+ new(data: response.body, response: response)
20
+ end
21
+
22
+ def self.attributes
23
+ [:units, :unit, :unit_reference, :total_scans]
24
+ end
25
+ attr_reader(*attributes)
26
+
27
+ def initialize(data:, response: nil)
28
+ assign_attributes(data)
29
+ @response = response
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,104 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "./base"
4
+ require_relative "./list"
5
+
6
+ module Bitly
7
+ module API
8
+ class Qrcode
9
+ autoload :PaginatedList, File.join(File.dirname(__FILE__), "qrcode/paginated_list.rb")
10
+ autoload :ScansSummary, File.join(File.dirname(__FILE__), "qrcode/scans_summary.rb")
11
+
12
+ include Base
13
+
14
+ class List < Bitly::API::List ; end
15
+
16
+ def self.attributes
17
+ [:qrcode_id, :title, :archived, :serialized_content, :long_urls, :bitlink_id, :qr_code_type, :render_customizations]
18
+ end
19
+ def self.time_attributes
20
+ [:created, :updated]
21
+ end
22
+ attr_reader(*(attributes + time_attributes))
23
+
24
+ ##
25
+ # Retrieves a list of QR codes matching the filter settings. Values are in reverse chronological order. The pagination occurs by calling the next link in the pagination response object.
26
+ # [`GET /v4/groups/{group_guid}/qr-codes`](https://dev.bitly.com/api-reference/#listQRMinimal)
27
+ #
28
+ # @example
29
+ # qrcodes = Bitly::API::Qrcode.list(client: client, group_guid: guid)
30
+ #
31
+ # @param client [Bitly::API::Client] An authorized API client
32
+ # @param group_guid [String] The group guid for which you want qr codes
33
+ # @param size [Integer] The number of QR Codes to return, default 50.
34
+ # @param archived [String] Whether or not to include archived QRCodes.
35
+ # One of "on", "off" or "both". Defaults to "off".
36
+ # @param archived [String] a filter value if the QRCode has any render customizations (like color or shape changes).
37
+ # One of "on", "off" or "both". Defaults to "both".
38
+ #
39
+ # @return [Bitly::API::Qrcode::PaginatedList]
40
+ def self.list_by_group(
41
+ client:,
42
+ group_guid:,
43
+ size: nil,
44
+ archived: nil,
45
+ has_render_customizations: nil
46
+ )
47
+ params = {
48
+ "size" => size,
49
+ "archived" => archived,
50
+ "has_render_customizations" => has_render_customizations
51
+ }
52
+ response = client.request(path: "/groups/#{group_guid}/qr-codes", params: params)
53
+ PaginatedList.new(response: response, client: client)
54
+ end
55
+
56
+ ##
57
+ # Return information about a QR Code
58
+ # [`GET /v4/qr-codes/{qrcode_id}`](https://dev.bitly.com/api-reference/#getQRCodeByIdPublic)
59
+ #
60
+ # @example
61
+ # qrcode = Bitly::API::Qrcode.fetch(client: client, qrcode_id: "a1b2c3")
62
+ #
63
+ # @param client [Bitly::API::Client] An authorized API client
64
+ # @param qrcode_id [String] The qrcode id you want information about
65
+ #
66
+ # @return [Bitly::API::Qrcode]
67
+ def self.fetch(client:, qrcode_id:)
68
+ response = client.request(path: "/qr-codes/#{qrcode_id}")
69
+ new(data: response.body, client: client, response: response)
70
+ end
71
+
72
+ # [`GET /v4/qr-codes/{qrcode_id}/scans/summary`](https://dev.bitly.com/api-reference/#getScanMetricsForQRCode)
73
+ #
74
+ # @return [Bitly::API::Qrcode::ScansSummary]
75
+ def scans_summary(unit: nil, units: nil, unit_reference: nil)
76
+ ScansSummary.fetch(client: @client, qrcode_id: @qrcode_id, unit: unit, units: units, unit_reference: unit_reference)
77
+ end
78
+
79
+ ##
80
+ # Return the SVG or PNG image of a QR Code
81
+ # [`GET /v4/qr-codes/{qrcode_id}/image`](https://dev.bitly.com/api-reference/#getQRCodeImagePublic)
82
+ #
83
+ # @param client [Bitly::API::Client] An authorized API client
84
+ # @param format [String] "svg" or "png". Default "svg"
85
+ #
86
+ # @return [String]
87
+ def image(format: nil)
88
+ params = format.nil? ? {} : {format: format}
89
+ response = @client.request(path: "/qr-codes/#{qrcode_id}/image", params: params)
90
+ response.body["qr_code_image"]
91
+ end
92
+
93
+ def initialize(data:, client:, response: nil)
94
+ assign_attributes(data)
95
+ @client = client
96
+ @response = response
97
+ end
98
+
99
+ def bitlink
100
+ Bitlink.fetch(client: @client, bitlink: @bitlink_id)
101
+ end
102
+ end
103
+ end
104
+ end
data/lib/bitly/api.rb CHANGED
@@ -9,6 +9,7 @@ module Bitly
9
9
  autoload :Client, File.join(File.dirname(__FILE__), "api/client.rb")
10
10
  autoload :ClickMetric, File.join(File.dirname(__FILE__), "api/click_metric.rb")
11
11
  autoload :Bitlink, File.join(File.dirname(__FILE__), "api/bitlink.rb")
12
+ autoload :Qrcode, File.join(File.dirname(__FILE__), "api/qrcode.rb")
12
13
  autoload :Organization, File.join(File.dirname(__FILE__), "api/organization.rb")
13
14
  autoload :Group, File.join(File.dirname(__FILE__), "api/group.rb")
14
15
  autoload :User, File.join(File.dirname(__FILE__), "api/user.rb")
data/lib/bitly/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Bitly
4
- VERSION = "3.0.0"
4
+ VERSION = "3.1.0"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bitly
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0
4
+ version: 3.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Phil Nash
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-11-08 00:00:00.000000000 Z
11
+ date: 2025-02-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: oauth2
@@ -179,6 +179,10 @@ files:
179
179
  - lib/bitly/api/group/preferences.rb
180
180
  - lib/bitly/api/list.rb
181
181
  - lib/bitly/api/organization.rb
182
+ - lib/bitly/api/paginated_list.rb
183
+ - lib/bitly/api/qrcode.rb
184
+ - lib/bitly/api/qrcode/paginated_list.rb
185
+ - lib/bitly/api/qrcode/scans_summary.rb
182
186
  - lib/bitly/api/shorten_counts.rb
183
187
  - lib/bitly/api/user.rb
184
188
  - lib/bitly/error.rb
@@ -215,7 +219,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
215
219
  - !ruby/object:Gem::Version
216
220
  version: '0'
217
221
  requirements: []
218
- rubygems_version: 3.3.3
222
+ rubygems_version: 3.5.16
219
223
  signing_key:
220
224
  specification_version: 4
221
225
  summary: Use the Bitly API to shorten or expand URLs