immoscout 1.9.0 → 2.0.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 +4 -4
- data/.github/workflows/release.yml +3 -3
- data/.github/workflows/test.yml +3 -3
- data/.rubocop.yml +2 -2
- data/Appraisals +8 -4
- data/CHANGELOG.md +11 -0
- data/Dockerfile +4 -4
- data/Gemfile +6 -6
- data/doc/assets/project.svg +7 -68
- data/docker-compose.yml +0 -1
- data/gemfiles/rails_6.1.gemfile +3 -3
- data/gemfiles/rails_7.1.gemfile +6 -6
- data/gemfiles/rails_7.2.gemfile +27 -0
- data/gemfiles/rails_8.0.gemfile +27 -0
- data/immoscout.gemspec +2 -2
- data/lib/immoscout/api/request.rb +1 -1
- data/lib/immoscout/models/actions/attachment.rb +4 -4
- data/lib/immoscout/models/actions/contact.rb +1 -2
- data/lib/immoscout/models/actions/real_estate.rb +4 -5
- data/lib/immoscout/models/concerns/modelable.rb +4 -11
- data/lib/immoscout/models/concerns/propertiable.rb +1 -1
- data/lib/immoscout/models/concerns/renderable.rb +5 -5
- data/lib/immoscout/version.rb +1 -1
- metadata +8 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1e32ead7d9ecbf21a77e5d6fa74e2139732c2bc45c6d717dbe2e15fc4d83decc
|
4
|
+
data.tar.gz: a09b9b72b25701703612f2ae1e6c0fff912713616e34a0e8fcee993c4324a41e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4dd40628d8b6f0e70840cb0020e527fe34b397c49fa1f4fca7a2f30dbbb173ba4d336ea73cebd83661959fbe481bfca4c8735b80e6386d335050c71335b15587
|
7
|
+
data.tar.gz: 5dcaa0ce884b9338208bdd43b544350da6ee775ff2434a2bb203ef1cc7c8427bb109fc9858b590dabdbdfecc148146392039f62db711bc8a80c5f16dc298b725
|
@@ -20,12 +20,12 @@ jobs:
|
|
20
20
|
steps:
|
21
21
|
- uses: actions/checkout@v4
|
22
22
|
|
23
|
-
- name: Install Ruby 2
|
23
|
+
- name: Install Ruby 3.2
|
24
24
|
uses: ruby/setup-ruby@v1
|
25
25
|
with:
|
26
|
-
ruby-version: 2
|
26
|
+
ruby-version: 3.2
|
27
27
|
bundler-cache: true
|
28
|
-
rubygems: '3.
|
28
|
+
rubygems: '3.6.9'
|
29
29
|
|
30
30
|
- name: Prepare the virtual environment
|
31
31
|
uses: hausgold/actions/ci@master
|
data/.github/workflows/test.yml
CHANGED
@@ -18,8 +18,8 @@ jobs:
|
|
18
18
|
strategy:
|
19
19
|
fail-fast: false
|
20
20
|
matrix:
|
21
|
-
ruby: ['
|
22
|
-
rails: ['
|
21
|
+
ruby: ['3.2', '3.3', '3.4']
|
22
|
+
rails: ['7.1', '7.2', '8.0']
|
23
23
|
env:
|
24
24
|
BUNDLE_GEMFILE: 'gemfiles/rails_${{ matrix.rails }}.gemfile'
|
25
25
|
steps:
|
@@ -30,7 +30,7 @@ jobs:
|
|
30
30
|
with:
|
31
31
|
ruby-version: ${{ matrix.ruby }}
|
32
32
|
bundler-cache: true
|
33
|
-
rubygems: '3.
|
33
|
+
rubygems: '3.6.9'
|
34
34
|
|
35
35
|
- name: Prepare the virtual environment
|
36
36
|
uses: hausgold/actions/ci@master
|
data/.rubocop.yml
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
plugins:
|
2
2
|
- rubocop-rspec
|
3
3
|
- rubocop-rails
|
4
4
|
|
@@ -12,7 +12,7 @@ AllCops:
|
|
12
12
|
NewCops: enable
|
13
13
|
SuggestExtensions: false
|
14
14
|
DisplayCopNames: true
|
15
|
-
TargetRubyVersion: 2
|
15
|
+
TargetRubyVersion: 3.2
|
16
16
|
TargetRailsVersion: 6.1
|
17
17
|
Exclude:
|
18
18
|
- bin/**/*
|
data/Appraisals
CHANGED
@@ -1,9 +1,13 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
appraise 'rails-6.1' do
|
4
|
-
gem 'activesupport', '~> 6.1.0'
|
5
|
-
end
|
6
|
-
|
7
3
|
appraise 'rails-7.1' do
|
8
4
|
gem 'activesupport', '~> 7.1.0'
|
9
5
|
end
|
6
|
+
|
7
|
+
appraise 'rails-7.2' do
|
8
|
+
gem 'activesupport', '~> 7.2.0'
|
9
|
+
end
|
10
|
+
|
11
|
+
appraise 'rails-8.0' do
|
12
|
+
gem 'activesupport', '~> 8.0.0'
|
13
|
+
end
|
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.0.0 (28 June 2025)
|
6
|
+
|
7
|
+
* Corrected some RuboCop glitches ([#21](https://github.com/hausgold/immoscout/pull/21))
|
8
|
+
* Drop Ruby 2 and end of life Rails (<7.1) ([#22](https://github.com/hausgold/immoscout/pull/22))
|
9
|
+
|
10
|
+
### 1.9.1 (21 May 2025)
|
11
|
+
|
12
|
+
* Corrected some RuboCop glitches ([#18](https://github.com/hausgold/immoscout/pull/18))
|
13
|
+
* Upgraded the rubocop dependencies ([#19](https://github.com/hausgold/immoscout/pull/19))
|
14
|
+
* Corrected some RuboCop glitches ([#20](https://github.com/hausgold/immoscout/pull/20))
|
15
|
+
|
5
16
|
### 1.9.0 (30 January 2025)
|
6
17
|
|
7
18
|
* Added all versions up to Ruby 3.4 to the CI matrix ([#17](https://github.com/hausgold/immoscout/pull/17))
|
data/Dockerfile
CHANGED
@@ -1,8 +1,8 @@
|
|
1
|
-
FROM hausgold/ruby:2
|
2
|
-
|
1
|
+
FROM hausgold/ruby:3.2
|
2
|
+
LABEL org.opencontainers.image.authors="containers@hausgold.de"
|
3
3
|
|
4
4
|
# Update system gem
|
5
|
-
RUN gem update --system '3.
|
5
|
+
RUN gem update --system '3.6.9'
|
6
6
|
|
7
7
|
# Install system packages and the latest bundler
|
8
8
|
RUN apt-get update -yqqq && \
|
@@ -11,7 +11,7 @@ RUN apt-get update -yqqq && \
|
|
11
11
|
ca-certificates \
|
12
12
|
bash-completion inotify-tools && \
|
13
13
|
echo 'en_US.UTF-8 UTF-8' >> /etc/locale.gen && /usr/sbin/locale-gen && \
|
14
|
-
gem install bundler -v '~> 2.
|
14
|
+
gem install bundler -v '~> 2.6.9' --no-document --no-prerelease
|
15
15
|
|
16
16
|
# Add new web user
|
17
17
|
RUN mkdir /app && \
|
data/Gemfile
CHANGED
@@ -9,18 +9,18 @@ gemspec
|
|
9
9
|
|
10
10
|
# Development dependencies
|
11
11
|
gem 'appraisal', '~> 2.4'
|
12
|
-
gem 'bundler', '~> 2.
|
13
|
-
gem 'countless', '~>
|
12
|
+
gem 'bundler', '~> 2.6'
|
13
|
+
gem 'countless', '~> 2.0'
|
14
14
|
gem 'factory_bot', '~> 6.2'
|
15
15
|
gem 'guard-rspec', '~> 4.7'
|
16
|
-
gem 'railties', '>=
|
16
|
+
gem 'railties', '>= 7.1'
|
17
17
|
gem 'rake', '~> 13.0'
|
18
18
|
gem 'redcarpet', '~> 3.5'
|
19
19
|
gem 'rspec', '~> 3.12'
|
20
20
|
gem 'rspec-json_expectations', '~> 2.2'
|
21
|
-
gem 'rubocop'
|
22
|
-
gem 'rubocop-rails'
|
23
|
-
gem 'rubocop-rspec'
|
21
|
+
gem 'rubocop'
|
22
|
+
gem 'rubocop-rails'
|
23
|
+
gem 'rubocop-rspec'
|
24
24
|
gem 'simplecov', '>= 0.22'
|
25
25
|
gem 'terminal-table', '~> 3.0'
|
26
26
|
gem 'timecop', '>= 0.9.6'
|
data/doc/assets/project.svg
CHANGED
@@ -1,68 +1,7 @@
|
|
1
|
-
|
2
|
-
<
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
version="1.1"
|
9
|
-
id="Ebene_1"
|
10
|
-
x="0px"
|
11
|
-
y="0px"
|
12
|
-
viewBox="0 0 800 200"
|
13
|
-
xml:space="preserve"
|
14
|
-
width="800"
|
15
|
-
height="200"><metadata
|
16
|
-
id="metadata33"><rdf:RDF><cc:Work
|
17
|
-
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
18
|
-
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
|
19
|
-
id="defs31" />
|
20
|
-
<style
|
21
|
-
type="text/css"
|
22
|
-
id="style2">
|
23
|
-
.st0{fill-rule:evenodd;clip-rule:evenodd;fill:#E73E11;}
|
24
|
-
.st1{fill-rule:evenodd;clip-rule:evenodd;fill:#0371B9;}
|
25
|
-
.st2{fill:#132E48;}
|
26
|
-
.st3{font-family:'OpenSans-Bold';}
|
27
|
-
.st4{font-size:29.5168px;}
|
28
|
-
.st5{fill-rule:evenodd;clip-rule:evenodd;fill:none;}
|
29
|
-
.st6{opacity:0.5;fill:#132E48;}
|
30
|
-
.st7{font-family:'OpenSans';}
|
31
|
-
.st8{font-size:12px;}
|
32
|
-
</style>
|
33
|
-
<g
|
34
|
-
transform="translate(0,1.53584)"
|
35
|
-
id="g828"><g
|
36
|
-
transform="translate(35.93985,35.66416)"
|
37
|
-
id="g8">
|
38
|
-
<path
|
39
|
-
style="clip-rule:evenodd;fill:#e73e11;fill-rule:evenodd"
|
40
|
-
id="path4"
|
41
|
-
d="m -0.1,124.4 c 0,0 33.7,-123.2 66.7,-123.2 12.8,0 26.9,21.9 38.8,47.2 -23.6,27.9 -66.6,59.7 -94,76 -7.1,0 -11.5,0 -11.5,0 z"
|
42
|
-
class="st0" />
|
43
|
-
<path
|
44
|
-
style="clip-rule:evenodd;fill:#0371b9;fill-rule:evenodd"
|
45
|
-
id="path6"
|
46
|
-
d="m 88.1,101.8 c 13.5,-10.4 18.4,-16.2 27.1,-25.4 10,25.7 16.7,48 16.7,48 0,0 -41.4,0 -78,0 14.6,-7.9 18.7,-10.7 34.2,-22.6 z"
|
47
|
-
class="st1" />
|
48
|
-
</g><text
|
49
|
-
y="106.40316"
|
50
|
-
x="192.43155"
|
51
|
-
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:29.51733398px;font-family:'Open Sans', sans-serif;-inkscape-font-specification:'OpenSans-Bold, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#132e48"
|
52
|
-
id="text10"
|
53
|
-
class="st2 st3 st4">Immoscout</text>
|
54
|
-
<rect
|
55
|
-
style="clip-rule:evenodd;fill:none;fill-rule:evenodd"
|
56
|
-
id="rect12"
|
57
|
-
height="24"
|
58
|
-
width="314.5"
|
59
|
-
class="st5"
|
60
|
-
y="118.06416"
|
61
|
-
x="194.23985" /><text
|
62
|
-
y="127.22146"
|
63
|
-
x="194.21715"
|
64
|
-
style="font-size:12px;font-family:'Open Sans', sans-serif;opacity:0.5;fill:#132e48;-inkscape-font-specification:'Open Sans, sans-serif, Normal';font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;text-anchor:start;text-align:start;writing-mode:lr;font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;"
|
65
|
-
id="text14"
|
66
|
-
class="st6 st7 st8">Ruby client for the Immobilienscout24 REST API</text>
|
67
|
-
</g>
|
68
|
-
</svg>
|
1
|
+
<svg id="hg-readme-banner-v2" viewBox="0 0 800 200" width="800" height="200" xmlns="http://www.w3.org/2000/svg"><defs><linearGradient id="a" x1="112.46" y1="309.13" x2="314.5" y2="309.13" gradientUnits="userSpaceOnUse" gradientTransform="translate(-33.985 -122.816)"><stop offset="0" stop-color="#1992f4" /><stop offset="1" stop-color="#2b8af6" /></linearGradient></defs><style>.st3{font-family:'OpenSans-Bold'}.st4{font-size:29.5168px}.st5{fill-rule:evenodd;clip-rule:evenodd;fill:none}.st7{font-family:'OpenSans'}.st8{font-size:12px}@media (prefers-color-scheme:dark){text{fill:#f0f6fc!important}}</style>
|
2
|
+
<text y="107.939" x="192.432" style="font-family:'Open Sans', sans-serif;-inkscape-font-specification:'OpenSans-Bold, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start" class="st3 st4" font-weight="700" font-size="29.517" font-family="'Open Sans',sans-serif" fill="#3f3e4b"
|
3
|
+
>Immoscout</text>
|
4
|
+
<path class="st5" clip-rule="evenodd" fill="none" fill-rule="evenodd" d="M194.24 119.6h314.5v24h-314.5z"/>
|
5
|
+
<text y="128.757" x="194.217" style="font-family:'Open Sans', sans-serif;-inkscape-font-specification:'Open Sans, sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start" class="st7 st8" font-weight="400" font-size="12" font-family="'Open Sans',sans-serif" opacity=".75" fill="#3f3e4b"
|
6
|
+
>Ruby client for the Immobilienscout24 REST API</text>
|
7
|
+
<g transform="translate(33.985 122.816)"><path d="M129.427 32.4q-7-20.71-14.09-41.44c-.33-1-.52-1.18-1.34-.25-3.1 3.48-6.25 6.92-9.49 10.26a180.23 180.23 0 0 1-18.54 16.15 193.7 193.7 0 0 1-21.95 15.43c-2.53 1.47-5.08 2.91-7.62 4.36l.11.27h73.05c1 .1 1.4-.13 1-1.22-.4-1.09-.73-2.38-1.13-3.56z" fill="url(#a)" /><path d="M89.077-63.87c-3.57-5.58-7.42-10.95-12.62-15.17-3.93-3.19-8.28-5-13.42-3.32a23 23 0 0 0-8.76 5.6 66.77 66.77 0 0 0-10.34 13.09c-8 12.68-14.06 26.28-19.28 40.25-4.6 12.33-8.82 24.8-12.95 37.29-2.45 7.41-4.39 15-6.61 22.49-.26.88 0 1 .79 1h7.4c1.23 0 2.44.14 3.6-.68 9.17-6.45 18.51-12.67 27.55-19.31a396.21 396.21 0 0 0 37.36-31.3 245.79 245.79 0 0 0 20.74-22 1.6 1.6 0 0 0 .26-2 224.45 224.45 0 0 0-13.72-25.94z" fill="#f2686d" /></g></svg>
|
data/docker-compose.yml
CHANGED
data/gemfiles/rails_6.1.gemfile
CHANGED
@@ -12,9 +12,9 @@ gem "rake", "~> 13.0"
|
|
12
12
|
gem "redcarpet", "~> 3.5"
|
13
13
|
gem "rspec", "~> 3.12"
|
14
14
|
gem "rspec-json_expectations", "~> 2.2"
|
15
|
-
gem "rubocop"
|
16
|
-
gem "rubocop-rails"
|
17
|
-
gem "rubocop-rspec"
|
15
|
+
gem "rubocop"
|
16
|
+
gem "rubocop-rails"
|
17
|
+
gem "rubocop-rspec"
|
18
18
|
gem "simplecov", ">= 0.22"
|
19
19
|
gem "terminal-table", "~> 3.0"
|
20
20
|
gem "timecop", ">= 0.9.6"
|
data/gemfiles/rails_7.1.gemfile
CHANGED
@@ -3,18 +3,18 @@
|
|
3
3
|
source "https://rubygems.org"
|
4
4
|
|
5
5
|
gem "appraisal", "~> 2.4"
|
6
|
-
gem "bundler", "~> 2.
|
7
|
-
gem "countless", "~>
|
6
|
+
gem "bundler", "~> 2.6"
|
7
|
+
gem "countless", "~> 2.0"
|
8
8
|
gem "factory_bot", "~> 6.2"
|
9
9
|
gem "guard-rspec", "~> 4.7"
|
10
|
-
gem "railties", ">=
|
10
|
+
gem "railties", ">= 7.1"
|
11
11
|
gem "rake", "~> 13.0"
|
12
12
|
gem "redcarpet", "~> 3.5"
|
13
13
|
gem "rspec", "~> 3.12"
|
14
14
|
gem "rspec-json_expectations", "~> 2.2"
|
15
|
-
gem "rubocop"
|
16
|
-
gem "rubocop-rails"
|
17
|
-
gem "rubocop-rspec"
|
15
|
+
gem "rubocop"
|
16
|
+
gem "rubocop-rails"
|
17
|
+
gem "rubocop-rspec"
|
18
18
|
gem "simplecov", ">= 0.22"
|
19
19
|
gem "terminal-table", "~> 3.0"
|
20
20
|
gem "timecop", ">= 0.9.6"
|
@@ -0,0 +1,27 @@
|
|
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.0"
|
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.2.0"
|
26
|
+
|
27
|
+
gemspec path: "../"
|
@@ -0,0 +1,27 @@
|
|
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.0"
|
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", "~> 8.0.0"
|
26
|
+
|
27
|
+
gemspec path: "../"
|
data/immoscout.gemspec
CHANGED
@@ -30,9 +30,9 @@ 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 = '>= 2
|
33
|
+
spec.required_ruby_version = '>= 3.2'
|
34
34
|
|
35
|
-
spec.add_dependency 'activesupport', '>=
|
35
|
+
spec.add_dependency 'activesupport', '>= 7.1'
|
36
36
|
spec.add_dependency 'faraday', '~> 1.10'
|
37
37
|
spec.add_dependency 'faraday_middleware', '~> 1.2'
|
38
38
|
spec.add_dependency 'simple_oauth', '>= 0.3'
|
@@ -20,7 +20,7 @@ module Immoscout
|
|
20
20
|
request(:delete, path, payload, multipart)
|
21
21
|
end
|
22
22
|
|
23
|
-
# rubocop:disable Metrics/MethodLength because of the header handling
|
23
|
+
# rubocop:disable Metrics/MethodLength -- because of the header handling
|
24
24
|
def request(method, path, payload = nil, multipart = nil)
|
25
25
|
connection.send(method, path, multipart) do |request|
|
26
26
|
if multipart
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
# rubocop:disable Metrics/BlockLength because this is how an ActiveSupport
|
3
|
+
# rubocop:disable Metrics/BlockLength -- because this is how an ActiveSupport
|
4
4
|
# concern looks like
|
5
5
|
module Immoscout
|
6
6
|
module Models
|
@@ -19,9 +19,9 @@ module Immoscout
|
|
19
19
|
.fetch('attachment')
|
20
20
|
end
|
21
21
|
|
22
|
-
# rubocop:disable Metrics/AbcSize because this is the
|
23
|
-
#
|
24
|
-
# rubocop:disable Metrics/MethodLength
|
22
|
+
# rubocop:disable Metrics/AbcSize -- because this is the bare minimum
|
23
|
+
# logic
|
24
|
+
# rubocop:disable Metrics/MethodLength -- ditto
|
25
25
|
def save
|
26
26
|
attachable_id = attachable.try(:id) || attachable
|
27
27
|
response = api.post(
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
# rubocop:disable Metrics/BlockLength because this is how an ActiveSupport
|
3
|
+
# rubocop:disable Metrics/BlockLength -- because this is how an ActiveSupport
|
4
4
|
# concern looks like
|
5
5
|
module Immoscout
|
6
6
|
module Models
|
@@ -13,10 +13,9 @@ module Immoscout
|
|
13
13
|
include Immoscout::Models::Concerns::Modelable
|
14
14
|
|
15
15
|
self.unpack_collection = proc do |hash|
|
16
|
-
hash
|
17
|
-
|
18
|
-
|
19
|
-
.fetch('realEstateElement', nil)
|
16
|
+
hash.dig('realestates.realEstates',
|
17
|
+
'realEstateList',
|
18
|
+
'realEstateElement')
|
20
19
|
end
|
21
20
|
|
22
21
|
def save
|
@@ -14,17 +14,11 @@ module Immoscout
|
|
14
14
|
Immoscout::Api::Client.instance
|
15
15
|
end
|
16
16
|
|
17
|
-
|
18
|
-
self.class.api
|
19
|
-
end
|
17
|
+
delegate :api, to: :class
|
20
18
|
|
21
|
-
|
22
|
-
self.class.handle_response(response)
|
23
|
-
end
|
19
|
+
delegate :handle_response, to: :class
|
24
20
|
|
25
|
-
|
26
|
-
self.class.id_from_response(response)
|
27
|
-
end
|
21
|
+
delegate :id_from_response, to: :class
|
28
22
|
end
|
29
23
|
|
30
24
|
class_methods do
|
@@ -48,8 +42,7 @@ module Immoscout
|
|
48
42
|
.body
|
49
43
|
.fetch('common.messages')
|
50
44
|
.first
|
51
|
-
.
|
52
|
-
.fetch('id', nil)
|
45
|
+
.dig('message', 'id')
|
53
46
|
end
|
54
47
|
end
|
55
48
|
end
|
@@ -15,7 +15,7 @@ module Immoscout
|
|
15
15
|
|
16
16
|
# :reek:ControlParameter - standard stuff, reek!
|
17
17
|
# :reek:TooManyStatements
|
18
|
-
def method_missing(method_name, *arguments, &
|
18
|
+
def method_missing(method_name, *arguments, &)
|
19
19
|
if method_name =~ /build_(\w+)/
|
20
20
|
match = Regexp.last_match(1).intern
|
21
21
|
properties = self.class.properties
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
# rubocop:disable Metrics/BlockLength because this is how an ActiveSupport
|
3
|
+
# rubocop:disable Metrics/BlockLength -- because this is how an ActiveSupport
|
4
4
|
# concern looks like
|
5
5
|
module Immoscout
|
6
6
|
module Models
|
@@ -25,11 +25,11 @@ module Immoscout
|
|
25
25
|
self.class.try(:json_wrapper)
|
26
26
|
end
|
27
27
|
|
28
|
-
# rubocop:disable Metrics/PerceivedComplexity because this is the
|
28
|
+
# rubocop:disable Metrics/PerceivedComplexity -- because this is the
|
29
29
|
# bare minimum logic
|
30
|
-
# rubocop:disable Metrics/MethodLength
|
31
|
-
# rubocop:disable Metrics/CyclomaticComplexity
|
32
|
-
# rubocop:disable Metrics/AbcSize
|
30
|
+
# rubocop:disable Metrics/MethodLength -- ditto
|
31
|
+
# rubocop:disable Metrics/CyclomaticComplexity -- ditto
|
32
|
+
# rubocop:disable Metrics/AbcSize -- ditto
|
33
33
|
def to_h
|
34
34
|
self.class.properties.each_with_object({}) do |(key, value), memo|
|
35
35
|
# skip if it's readonly and should not be exposed in #as_json
|
data/lib/immoscout/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: immoscout
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marcus Geissler
|
8
|
-
autorequire:
|
9
8
|
bindir: exe
|
10
9
|
cert_chain: []
|
11
|
-
date:
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
13
12
|
- !ruby/object:Gem::Dependency
|
14
13
|
name: activesupport
|
@@ -16,14 +15,14 @@ dependencies:
|
|
16
15
|
requirements:
|
17
16
|
- - ">="
|
18
17
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
18
|
+
version: '7.1'
|
20
19
|
type: :runtime
|
21
20
|
prerelease: false
|
22
21
|
version_requirements: !ruby/object:Gem::Requirement
|
23
22
|
requirements:
|
24
23
|
- - ">="
|
25
24
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
25
|
+
version: '7.1'
|
27
26
|
- !ruby/object:Gem::Dependency
|
28
27
|
name: faraday
|
29
28
|
requirement: !ruby/object:Gem::Requirement
|
@@ -80,7 +79,6 @@ dependencies:
|
|
80
79
|
- - "~>"
|
81
80
|
- !ruby/object:Gem::Version
|
82
81
|
version: '2.6'
|
83
|
-
description:
|
84
82
|
email:
|
85
83
|
- marcus3006@gmail.com
|
86
84
|
executables: []
|
@@ -116,6 +114,8 @@ files:
|
|
116
114
|
- docker-compose.yml
|
117
115
|
- gemfiles/rails_6.1.gemfile
|
118
116
|
- gemfiles/rails_7.1.gemfile
|
117
|
+
- gemfiles/rails_7.2.gemfile
|
118
|
+
- gemfiles/rails_8.0.gemfile
|
119
119
|
- immoscout.gemspec
|
120
120
|
- lib/immoscout.rb
|
121
121
|
- lib/immoscout/api/client.rb
|
@@ -154,7 +154,6 @@ files:
|
|
154
154
|
- lib/immoscout/models/picture.rb
|
155
155
|
- lib/immoscout/models/publish.rb
|
156
156
|
- lib/immoscout/version.rb
|
157
|
-
homepage:
|
158
157
|
licenses:
|
159
158
|
- MIT
|
160
159
|
metadata:
|
@@ -163,7 +162,6 @@ metadata:
|
|
163
162
|
changelog_uri: https://github.com/hausgold/immoscout/blob/master/CHANGELOG.md
|
164
163
|
bug_tracker_uri: https://github.com/hausgold/immoscout/issues
|
165
164
|
documentation_uri: https://www.rubydoc.info/gems/immoscout
|
166
|
-
post_install_message:
|
167
165
|
rdoc_options: []
|
168
166
|
require_paths:
|
169
167
|
- lib
|
@@ -171,15 +169,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
171
169
|
requirements:
|
172
170
|
- - ">="
|
173
171
|
- !ruby/object:Gem::Version
|
174
|
-
version: '2
|
172
|
+
version: '3.2'
|
175
173
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
176
174
|
requirements:
|
177
175
|
- - ">="
|
178
176
|
- !ruby/object:Gem::Version
|
179
177
|
version: '0'
|
180
178
|
requirements: []
|
181
|
-
rubygems_version: 3.
|
182
|
-
signing_key:
|
179
|
+
rubygems_version: 3.6.9
|
183
180
|
specification_version: 4
|
184
181
|
summary: Ruby client for the Immobilienscout24 REST API
|
185
182
|
test_files: []
|