pricehubble 2.2.0 → 2.4.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: 07e1e5efe0a100babe39f157a02b4068af1fad0ea51a08106660d37fa7b00fe8
4
- data.tar.gz: 18b62eddc0faa937a242132836be220fe36e6519b2a7c71947fb7f13b9a82702
3
+ metadata.gz: 4727dc705bf4b4b21d723bebff1888256dc5d218cfc183467d39225fbc2eae5b
4
+ data.tar.gz: e67125aac8669b4c9212b1dc3cb53b1d04f26e51649e23b02956195b0628bdee
5
5
  SHA512:
6
- metadata.gz: ad7fad7e5697d103a3c574e8bf1cf23852861876fc5ac413b62c8a26f478a3f7830210ebe7ed0739eae68f6e5af68a2dcc1e67d71da0b18d34f6ae7bb1c87b7a
7
- data.tar.gz: 0f844faeeaedb2ed00172e5accfaee4b244f0ccfdf7eea6e4300980ded042888717d93e9a0c3fc0e028e4b443189887c9981e039cb41bcae1dff85eab26248b8
6
+ metadata.gz: a5660a412f8a0efc7a4b95a15f0f89968e3a758b3f12643cbb2ed9613416674f310a1e18749a6a38c8aee7eea57410fcaa8478c39226af3d45878ef89173d184
7
+ data.tar.gz: '05197d5e0a680dd273cfd0a8c23756e0eeccdd228800a318d2e6d6d3bc6cf27cc1cc94993ec4a7d0621e7667f1af3b2b8380177298b94a1407af7a7a0e637995'
@@ -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
@@ -2,6 +2,10 @@ inherit_from:
2
2
  - https://potpourri.hausgold.de/config/rubocop.yml
3
3
  - https://potpourri.hausgold.de/config/rubocop-gem.yml
4
4
 
5
+ inherit_mode:
6
+ merge:
7
+ - Exclude
8
+
5
9
  plugins:
6
10
  - rubocop-rspec
7
11
  - rubocop-rails
@@ -13,8 +17,8 @@ AllCops:
13
17
  NewCops: enable
14
18
  SuggestExtensions: false
15
19
  DisplayCopNames: true
16
- TargetRubyVersion: 3.2
17
- TargetRailsVersion: 7.1
20
+ TargetRubyVersion: 3.3
21
+ TargetRailsVersion: 7.2
18
22
  Exclude:
19
23
  - bin/**/*
20
24
  - vendor/**/*
data/Appraisals CHANGED
@@ -1,10 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- appraise 'rails-7.1' do
4
- gem 'activemodel', '~> 7.1.0'
5
- gem 'activesupport', '~> 7.1.0'
6
- end
7
-
8
3
  appraise 'rails-7.2' do
9
4
  gem 'activemodel', '~> 7.2.0'
10
5
  gem 'activesupport', '~> 7.2.0'
data/CHANGELOG.md CHANGED
@@ -2,6 +2,17 @@
2
2
 
3
3
  * TODO: Replace this bullet point with an actual description of a change.
4
4
 
5
+ ### 2.4.0 (5 January 2026)
6
+
7
+ * Upgraded to Ubuntu 24.04 on Github Actions ([#26](https://github.com/hausgold/pricehubble/pull/26))
8
+ * Migrated to hausgold/actions@v2 ([#25](https://github.com/hausgold/pricehubble/pull/25))
9
+ * Upgraded to Faraday 2 ([#24](https://github.com/hausgold/pricehubble/pull/24))
10
+
11
+ ### 2.3.0 (26 December 2025)
12
+
13
+ * Added Ruby 4.0 support ([#23](https://github.com/hausgold/pricehubble/pull/23))
14
+ * Dropped Ruby 3.2 and Rails 7.1 support ([#22](https://github.com/hausgold/pricehubble/pull/22))
15
+
5
16
  ### 2.2.0 (19 December 2025)
6
17
 
7
18
  * Migrated to a shared Rubocop configuration for HAUSGOLD gems ([#21](https://github.com/hausgold/pricehubble/pull/21))
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/Gemfile CHANGED
@@ -9,7 +9,7 @@ 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
  # TODO: Remove the upper lock when
15
15
  # https://github.com/thoughtbot/factory_bot/issues/1614 is solved.
data/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2025 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
@@ -85,7 +85,8 @@ all:
85
85
  install:
86
86
  # Install the dependencies
87
87
  @$(MKDIR) -p $(VENDOR_DIR)
88
- @$(call run-shell,$(BUNDLE) check || $(BUNDLE) install --path $(VENDOR_DIR))
88
+ @$(call run-shell,$(BUNDLE) config set --local path '$(VENDOR_DIR)')
89
+ @$(call run-shell,$(BUNDLE) check || $(BUNDLE) install)
89
90
  @$(call run-shell,$(BUNDLE) exec $(APPRAISAL) install)
90
91
 
91
92
  update:
@@ -117,7 +118,7 @@ test-style: \
117
118
  test-style-ruby:
118
119
  # Run the static code analyzer (rubocop)
119
120
  @$(call run-shell,$(BUNDLE) exec $(RUBOCOP) -a \
120
- || ($(TEST) $$($(RUBY_VERSION)) != '3.2' && true))
121
+ || ($(TEST) $$($(RUBY_VERSION)) != '3.3' && true))
121
122
 
122
123
  clean:
123
124
  # Clean the dependencies
@@ -3,7 +3,7 @@
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", "< 6.4.5"
9
9
  gem "guard-rspec", "~> 4.7"
@@ -3,7 +3,7 @@
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", "< 6.4.5"
9
9
  gem "guard-rspec", "~> 4.7"
@@ -3,7 +3,7 @@
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", "< 6.4.5"
9
9
  gem "guard-rspec", "~> 4.7"
@@ -24,9 +24,8 @@ module PriceHubble
24
24
  #
25
25
  # @param con [Faraday::Connection] the connection object
26
26
  def configure(con)
27
- con.use :instrumentation
28
-
29
27
  # The definition order is execution order
28
+ con.request :instrumentation
30
29
  con.request :ph_data_sanitization
31
30
  con.request :ph_default_headers
32
31
  con.request :json
@@ -36,7 +35,7 @@ module PriceHubble
36
35
  # The definition order is reverse to the execution order
37
36
  con.response :ph_recursive_open_struct
38
37
  con.response :ph_data_sanitization
39
- con.response :dates
38
+ con.response :parse_dates
40
39
  con.response :json, content_type: /\bjson$/
41
40
  con.response :follow_redirects
42
41
 
@@ -3,7 +3,7 @@
3
3
  # The gem version details.
4
4
  module PriceHubble
5
5
  # The version of the +price-hubble+ gem
6
- VERSION = '2.2.0'
6
+ VERSION = '2.4.0'
7
7
 
8
8
  class << self
9
9
  # Returns the version of gem as a string.
data/lib/price_hubble.rb CHANGED
@@ -15,7 +15,9 @@ require 'active_support/core_ext/string'
15
15
  require 'active_model'
16
16
  require 'recursive-open-struct'
17
17
  require 'faraday'
18
- require 'faraday_middleware'
18
+ require 'faraday/multipart'
19
+ require 'faraday/follow_redirects'
20
+ require 'faraday/parse_dates'
19
21
 
20
22
  # The top level namespace for the PriceHubble gem.
21
23
  module PriceHubble
data/pricehubble.gemspec CHANGED
@@ -31,12 +31,14 @@ Gem::Specification.new do |spec|
31
31
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
32
32
  spec.require_paths = ['lib']
33
33
 
34
- spec.required_ruby_version = '>= 3.2'
35
-
36
- spec.add_dependency 'activemodel', '>= 7.1'
37
- spec.add_dependency 'activesupport', '>= 7.1'
38
- spec.add_dependency 'faraday', '~> 1.0'
39
- spec.add_dependency 'faraday_middleware', '~> 1.0'
34
+ spec.required_ruby_version = '>= 3.3'
35
+
36
+ spec.add_dependency 'activemodel', '>= 7.2'
37
+ spec.add_dependency 'activesupport', '>= 7.2'
38
+ spec.add_dependency 'faraday', '~> 2.14'
39
+ spec.add_dependency 'faraday-follow_redirects', '>= 0.5.0'
40
+ spec.add_dependency 'faraday-multipart', '~> 1.2'
41
+ spec.add_dependency 'faraday-parse_dates', '>= 0.1.1'
40
42
  spec.add_dependency 'mutex_m', '>= 0.3'
41
43
  spec.add_dependency 'recursive-open-struct', '~> 2.0'
42
44
  spec.add_dependency 'zeitwerk', '~> 2.6'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pricehubble
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.0
4
+ version: 2.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hermann Mayer
@@ -15,56 +15,84 @@ 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: activesupport
28
28
  requirement: !ruby/object:Gem::Requirement
29
29
  requirements:
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: '7.1'
32
+ version: '7.2'
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: '7.1'
39
+ version: '7.2'
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: faraday
42
42
  requirement: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
- version: '1.0'
46
+ version: '2.14'
47
47
  type: :runtime
48
48
  prerelease: false
49
49
  version_requirements: !ruby/object:Gem::Requirement
50
50
  requirements:
51
51
  - - "~>"
52
52
  - !ruby/object:Gem::Version
53
- version: '1.0'
53
+ version: '2.14'
54
54
  - !ruby/object:Gem::Dependency
55
- name: faraday_middleware
55
+ name: faraday-follow_redirects
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: 0.5.0
61
+ type: :runtime
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: 0.5.0
68
+ - !ruby/object:Gem::Dependency
69
+ name: faraday-multipart
56
70
  requirement: !ruby/object:Gem::Requirement
57
71
  requirements:
58
72
  - - "~>"
59
73
  - !ruby/object:Gem::Version
60
- version: '1.0'
74
+ version: '1.2'
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: '1.0'
81
+ version: '1.2'
82
+ - !ruby/object:Gem::Dependency
83
+ name: faraday-parse_dates
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: 0.1.1
89
+ type: :runtime
90
+ prerelease: false
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: 0.1.1
68
96
  - !ruby/object:Gem::Dependency
69
97
  name: mutex_m
70
98
  requirement: !ruby/object:Gem::Requirement
@@ -147,8 +175,6 @@ files:
147
175
  - doc/examples/property_valuations_errors.rb
148
176
  - doc/examples/simple_property_valuations.rb
149
177
  - docker-compose.yml
150
- - gemfiles/rails_6.1.gemfile
151
- - gemfiles/rails_7.1.gemfile
152
178
  - gemfiles/rails_7.2.gemfile
153
179
  - gemfiles/rails_8.0.gemfile
154
180
  - gemfiles/rails_8.1.gemfile
@@ -216,7 +242,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
216
242
  requirements:
217
243
  - - ">="
218
244
  - !ruby/object:Gem::Version
219
- version: '3.2'
245
+ version: '3.3'
220
246
  required_rubygems_version: !ruby/object:Gem::Requirement
221
247
  requirements:
222
248
  - - ">="
@@ -1,26 +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", "< 6.4.5"
9
- gem "guard-rspec", "~> 4.7"
10
- gem "rake", "~> 13.0"
11
- gem "redcarpet", "~> 3.5"
12
- gem "rspec", "~> 3.12"
13
- gem "rubocop"
14
- gem "rubocop-rails"
15
- gem "rubocop-rspec"
16
- gem "simplecov", ">= 0.22"
17
- gem "terminal-table", "~> 3.0"
18
- gem "timecop", ">= 0.9.6"
19
- gem "vcr", "~> 6.0"
20
- gem "webmock", "~> 3.18"
21
- gem "yard", ">= 0.9.28"
22
- gem "yard-activesupport-concern", ">= 0.0.1"
23
- gem "activemodel", "~> 6.1.0"
24
- gem "activesupport", "~> 6.1.0"
25
-
26
- gemspec path: "../"
@@ -1,26 +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", "< 6.4.5"
9
- gem "guard-rspec", "~> 4.7"
10
- gem "rake", "~> 13.0"
11
- gem "redcarpet", "~> 3.5"
12
- gem "rspec", "~> 3.12"
13
- gem "rubocop"
14
- gem "rubocop-rails"
15
- gem "rubocop-rspec"
16
- gem "simplecov", ">= 0.22"
17
- gem "terminal-table", "~> 3.0"
18
- gem "timecop", ">= 0.9.6"
19
- gem "vcr", "~> 6.0"
20
- gem "webmock", "~> 3.18"
21
- gem "yard", ">= 0.9.28"
22
- gem "yard-activesupport-concern", ">= 0.0.1"
23
- gem "activemodel", "~> 7.1.0"
24
- gem "activesupport", "~> 7.1.0"
25
-
26
- gemspec path: "../"