immoscout 2.1.0 → 2.3.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: e7df9feb0754bbf3962e1eaf15042858af96b068e7ea75001d043cffbb9fd16a
4
- data.tar.gz: d67beb5020f876f3da93d84905dea17a72a3bc162a5d7d35a560025e0ee182dc
3
+ metadata.gz: dcbd966d38bfd8e37865b7047be281ed020d361b25e530082da4b19f3055cc2b
4
+ data.tar.gz: 84d612c8d04f6dd3bb79b1b4163a9d33f27a4c2f0f2b7c482eb19cd673068ee7
5
5
  SHA512:
6
- metadata.gz: 27de4448b1ebfa37731a6285324c4458be5ed09e1f93df7c7418911043abb57d98c72680c8a6f5767f61d01b2ce4ac80291c044423a96c6d21eacda053b814af
7
- data.tar.gz: db5bb3ddaae29f3462bf073585009f954040ee0e61af8a1a1642a932798cbfa88747e9312e57f1378f3c54c24f87b0bed2f336425c0baebc85701167d09112b1
6
+ metadata.gz: ff387543e9e172d5d19842ce6a43824d68a04bee0131bcf6396bc5b3501fae887ee62696599edc51fcebf4440155f9fe1971a631693d2c0779955915f50b2f2f
7
+ data.tar.gz: 855114c75ccf6fcd276aab30b56a3d322ba88c67110a630b6cda782942b849e7cafc98a874039fdfa77c77bdd16f5fb1286a2d0e8b3bbf2e7c8c324012f16471
@@ -15,26 +15,24 @@ concurrency:
15
15
  jobs:
16
16
  docs:
17
17
  name: Release the gem
18
- runs-on: ubuntu-22.04
18
+ runs-on: ubuntu-24.04
19
19
  timeout-minutes: 10
20
20
  steps:
21
- - uses: actions/checkout@v4
22
-
23
- - name: Install Ruby 3.2
24
- uses: ruby/setup-ruby@v1
25
- with:
26
- ruby-version: 3.2
27
- bundler-cache: true
28
- rubygems: '3.6.9'
29
-
30
- - name: Prepare the virtual environment
31
- uses: hausgold/actions/ci@master
21
+ - name: Prepare the environment
22
+ uses: hausgold/actions/ci@v2
32
23
  with:
33
24
  clone_token: '${{ secrets.CLONE_TOKEN }}'
34
25
  settings_secret_key: '${{ secrets.SETTINGS_SECRET_KEY }}'
35
26
  settings: '${{ github.repository }}'
36
27
  target: ci/gem-test
37
28
 
29
+ - name: Install Ruby 3.3
30
+ uses: ruby/setup-ruby@v1
31
+ with:
32
+ ruby-version: 3.3
33
+ bundler-cache: true
34
+ rubygems: '3.6.9'
35
+
38
36
  - name: Switch to SSH remotes for the Git repository
39
37
  run: git-ssh-remotes
40
38
 
@@ -13,17 +13,24 @@ concurrency:
13
13
  jobs:
14
14
  test:
15
15
  name: 'Test the gem (Ruby ${{ matrix.ruby }}, Rails ${{ matrix.rails }})'
16
- runs-on: ubuntu-22.04
16
+ runs-on: ubuntu-24.04
17
17
  timeout-minutes: 5
18
18
  strategy:
19
19
  fail-fast: false
20
20
  matrix:
21
- ruby: ['3.2', '3.3', '3.4']
22
- rails: ['7.1', '7.2', '8.0', '8.1']
21
+ ruby: ['3.3', '3.4', '4.0']
22
+ rails: ['7.2', '8.0', '8.1']
23
+ continue-on-error: ${{ matrix.ruby == '4.0' }}
23
24
  env:
24
25
  BUNDLE_GEMFILE: 'gemfiles/rails_${{ matrix.rails }}.gemfile'
25
26
  steps:
26
- - uses: actions/checkout@v4
27
+ - name: Prepare the environment
28
+ uses: hausgold/actions/ci@v2
29
+ with:
30
+ clone_token: '${{ secrets.CLONE_TOKEN }}'
31
+ settings_secret_key: '${{ secrets.SETTINGS_SECRET_KEY }}'
32
+ settings: '${{ github.repository }}'
33
+ target: ci/gem-test
27
34
 
28
35
  - name: Install the correct Ruby version
29
36
  uses: ruby/setup-ruby@v1
@@ -32,14 +39,6 @@ jobs:
32
39
  bundler-cache: true
33
40
  rubygems: '3.6.9'
34
41
 
35
- - name: Prepare the virtual environment
36
- uses: hausgold/actions/ci@master
37
- with:
38
- clone_token: '${{ secrets.CLONE_TOKEN }}'
39
- settings_secret_key: '${{ secrets.SETTINGS_SECRET_KEY }}'
40
- settings: '${{ github.repository }}'
41
- target: ci/gem-test
42
-
43
42
  - name: Run the gem tests
44
43
  run: make test
45
44
 
data/.rubocop.yml CHANGED
@@ -1,3 +1,11 @@
1
+ inherit_from:
2
+ - https://potpourri.hausgold.de/config/rubocop.yml
3
+ - https://potpourri.hausgold.de/config/rubocop-gem.yml
4
+
5
+ inherit_mode:
6
+ merge:
7
+ - Exclude
8
+
1
9
  plugins:
2
10
  - rubocop-rspec
3
11
  - rubocop-rails
@@ -5,39 +13,20 @@ plugins:
5
13
  Rails:
6
14
  Enabled: true
7
15
 
8
- Style/Documentation:
9
- Enabled: true
10
-
11
16
  AllCops:
12
17
  NewCops: enable
13
18
  SuggestExtensions: false
14
19
  DisplayCopNames: true
15
- TargetRubyVersion: 3.2
16
- TargetRailsVersion: 7.1
20
+ TargetRubyVersion: 3.3
21
+ TargetRailsVersion: 7.2
17
22
  Exclude:
18
23
  - bin/**/*
19
24
  - vendor/**/*
20
25
  - build/**/*
21
26
  - gemfiles/**/*
22
27
 
23
- Metrics/BlockLength:
24
- Exclude:
25
- - Rakefile
26
- - '*.gemspec'
27
- - spec/**/*.rb
28
- - '**/*.rake'
29
- - doc/**/*.rb
30
-
31
- # We stay at 80 characters per line.
32
- # See: https://rubystyle.guide/#max-line-length
33
- Layout/LineLength:
34
- Max: 80
35
-
36
- # MFA is not yet enabled for our gems yet.
37
- Gemspec/RequireMFA:
38
- Enabled: false
39
-
40
- # We use memoized helpers all over the place to construct inputs and output
41
- # which can be customized at nested contexts easily.
42
- RSpec/MultipleMemoizedHelpers:
28
+ # Document all the things.
29
+ # TODO: Add missing documentations for all methods.
30
+ Style/DocumentationMethod:
43
31
  Enabled: false
32
+ RequireForNonPublicMethods: false
data/Appraisals CHANGED
@@ -1,9 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- appraise 'rails-7.1' do
4
- gem 'activesupport', '~> 7.1.0'
5
- end
6
-
7
3
  appraise 'rails-7.2' do
8
4
  gem 'activesupport', '~> 7.2.0'
9
5
  end
data/CHANGELOG.md CHANGED
@@ -2,6 +2,18 @@
2
2
 
3
3
  * TODO: Replace this bullet point with an actual description of a change.
4
4
 
5
+ ### 2.3.0 (7 January 2026)
6
+
7
+ * Upgraded to Ubuntu 24.04 on Github Actions ([#31](https://github.com/hausgold/immoscout/pull/31))
8
+ * Migrated to hausgold/actions@v2 ([#30](https://github.com/hausgold/immoscout/pull/30))
9
+ * Dropped Ruby 3.2 and Rails 7.1 support ([#27](https://github.com/hausgold/immoscout/pull/27))
10
+ * Added Ruby 4.0 support ([#28](https://github.com/hausgold/immoscout/pull/28))
11
+ * Upgraded to Faraday 2 ([#29](https://github.com/hausgold/immoscout/pull/29))
12
+
13
+ ### 2.2.0 (19 December 2025)
14
+
15
+ * Migrated to a shared Rubocop configuration for HAUSGOLD gems ([#26](https://github.com/hausgold/immoscout/pull/26))
16
+
5
17
  ### 2.1.0 (23 October 2025)
6
18
 
7
19
  * Dropped Reek ([#23](https://github.com/hausgold/immoscout/pull/23))
data/Dockerfile CHANGED
@@ -1,4 +1,4 @@
1
- FROM hausgold/ruby:3.2
1
+ FROM hausgold/ruby:3.3
2
2
  LABEL org.opencontainers.image.authors="containers@hausgold.de"
3
3
 
4
4
  # Update system gem
data/Envfile CHANGED
@@ -1,3 +1,4 @@
1
1
  LANG=en_US.UTF-8
2
2
  LANGUAGE=en_US.UTF-8
3
3
  LC_ALL=en_US.UTF-8
4
+ RUBOCOP_CACHE_ROOT=/app/tmp
data/Gemfile CHANGED
@@ -9,11 +9,11 @@ gemspec
9
9
 
10
10
  # Development dependencies
11
11
  gem 'appraisal', '~> 2.4'
12
- gem 'bundler', '~> 2.6'
12
+ gem 'bundler', '>= 2.6', '< 5'
13
13
  gem 'countless', '~> 2.2'
14
14
  gem 'factory_bot', '~> 6.2'
15
15
  gem 'guard-rspec', '~> 4.7'
16
- gem 'railties', '>= 7.1'
16
+ gem 'railties', '>= 7.2'
17
17
  gem 'rake', '~> 13.0'
18
18
  gem 'redcarpet', '~> 3.5'
19
19
  gem 'rspec', '~> 3.12'
data/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2023 HAUSGOLD | talocasa GmbH
3
+ Copyright (c) 2026 HAUSGOLD | talocasa GmbH
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
data/Makefile CHANGED
@@ -83,7 +83,8 @@ all:
83
83
  install:
84
84
  # Install the dependencies
85
85
  @$(MKDIR) -p $(VENDOR_DIR)
86
- @$(call run-shell,$(BUNDLE) check || $(BUNDLE) install --path $(VENDOR_DIR))
86
+ @$(call run-shell,$(BUNDLE) config set --local path '$(VENDOR_DIR)')
87
+ @$(call run-shell,$(BUNDLE) check || $(BUNDLE) install)
87
88
  @$(call run-shell,$(BUNDLE) exec $(APPRAISAL) install)
88
89
 
89
90
  update:
@@ -3,11 +3,11 @@
3
3
  source "https://rubygems.org"
4
4
 
5
5
  gem "appraisal", "~> 2.4"
6
- gem "bundler", "~> 2.6"
6
+ gem "bundler", ">= 2.6", "< 5"
7
7
  gem "countless", "~> 2.2"
8
8
  gem "factory_bot", "~> 6.2"
9
9
  gem "guard-rspec", "~> 4.7"
10
- gem "railties", ">= 7.1"
10
+ gem "railties", ">= 7.2"
11
11
  gem "rake", "~> 13.0"
12
12
  gem "redcarpet", "~> 3.5"
13
13
  gem "rspec", "~> 3.12"
@@ -3,11 +3,11 @@
3
3
  source "https://rubygems.org"
4
4
 
5
5
  gem "appraisal", "~> 2.4"
6
- gem "bundler", "~> 2.6"
6
+ gem "bundler", ">= 2.6", "< 5"
7
7
  gem "countless", "~> 2.2"
8
8
  gem "factory_bot", "~> 6.2"
9
9
  gem "guard-rspec", "~> 4.7"
10
- gem "railties", ">= 7.1"
10
+ gem "railties", ">= 7.2"
11
11
  gem "rake", "~> 13.0"
12
12
  gem "redcarpet", "~> 3.5"
13
13
  gem "rspec", "~> 3.12"
@@ -3,11 +3,11 @@
3
3
  source "https://rubygems.org"
4
4
 
5
5
  gem "appraisal", "~> 2.4"
6
- gem "bundler", "~> 2.6"
6
+ gem "bundler", ">= 2.6", "< 5"
7
7
  gem "countless", "~> 2.2"
8
8
  gem "factory_bot", "~> 6.2"
9
9
  gem "guard-rspec", "~> 4.7"
10
- gem "railties", ">= 7.1"
10
+ gem "railties", ">= 7.2"
11
11
  gem "rake", "~> 13.0"
12
12
  gem "redcarpet", "~> 3.5"
13
13
  gem "rspec", "~> 3.12"
data/immoscout.gemspec CHANGED
@@ -30,11 +30,12 @@ Gem::Specification.new do |spec|
30
30
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
31
31
  spec.require_paths = ['lib']
32
32
 
33
- spec.required_ruby_version = '>= 3.2'
33
+ spec.required_ruby_version = '>= 3.3'
34
34
 
35
- spec.add_dependency 'activesupport', '>= 7.1'
36
- spec.add_dependency 'faraday', '~> 1.10'
37
- spec.add_dependency 'faraday_middleware', '~> 1.2'
38
- spec.add_dependency 'simple_oauth', '>= 0.3'
35
+ spec.add_dependency 'activesupport', '>= 7.2'
36
+ spec.add_dependency 'faraday', '~> 2.14'
37
+ spec.add_dependency 'faraday-follow_redirects', '>= 0.5.0'
38
+ spec.add_dependency 'faraday-multipart', '~> 1.2'
39
+ spec.add_dependency 'faraday-oauth1', '>= 0.1.1'
39
40
  spec.add_dependency 'zeitwerk', '~> 2.6'
40
41
  end
@@ -20,7 +20,8 @@ module Immoscout
20
20
 
21
21
  def configure_oauth(builder)
22
22
  builder.request(
23
- :oauth,
23
+ :oauth1,
24
+ :header,
24
25
  token: config.oauth_token,
25
26
  token_secret: config.oauth_token_secret,
26
27
  consumer_key: config.consumer_key,
@@ -20,7 +20,6 @@ module Immoscout
20
20
  request(:delete, path, payload, multipart)
21
21
  end
22
22
 
23
- # rubocop:disable Metrics/MethodLength -- because of the header handling
24
23
  def request(method, path, payload = nil, multipart = nil)
25
24
  connection.send(method, path, multipart) do |request|
26
25
  if multipart
@@ -34,7 +33,6 @@ module Immoscout
34
33
  "RubyImmoscout/#{Immoscout::VERSION}"
35
34
  end
36
35
  end
37
- # rubocop:enable Metrics/MethodLength
38
36
  end
39
37
  end
40
38
  end
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # rubocop:disable Metrics/BlockLength -- because this is how an ActiveSupport
4
- # concern looks like
5
3
  module Immoscout
6
4
  module Models
7
5
  module Actions
@@ -19,9 +17,6 @@ module Immoscout
19
17
  .fetch('attachment')
20
18
  end
21
19
 
22
- # rubocop:disable Metrics/AbcSize -- because this is the bare minimum
23
- # logic
24
- # rubocop:disable Metrics/MethodLength -- ditto
25
20
  def save
26
21
  attachable_id = attachable.try(:id) || attachable
27
22
  response = api.post(
@@ -38,8 +33,6 @@ module Immoscout
38
33
  self.id = id_from_response(response)
39
34
  self
40
35
  end
41
- # rubocop:enable Metrics/AbcSize
42
- # rubocop:enable Metrics/MethodLength
43
36
 
44
37
  def destroy
45
38
  attachable_id = attachable.try(:id) || attachable
@@ -93,4 +86,3 @@ module Immoscout
93
86
  end
94
87
  end
95
88
  end
96
- # rubocop:enable Metrics/BlockLength
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # rubocop:disable Metrics/BlockLength -- because this is how an ActiveSupport
4
- # concern looks like
5
3
  module Immoscout
6
4
  module Models
7
5
  module Actions
@@ -115,4 +113,3 @@ module Immoscout
115
113
  end
116
114
  end
117
115
  end
118
- # rubocop:enable Metrics/BlockLength
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # rubocop:disable Metrics/BlockLength -- because this is how an ActiveSupport
4
- # concern looks like
5
3
  module Immoscout
6
4
  module Models
7
5
  module Concerns
@@ -25,11 +23,6 @@ module Immoscout
25
23
  self.class.try(:json_wrapper)
26
24
  end
27
25
 
28
- # rubocop:disable Metrics/PerceivedComplexity -- because this is the
29
- # bare minimum logic
30
- # rubocop:disable Metrics/MethodLength -- ditto
31
- # rubocop:disable Metrics/CyclomaticComplexity -- ditto
32
- # rubocop:disable Metrics/AbcSize -- ditto
33
26
  def to_h
34
27
  self.class.properties.each_with_object({}) do |(key, value), memo|
35
28
  # skip if it's readonly and should not be exposed in #as_json
@@ -51,10 +44,6 @@ module Immoscout
51
44
  memo
52
45
  end
53
46
  end
54
- # rubocop:enable Metrics/PerceivedComplexity
55
- # rubocop:enable Metrics/MethodLength
56
- # rubocop:enable Metrics/CyclomaticComplexity
57
- # rubocop:enable Metrics/AbcSize
58
47
 
59
48
  def to_json_wrapped
60
49
  { self.class.try(:json_wrapper) => to_json_unwrapped }
@@ -71,4 +60,3 @@ module Immoscout
71
60
  end
72
61
  end
73
62
  end
74
- # rubocop:enable Metrics/BlockLength
@@ -3,7 +3,7 @@
3
3
  # The gem version details.
4
4
  module Immoscout
5
5
  # The version of the +immoscout+ gem
6
- VERSION = '2.1.0'
6
+ VERSION = '2.3.0'
7
7
 
8
8
  class << self
9
9
  # Returns the version of gem as a string.
data/lib/immoscout.rb CHANGED
@@ -10,7 +10,9 @@ require 'active_support/core_ext/hash'
10
10
  require 'active_support/core_ext/module'
11
11
  require 'singleton'
12
12
  require 'faraday'
13
- require 'faraday_middleware'
13
+ require 'faraday/multipart'
14
+ require 'faraday/follow_redirects'
15
+ require 'faraday/oauth1'
14
16
  require 'json'
15
17
 
16
18
  # The top-namespace of the +immoscout+ gem.
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: immoscout
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
4
+ version: 2.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marcus Geissler
@@ -15,30 +15,44 @@ dependencies:
15
15
  requirements:
16
16
  - - ">="
17
17
  - !ruby/object:Gem::Version
18
- version: '7.1'
18
+ version: '7.2'
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - ">="
24
24
  - !ruby/object:Gem::Version
25
- version: '7.1'
25
+ version: '7.2'
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: faraday
28
28
  requirement: !ruby/object:Gem::Requirement
29
29
  requirements:
30
30
  - - "~>"
31
31
  - !ruby/object:Gem::Version
32
- version: '1.10'
32
+ version: '2.14'
33
33
  type: :runtime
34
34
  prerelease: false
35
35
  version_requirements: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: '1.10'
39
+ version: '2.14'
40
40
  - !ruby/object:Gem::Dependency
41
- name: faraday_middleware
41
+ name: faraday-follow_redirects
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: 0.5.0
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: 0.5.0
54
+ - !ruby/object:Gem::Dependency
55
+ name: faraday-multipart
42
56
  requirement: !ruby/object:Gem::Requirement
43
57
  requirements:
44
58
  - - "~>"
@@ -52,19 +66,19 @@ dependencies:
52
66
  - !ruby/object:Gem::Version
53
67
  version: '1.2'
54
68
  - !ruby/object:Gem::Dependency
55
- name: simple_oauth
69
+ name: faraday-oauth1
56
70
  requirement: !ruby/object:Gem::Requirement
57
71
  requirements:
58
72
  - - ">="
59
73
  - !ruby/object:Gem::Version
60
- version: '0.3'
74
+ version: 0.1.1
61
75
  type: :runtime
62
76
  prerelease: false
63
77
  version_requirements: !ruby/object:Gem::Requirement
64
78
  requirements:
65
79
  - - ">="
66
80
  - !ruby/object:Gem::Version
67
- version: '0.3'
81
+ version: 0.1.1
68
82
  - !ruby/object:Gem::Dependency
69
83
  name: zeitwerk
70
84
  requirement: !ruby/object:Gem::Requirement
@@ -112,8 +126,6 @@ files:
112
126
  - config/docker/.inputrc
113
127
  - doc/assets/project.svg
114
128
  - docker-compose.yml
115
- - gemfiles/rails_6.1.gemfile
116
- - gemfiles/rails_7.1.gemfile
117
129
  - gemfiles/rails_7.2.gemfile
118
130
  - gemfiles/rails_8.0.gemfile
119
131
  - gemfiles/rails_8.1.gemfile
@@ -170,7 +182,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
170
182
  requirements:
171
183
  - - ">="
172
184
  - !ruby/object:Gem::Version
173
- version: '3.2'
185
+ version: '3.3'
174
186
  required_rubygems_version: !ruby/object:Gem::Requirement
175
187
  requirements:
176
188
  - - ">="
@@ -1,27 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "appraisal", "~> 2.4"
6
- gem "bundler", "~> 2.3"
7
- gem "countless", "~> 1.1"
8
- gem "factory_bot", "~> 6.2"
9
- gem "guard-rspec", "~> 4.7"
10
- gem "railties", ">= 6.1"
11
- gem "rake", "~> 13.0"
12
- gem "redcarpet", "~> 3.5"
13
- gem "rspec", "~> 3.12"
14
- gem "rspec-json_expectations", "~> 2.2"
15
- gem "rubocop"
16
- gem "rubocop-rails"
17
- gem "rubocop-rspec"
18
- gem "simplecov", ">= 0.22"
19
- gem "terminal-table", "~> 3.0"
20
- gem "timecop", ">= 0.9.6"
21
- gem "vcr", "~> 6.0"
22
- gem "webmock", "~> 3.18"
23
- gem "yard", ">= 0.9.28"
24
- gem "yard-activesupport-concern", ">= 0.0.1"
25
- gem "activesupport", "~> 6.1.0"
26
-
27
- gemspec path: "../"
@@ -1,27 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "appraisal", "~> 2.4"
6
- gem "bundler", "~> 2.6"
7
- gem "countless", "~> 2.2"
8
- gem "factory_bot", "~> 6.2"
9
- gem "guard-rspec", "~> 4.7"
10
- gem "railties", ">= 7.1"
11
- gem "rake", "~> 13.0"
12
- gem "redcarpet", "~> 3.5"
13
- gem "rspec", "~> 3.12"
14
- gem "rspec-json_expectations", "~> 2.2"
15
- gem "rubocop"
16
- gem "rubocop-rails"
17
- gem "rubocop-rspec"
18
- gem "simplecov", ">= 0.22"
19
- gem "terminal-table", "~> 3.0"
20
- gem "timecop", ">= 0.9.6"
21
- gem "vcr", "~> 6.0"
22
- gem "webmock", "~> 3.18"
23
- gem "yard", ">= 0.9.28"
24
- gem "yard-activesupport-concern", ">= 0.0.1"
25
- gem "activesupport", "~> 7.1.0"
26
-
27
- gemspec path: "../"