pricehubble 1.1.0 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (70) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/documentation.yml +4 -3
  3. data/.github/workflows/release.yml +5 -4
  4. data/.github/workflows/test.yml +6 -4
  5. data/.gitignore +1 -0
  6. data/.rubocop.yml +4 -4
  7. data/Appraisals +10 -0
  8. data/CHANGELOG.md +5 -0
  9. data/Dockerfile +3 -3
  10. data/Gemfile +22 -0
  11. data/Makefile +4 -1
  12. data/config/docker/.bashrc +3 -1
  13. data/doc/examples/authentication.rb +1 -1
  14. data/doc/examples/complex_property_valuations.rb +1 -1
  15. data/doc/examples/dossiers.rb +1 -1
  16. data/doc/examples/property_valuations_errors.rb +1 -1
  17. data/doc/examples/simple_property_valuations.rb +1 -1
  18. data/gemfiles/rails_5.2.gemfile +18 -0
  19. data/gemfiles/rails_6.1.gemfile +26 -0
  20. data/gemfiles/rails_7.1.gemfile +26 -0
  21. data/lib/{pricehubble → price_hubble}/client/response/recursive_open_struct.rb +1 -1
  22. data/lib/{pricehubble → price_hubble}/entity/concern/associations.rb +3 -3
  23. data/lib/{pricehubble → price_hubble}/entity/concern/attributes.rb +4 -4
  24. data/lib/{pricehubble → price_hubble}/version.rb +1 -1
  25. data/lib/price_hubble.rb +111 -1
  26. data/lib/pricehubble +1 -0
  27. data/lib/pricehubble.rb +1 -110
  28. data/pricehubble.gemspec +2 -21
  29. metadata +51 -300
  30. /data/lib/{pricehubble → price_hubble}/client/authentication.rb +0 -0
  31. /data/lib/{pricehubble → price_hubble}/client/base.rb +0 -0
  32. /data/lib/{pricehubble → price_hubble}/client/dossiers.rb +0 -0
  33. /data/lib/{pricehubble → price_hubble}/client/request/data_sanitization.rb +0 -0
  34. /data/lib/{pricehubble → price_hubble}/client/request/default_headers.rb +0 -0
  35. /data/lib/{pricehubble → price_hubble}/client/response/data_sanitization.rb +0 -0
  36. /data/lib/{pricehubble → price_hubble}/client/utils/request.rb +0 -0
  37. /data/lib/{pricehubble → price_hubble}/client/utils/response.rb +0 -0
  38. /data/lib/{pricehubble → price_hubble}/client/valuation.rb +0 -0
  39. /data/lib/{pricehubble → price_hubble}/client.rb +0 -0
  40. /data/lib/{pricehubble → price_hubble}/configuration.rb +0 -0
  41. /data/lib/{pricehubble → price_hubble}/configuration_handling.rb +0 -0
  42. /data/lib/{pricehubble → price_hubble}/core_ext/hash.rb +0 -0
  43. /data/lib/{pricehubble → price_hubble}/entity/address.rb +0 -0
  44. /data/lib/{pricehubble → price_hubble}/entity/authentication.rb +0 -0
  45. /data/lib/{pricehubble → price_hubble}/entity/base_entity.rb +0 -0
  46. /data/lib/{pricehubble → price_hubble}/entity/concern/attributes/date_array.rb +0 -0
  47. /data/lib/{pricehubble → price_hubble}/entity/concern/attributes/enum.rb +0 -0
  48. /data/lib/{pricehubble → price_hubble}/entity/concern/attributes/range.rb +0 -0
  49. /data/lib/{pricehubble → price_hubble}/entity/concern/attributes/string_inquirer.rb +0 -0
  50. /data/lib/{pricehubble → price_hubble}/entity/concern/callbacks.rb +0 -0
  51. /data/lib/{pricehubble → price_hubble}/entity/concern/client.rb +0 -0
  52. /data/lib/{pricehubble → price_hubble}/entity/concern/persistence.rb +0 -0
  53. /data/lib/{pricehubble → price_hubble}/entity/coordinates.rb +0 -0
  54. /data/lib/{pricehubble → price_hubble}/entity/dossier.rb +0 -0
  55. /data/lib/{pricehubble → price_hubble}/entity/location.rb +0 -0
  56. /data/lib/{pricehubble → price_hubble}/entity/property.rb +0 -0
  57. /data/lib/{pricehubble → price_hubble}/entity/property_conditions.rb +0 -0
  58. /data/lib/{pricehubble → price_hubble}/entity/property_qualities.rb +0 -0
  59. /data/lib/{pricehubble → price_hubble}/entity/property_type.rb +0 -0
  60. /data/lib/{pricehubble → price_hubble}/entity/valuation.rb +0 -0
  61. /data/lib/{pricehubble → price_hubble}/entity/valuation_request.rb +0 -0
  62. /data/lib/{pricehubble → price_hubble}/entity/valuation_scores.rb +0 -0
  63. /data/lib/{pricehubble → price_hubble}/errors.rb +0 -0
  64. /data/lib/{pricehubble → price_hubble}/faraday.rb +0 -0
  65. /data/lib/{pricehubble → price_hubble}/identity.rb +0 -0
  66. /data/lib/{pricehubble → price_hubble}/instrumentation/log_subscriber.rb +0 -0
  67. /data/lib/{pricehubble → price_hubble}/instrumentation.rb +0 -0
  68. /data/lib/{pricehubble → price_hubble}/railtie.rb +0 -0
  69. /data/lib/{pricehubble → price_hubble}/utils/bangers.rb +0 -0
  70. /data/lib/{pricehubble → price_hubble}/utils/decision.rb +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 85745808382e5b8d332d66c00b5a15c5b31677d5969655951a987a3c1a877b4d
4
- data.tar.gz: 2269357cd88afc29a2dcf145a9a579542d2b33ae88b09cb88771442f960aba9c
3
+ metadata.gz: 504485349e09f5358db5b2f145c6e33251120b48303259ab56aa7ba17a855764
4
+ data.tar.gz: 1fe1aab2cf7702af741c845eac57f5e1151362f144a1710e8a0f25c872a6c4ba
5
5
  SHA512:
6
- metadata.gz: 0e647a10162f859a8ea645b0ffc2cb2da064fc0e3802e4f4646b877221e56e2930894ba189d74837ec097a1bb26dd48cce4b343d5e60271d6cb6cdc366f19c14
7
- data.tar.gz: e040750996b8266d30174b7c6bf692477b8467aa852791e67b2ab864800b267136deb77a86baeebcc038944bedf4b3492d6e379a70887160e3cbdd7e797f129b
6
+ metadata.gz: 61790c191af78c8ebc861d5b10e65bf39776b6ebd6db0eb0f5ad8c9e7996227a7ef3b3db5c6b7c0742078a270f3fec4fa34dd2d600cd40cabb821f2e969092cf
7
+ data.tar.gz: b88944a8a0c5efb01ac8d04362e4223dbb2adefe0cc9bf5845218a1ee100448b6f294b0f77d8b35b628dce2e9befceba900915ee1e2da6fee54b6662908a77ce
@@ -12,19 +12,20 @@ jobs:
12
12
  runs-on: ubuntu-22.04
13
13
  timeout-minutes: 5
14
14
  steps:
15
- - uses: actions/checkout@v3
15
+ - uses: actions/checkout@v4
16
16
 
17
17
  - name: Install the correct Ruby version
18
18
  uses: ruby/setup-ruby@v1
19
19
  with:
20
- ruby-version: 2.5
20
+ ruby-version: 2.7
21
21
  bundler-cache: true
22
- rubygems: '3.3.26'
22
+ rubygems: '3.4.22'
23
23
 
24
24
  - name: Prepare the virtual environment
25
25
  uses: hausgold/actions/ci@master
26
26
  with:
27
27
  clone_token: '${{ secrets.CLONE_TOKEN }}'
28
+ settings_secret_key: '${{ secrets.SETTINGS_SECRET_KEY }}'
28
29
  settings: '${{ github.repository }}'
29
30
  target: ci/gem-test
30
31
 
@@ -18,19 +18,20 @@ jobs:
18
18
  runs-on: ubuntu-22.04
19
19
  timeout-minutes: 5
20
20
  steps:
21
- - uses: actions/checkout@v3
21
+ - uses: actions/checkout@v4
22
22
 
23
- - name: Install Ruby 2.5
23
+ - name: Install Ruby 2.7
24
24
  uses: ruby/setup-ruby@v1
25
25
  with:
26
- ruby-version: 2.5
26
+ ruby-version: 2.7
27
27
  bundler-cache: true
28
- rubygems: '3.3.26'
28
+ rubygems: '3.4.22'
29
29
 
30
30
  - name: Prepare the virtual environment
31
31
  uses: hausgold/actions/ci@master
32
32
  with:
33
33
  clone_token: '${{ secrets.CLONE_TOKEN }}'
34
+ settings_secret_key: '${{ secrets.SETTINGS_SECRET_KEY }}'
34
35
  settings: '${{ github.repository }}'
35
36
  target: ci/gem-test
36
37
 
@@ -18,24 +18,25 @@ jobs:
18
18
  strategy:
19
19
  fail-fast: false
20
20
  matrix:
21
- ruby: ['2.5', '2.7']
22
- rails: ['5.2']
21
+ ruby: ['2.7']
22
+ rails: ['5.2', '6.1', '7.1']
23
23
  env:
24
24
  BUNDLE_GEMFILE: 'gemfiles/rails_${{ matrix.rails }}.gemfile'
25
25
  steps:
26
- - uses: actions/checkout@v3
26
+ - uses: actions/checkout@v4
27
27
 
28
28
  - name: Install the correct Ruby version
29
29
  uses: ruby/setup-ruby@v1
30
30
  with:
31
31
  ruby-version: ${{ matrix.ruby }}
32
32
  bundler-cache: true
33
- rubygems: '3.3.26'
33
+ rubygems: '3.4.22'
34
34
 
35
35
  - name: Prepare the virtual environment
36
36
  uses: hausgold/actions/ci@master
37
37
  with:
38
38
  clone_token: '${{ secrets.CLONE_TOKEN }}'
39
+ settings_secret_key: '${{ secrets.SETTINGS_SECRET_KEY }}'
39
40
  settings: '${{ github.repository }}'
40
41
  target: ci/gem-test
41
42
 
@@ -56,6 +57,7 @@ jobs:
56
57
  uses: hausgold/actions/ci@master
57
58
  with:
58
59
  clone_token: '${{ secrets.CLONE_TOKEN }}'
60
+ settings_secret_key: '${{ secrets.SETTINGS_SECRET_KEY }}'
59
61
  settings: '${{ github.repository }}'
60
62
  target: ci/noop
61
63
 
data/.gitignore CHANGED
@@ -6,6 +6,7 @@
6
6
  /pkg/
7
7
  /spec/reports/
8
8
  /tmp/
9
+ /log/
9
10
  /vendor/
10
11
  /gemfiles/vendor/
11
12
  /Gemfile.lock
data/.rubocop.yml CHANGED
@@ -12,7 +12,7 @@ AllCops:
12
12
  NewCops: enable
13
13
  SuggestExtensions: false
14
14
  DisplayCopNames: true
15
- TargetRubyVersion: 2.5
15
+ TargetRubyVersion: 2.7
16
16
  TargetRailsVersion: 5.2
17
17
  Exclude:
18
18
  - bin/**/*
@@ -28,9 +28,9 @@ Metrics/BlockLength:
28
28
  - '**/*.rake'
29
29
  - doc/**/*.rb
30
30
  # Concerns and middlewares contain by nature long blocks
31
- - lib/pricehubble/entity/concern/**/*.rb
32
- - lib/pricehubble/client/request/**/*.rb
33
- - lib/pricehubble/client/response/**/*.rb
31
+ - lib/price*hubble/entity/concern/**/*.rb
32
+ - lib/price*hubble/client/request/**/*.rb
33
+ - lib/price*hubble/client/response/**/*.rb
34
34
 
35
35
  # Our examples use +pp+ a lot
36
36
  Lint/Debugger:
data/Appraisals CHANGED
@@ -4,3 +4,13 @@ appraise 'rails-5.2' do
4
4
  gem 'activemodel', '~> 5.2.0'
5
5
  gem 'activesupport', '~> 5.2.0'
6
6
  end
7
+
8
+ appraise 'rails-6.1' do
9
+ gem 'activemodel', '~> 6.1.0'
10
+ gem 'activesupport', '~> 6.1.0'
11
+ end
12
+
13
+ appraise 'rails-7.1' do
14
+ gem 'activemodel', '~> 7.1.0'
15
+ gem 'activesupport', '~> 7.1.0'
16
+ end
data/CHANGELOG.md CHANGED
@@ -2,6 +2,11 @@
2
2
 
3
3
  * TODO: Replace this bullet point with an actual description of a change.
4
4
 
5
+ ### 1.2.0
6
+
7
+ * Moved the development dependencies from the gemspec to the Gemfile (#7)
8
+ * Dropped support for Ruby <2.7 (#8)
9
+
5
10
  ### 1.1.0
6
11
 
7
12
  * Added support for Gem release automation
data/Dockerfile CHANGED
@@ -1,8 +1,8 @@
1
- FROM hausgold/ruby:2.5
1
+ FROM hausgold/ruby:2.7
2
2
  MAINTAINER Hermann Mayer <hermann.mayer@hausgold.de>
3
3
 
4
4
  # Update system gem
5
- RUN gem update --system '3.3.26'
5
+ RUN gem update --system '3.4.22'
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.3.0' --no-document --no-prerelease
14
+ gem install bundler -v '~> 2.4.22' --no-document --no-prerelease
15
15
 
16
16
  # Add new web user
17
17
  RUN mkdir /app && \
data/Gemfile CHANGED
@@ -6,3 +6,25 @@ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
6
6
 
7
7
  # Specify your gem's dependencies in price_hubble.gemspec
8
8
  gemspec
9
+
10
+ # Development dependencies
11
+ gem 'appraisal', '~> 2.4'
12
+ gem 'bundler', '~> 2.3'
13
+ gem 'countless', '~> 1.1'
14
+ # TODO: Remove the upper lock when
15
+ # https://github.com/thoughtbot/factory_bot/issues/1614 is solved.
16
+ gem 'factory_bot', '~> 6.2', '< 6.4.5'
17
+ gem 'guard-rspec', '~> 4.7'
18
+ gem 'rake', '~> 13.0'
19
+ gem 'redcarpet', '~> 3.5'
20
+ gem 'rspec', '~> 3.12'
21
+ gem 'rubocop', '~> 1.28'
22
+ gem 'rubocop-rails', '~> 2.14'
23
+ gem 'rubocop-rspec', '~> 2.10'
24
+ gem 'simplecov', '>= 0.22'
25
+ gem 'terminal-table', '~> 3.0'
26
+ gem 'timecop', '>= 0.9.6'
27
+ gem 'vcr', '~> 6.0'
28
+ gem 'webmock', '~> 3.18'
29
+ gem 'yard', '>= 0.9.28'
30
+ gem 'yard-activesupport-concern', '>= 0.0.1'
data/Makefile CHANGED
@@ -24,6 +24,7 @@ GREP ?= grep
24
24
  ID ?= id
25
25
  MKDIR ?= mkdir
26
26
  RM ?= rm
27
+ TEST ?= test
27
28
  XARGS ?= xargs
28
29
 
29
30
  # Container binaries
@@ -35,6 +36,7 @@ RAKE ?= rake
35
36
  RSPEC ?= rspec
36
37
  RUBOCOP ?= rubocop
37
38
  YARD ?= yard
39
+ RUBY_VERSION := ruby-version
38
40
 
39
41
  # Files
40
42
  GEMFILES ?= $(subst _,-,$(patsubst $(GEMFILES_DIR)/%.gemfile,%,\
@@ -113,7 +115,8 @@ test-style: \
113
115
 
114
116
  test-style-ruby:
115
117
  # Run the static code analyzer (rubocop)
116
- @$(call run-shell,$(BUNDLE) exec $(RUBOCOP) -a)
118
+ @$(call run-shell,$(BUNDLE) exec $(RUBOCOP) -a \
119
+ || ($(TEST) $$($(RUBY_VERSION)) != '2.7' && true))
117
120
 
118
121
  clean:
119
122
  # Clean the dependencies
@@ -16,7 +16,9 @@ sudo sed -i 's/autostart=.*/autostart=false/g' /etc/supervisor/conf.d/*
16
16
  sudo supervisord >/dev/null 2>&1 &
17
17
 
18
18
  # Wait for supervisord
19
- while ! supervisorctl status >/dev/null 2>&1; do sleep 1; done
19
+ while ! (sudo supervisorctl status | grep avahi) >/dev/null 2>&1; do
20
+ sleep 1
21
+ done
20
22
 
21
23
  # Boot the mDNS stack
22
24
  echo '# Start the mDNS stack'
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
  # frozen_string_literal: true
3
3
 
4
- require_relative './config'
4
+ require_relative 'config'
5
5
 
6
6
  # Fetch the authentication/identity for the first time, subsequent calls
7
7
  # to this method will return the cached authentication instance until it
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
  # frozen_string_literal: true
3
3
 
4
- require_relative './config'
4
+ require_relative 'config'
5
5
 
6
6
  # Build a property with all relevant information for the valuation. This
7
7
  # example reflects not the full list of supported fields, [see the API
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
  # frozen_string_literal: true
3
3
 
4
- require_relative './config'
4
+ require_relative 'config'
5
5
 
6
6
  # The property to create a dossier for
7
7
  apartment = {
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
  # frozen_string_literal: true
3
3
 
4
- require_relative './config'
4
+ require_relative 'config'
5
5
 
6
6
  begin
7
7
  # Fetch the valuations for a single property (sale) for today (defaults).
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
  # frozen_string_literal: true
3
3
 
4
- require_relative './config'
4
+ require_relative 'config'
5
5
 
6
6
  # Fetch the valuations for a single property (sale) for today (defaults).
7
7
  # This is the bare minimum variant, as a starting point.
@@ -2,6 +2,24 @@
2
2
 
3
3
  source "https://rubygems.org"
4
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", "~> 1.28"
14
+ gem "rubocop-rails", "~> 2.14"
15
+ gem "rubocop-rspec", "~> 2.10"
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"
5
23
  gem "activemodel", "~> 5.2.0"
6
24
  gem "activesupport", "~> 5.2.0"
7
25
 
@@ -0,0 +1,26 @@
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", "~> 1.28"
14
+ gem "rubocop-rails", "~> 2.14"
15
+ gem "rubocop-rspec", "~> 2.10"
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: "../"
@@ -0,0 +1,26 @@
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", "~> 1.28"
14
+ gem "rubocop-rails", "~> 2.14"
15
+ gem "rubocop-rspec", "~> 2.10"
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: "../"
@@ -21,7 +21,7 @@ module PriceHubble
21
21
  body = {} if res[:status] == 204 || res[:body].blank?
22
22
 
23
23
  # Looks like we have some actual data we can wrap
24
- res[:body] = \
24
+ res[:body] =
25
25
  ::RecursiveOpenStruct.new(body, recurse_over_arrays: true)
26
26
  end
27
27
  end
@@ -144,12 +144,12 @@ module PriceHubble
144
144
  def has_one(entity, **args)
145
145
  # Sanitize options
146
146
  entity = entity.to_sym
147
- opts = { class_name: nil, from: entity, persist: false } \
147
+ opts = { class_name: nil, from: entity, persist: false }
148
148
  .merge(args).merge(type: :has_one)
149
149
  # Resolve the given entity to a class name, when no explicit class
150
150
  # name was given via options
151
151
  if opts[:class_name].nil?
152
- opts[:class_name] = \
152
+ opts[:class_name] =
153
153
  entity.to_s.camelcase.prepend('PriceHubble::').constantize
154
154
  end
155
155
  # Register the association
@@ -176,7 +176,7 @@ module PriceHubble
176
176
  def has_many(entity, **args)
177
177
  # Sanitize options
178
178
  entity = entity.to_sym
179
- opts = { class_name: nil, from: entity, persist: false } \
179
+ opts = { class_name: nil, from: entity, persist: false }
180
180
  .merge(args).merge(type: :has_many)
181
181
  # Resolve the given entity to a class name, when no explicit class
182
182
  # name was given via options
@@ -32,11 +32,11 @@ module PriceHubble
32
32
  reader = key
33
33
 
34
34
  if sanitize
35
- sanitizer = "sanitize_attr_#{key}".to_sym
35
+ sanitizer = :"sanitize_attr_#{key}"
36
36
  reader = methods.include?(sanitizer) ? sanitizer : key
37
37
 
38
- key_sanitizer = "sanitize_attr_key_#{key}".to_sym
39
- key = methods.include?(key_sanitizer) ? send(key_sanitizer) : key
38
+ key_sanitizer = :"sanitize_attr_key_#{key}"
39
+ key = send(key_sanitizer) if methods.include?(key_sanitizer)
40
40
  end
41
41
 
42
42
  result = resolve_attributes(send(reader))
@@ -124,7 +124,7 @@ module PriceHubble
124
124
  # Substract known keys, to move them to the +_unmapped+ variable
125
125
  attribute_names.each { |key| struct.delete_field(key) }
126
126
  # Merge the previous unmapped struct and the given data
127
- self._unmapped = \
127
+ self._unmapped =
128
128
  ::RecursiveOpenStruct.new(_unmapped.to_h.merge(struct.to_h),
129
129
  recurse_over_arrays: true)
130
130
  # Allow mass assignment of known attributes
@@ -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 = '1.1.0'
6
+ VERSION = '1.2.0'
7
7
 
8
8
  class << self
9
9
  # Returns the version of gem as a string.
data/lib/price_hubble.rb CHANGED
@@ -1,3 +1,113 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'pricehubble'
3
+ require 'active_support'
4
+ require 'active_support/concern'
5
+ require 'active_support/configurable'
6
+ require 'active_support/time'
7
+ require 'active_support/time_with_zone'
8
+ require 'active_support/core_ext/object'
9
+ require 'active_support/core_ext/module'
10
+ require 'active_support/core_ext/hash'
11
+ require 'active_support/core_ext/string'
12
+ require 'active_model'
13
+ require 'recursive-open-struct'
14
+ require 'faraday'
15
+ require 'faraday_middleware'
16
+
17
+ # Load polyfills if needed
18
+ require 'price_hubble/core_ext/hash'
19
+
20
+ # The top level namespace for the PriceHubble gem.
21
+ module PriceHubble
22
+ # Top level elements
23
+ autoload :Configuration, 'price_hubble/configuration'
24
+ autoload :ConfigurationHandling, 'price_hubble/configuration_handling'
25
+ autoload :Client, 'price_hubble/client'
26
+ autoload :Identity, 'price_hubble/identity'
27
+ autoload :Instrumentation, 'price_hubble/instrumentation'
28
+
29
+ # Entities
30
+ autoload :BaseEntity, 'price_hubble/entity/base_entity'
31
+ autoload :Authentication, 'price_hubble/entity/authentication'
32
+ autoload :Valuation, 'price_hubble/entity/valuation'
33
+ autoload :ValuationScores, 'price_hubble/entity/valuation_scores'
34
+ autoload :ValuationRequest, 'price_hubble/entity/valuation_request'
35
+ autoload :Property, 'price_hubble/entity/property'
36
+ autoload :PropertyConditions, 'price_hubble/entity/property_conditions'
37
+ autoload :PropertyQualities, 'price_hubble/entity/property_qualities'
38
+ autoload :PropertyType, 'price_hubble/entity/property_type'
39
+ autoload :Location, 'price_hubble/entity/location'
40
+ autoload :Address, 'price_hubble/entity/address'
41
+ autoload :Coordinates, 'price_hubble/entity/coordinates'
42
+ autoload :Dossier, 'price_hubble/entity/dossier'
43
+
44
+ # Some general purpose utilities
45
+ module Utils
46
+ autoload :Decision, 'price_hubble/utils/decision'
47
+ autoload :Bangers, 'price_hubble/utils/bangers'
48
+ end
49
+
50
+ # Instrumentation
51
+ module Instrumentation
52
+ autoload :LogSubscriber, 'price_hubble/instrumentation/log_subscriber'
53
+ end
54
+
55
+ # Dedicated application HTTP (low level) client
56
+ module Client
57
+ # All our utilities used for the low level client
58
+ module Utils
59
+ autoload :Request, 'price_hubble/client/utils/request'
60
+ autoload :Response, 'price_hubble/client/utils/response'
61
+ end
62
+
63
+ # Faraday request middlewares
64
+ module Request
65
+ autoload :DataSanitization,
66
+ 'price_hubble/client/request/data_sanitization'
67
+ autoload :DefaultHeaders, 'price_hubble/client/request/default_headers'
68
+ end
69
+
70
+ # Faraday response middlewares
71
+ module Response
72
+ autoload :DataSanitization,
73
+ 'price_hubble/client/response/data_sanitization'
74
+ autoload :RecursiveOpenStruct,
75
+ 'price_hubble/client/response/recursive_open_struct'
76
+ end
77
+
78
+ autoload :Base, 'price_hubble/client/base'
79
+ autoload :Authentication, 'price_hubble/client/authentication'
80
+ autoload :Valuation, 'price_hubble/client/valuation'
81
+ autoload :Dossiers, 'price_hubble/client/dossiers'
82
+ end
83
+
84
+ # Separated features of an entity instance
85
+ module EntityConcern
86
+ autoload :Callbacks, 'price_hubble/entity/concern/callbacks'
87
+ autoload :Attributes, 'price_hubble/entity/concern/attributes'
88
+ autoload :Associations, 'price_hubble/entity/concern/associations'
89
+ autoload :Client, 'price_hubble/entity/concern/client'
90
+ autoload :Persistence, 'price_hubble/entity/concern/persistence'
91
+
92
+ # Some custom typed attribute helpers
93
+ module Attributes
94
+ base = 'price_hubble/entity/concern/attributes'
95
+ autoload :DateArray, "#{base}/date_array"
96
+ autoload :Enum, "#{base}/enum"
97
+ autoload :Range, "#{base}/range"
98
+ autoload :StringInquirer, "#{base}/string_inquirer"
99
+ end
100
+ end
101
+
102
+ # Load standalone code
103
+ require 'price_hubble/version'
104
+ require 'price_hubble/errors'
105
+ require 'price_hubble/faraday'
106
+ require 'price_hubble/railtie' if defined? Rails
107
+
108
+ # Include top-level features
109
+ include PriceHubble::ConfigurationHandling
110
+ include PriceHubble::Client
111
+ include PriceHubble::Identity
112
+ include PriceHubble::Instrumentation
113
+ end
data/lib/pricehubble ADDED
@@ -0,0 +1 @@
1
+ price_hubble
data/lib/pricehubble.rb CHANGED
@@ -1,112 +1,3 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'active_support'
4
- require 'active_support/concern'
5
- require 'active_support/configurable'
6
- require 'active_support/time'
7
- require 'active_support/time_with_zone'
8
- require 'active_support/core_ext/object'
9
- require 'active_support/core_ext/module'
10
- require 'active_support/core_ext/hash'
11
- require 'active_support/core_ext/string'
12
- require 'active_model'
13
- require 'recursive-open-struct'
14
- require 'faraday'
15
- require 'faraday_middleware'
16
-
17
- # Load polyfills if needed
18
- require 'pricehubble/core_ext/hash'
19
-
20
- # The top level namespace for the PriceHubble gem.
21
- module PriceHubble
22
- # Top level elements
23
- autoload :Configuration, 'pricehubble/configuration'
24
- autoload :ConfigurationHandling, 'pricehubble/configuration_handling'
25
- autoload :Client, 'pricehubble/client'
26
- autoload :Identity, 'pricehubble/identity'
27
- autoload :Instrumentation, 'pricehubble/instrumentation'
28
-
29
- # Entities
30
- autoload :BaseEntity, 'pricehubble/entity/base_entity'
31
- autoload :Authentication, 'pricehubble/entity/authentication'
32
- autoload :Valuation, 'pricehubble/entity/valuation'
33
- autoload :ValuationScores, 'pricehubble/entity/valuation_scores'
34
- autoload :ValuationRequest, 'pricehubble/entity/valuation_request'
35
- autoload :Property, 'pricehubble/entity/property'
36
- autoload :PropertyConditions, 'pricehubble/entity/property_conditions'
37
- autoload :PropertyQualities, 'pricehubble/entity/property_qualities'
38
- autoload :PropertyType, 'pricehubble/entity/property_type'
39
- autoload :Location, 'pricehubble/entity/location'
40
- autoload :Address, 'pricehubble/entity/address'
41
- autoload :Coordinates, 'pricehubble/entity/coordinates'
42
- autoload :Dossier, 'pricehubble/entity/dossier'
43
-
44
- # Some general purpose utilities
45
- module Utils
46
- autoload :Decision, 'pricehubble/utils/decision'
47
- autoload :Bangers, 'pricehubble/utils/bangers'
48
- end
49
-
50
- # Instrumentation
51
- module Instrumentation
52
- autoload :LogSubscriber, 'pricehubble/instrumentation/log_subscriber'
53
- end
54
-
55
- # Dedicated application HTTP (low level) client
56
- module Client
57
- # All our utilities used for the low level client
58
- module Utils
59
- autoload :Request, 'pricehubble/client/utils/request'
60
- autoload :Response, 'pricehubble/client/utils/response'
61
- end
62
-
63
- # Faraday request middlewares
64
- module Request
65
- autoload :DataSanitization, 'pricehubble/client/request/data_sanitization'
66
- autoload :DefaultHeaders, 'pricehubble/client/request/default_headers'
67
- end
68
-
69
- # Faraday response middlewares
70
- module Response
71
- autoload :DataSanitization,
72
- 'pricehubble/client/response/data_sanitization'
73
- autoload :RecursiveOpenStruct,
74
- 'pricehubble/client/response/recursive_open_struct'
75
- end
76
-
77
- autoload :Base, 'pricehubble/client/base'
78
- autoload :Authentication, 'pricehubble/client/authentication'
79
- autoload :Valuation, 'pricehubble/client/valuation'
80
- autoload :Dossiers, 'pricehubble/client/dossiers'
81
- end
82
-
83
- # Separated features of an entity instance
84
- module EntityConcern
85
- autoload :Callbacks, 'pricehubble/entity/concern/callbacks'
86
- autoload :Attributes, 'pricehubble/entity/concern/attributes'
87
- autoload :Associations, 'pricehubble/entity/concern/associations'
88
- autoload :Client, 'pricehubble/entity/concern/client'
89
- autoload :Persistence, 'pricehubble/entity/concern/persistence'
90
-
91
- # Some custom typed attribute helpers
92
- module Attributes
93
- base = 'pricehubble/entity/concern/attributes'
94
- autoload :DateArray, "#{base}/date_array"
95
- autoload :Enum, "#{base}/enum"
96
- autoload :Range, "#{base}/range"
97
- autoload :StringInquirer, "#{base}/string_inquirer"
98
- end
99
- end
100
-
101
- # Load standalone code
102
- require 'pricehubble/version'
103
- require 'pricehubble/errors'
104
- require 'pricehubble/faraday'
105
- require 'pricehubble/railtie' if defined? Rails
106
-
107
- # Include top-level features
108
- include PriceHubble::ConfigurationHandling
109
- include PriceHubble::Client
110
- include PriceHubble::Identity
111
- include PriceHubble::Instrumentation
112
- end
3
+ require 'price_hubble'
data/pricehubble.gemspec CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  lib = File.expand_path('lib', __dir__)
4
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
- require 'pricehubble/version'
5
+ require 'price_hubble/version'
6
6
 
7
7
  Gem::Specification.new do |spec|
8
8
  spec.name = 'pricehubble'
@@ -31,30 +31,11 @@ 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 = '>= 2.5'
34
+ spec.required_ruby_version = '>= 2.7'
35
35
 
36
36
  spec.add_runtime_dependency 'activemodel', '>= 5.2'
37
37
  spec.add_runtime_dependency 'activesupport', '>= 5.2'
38
38
  spec.add_runtime_dependency 'faraday', '~> 1.0'
39
39
  spec.add_runtime_dependency 'faraday_middleware', '~> 1.0'
40
40
  spec.add_runtime_dependency 'recursive-open-struct', '~> 1.1'
41
-
42
- spec.add_development_dependency 'appraisal', '~> 2.4'
43
- spec.add_development_dependency 'bundler', '~> 2.3'
44
- spec.add_development_dependency 'countless', '~> 1.1'
45
- spec.add_development_dependency 'factory_bot', '~> 6.2'
46
- spec.add_development_dependency 'guard-rspec', '~> 4.7'
47
- spec.add_development_dependency 'rake', '~> 13.0'
48
- spec.add_development_dependency 'redcarpet', '~> 3.5'
49
- spec.add_development_dependency 'rspec', '~> 3.12'
50
- spec.add_development_dependency 'rubocop', '~> 1.28'
51
- spec.add_development_dependency 'rubocop-rails', '~> 2.14'
52
- spec.add_development_dependency 'rubocop-rspec', '~> 2.10'
53
- spec.add_development_dependency 'simplecov', '>= 0.22'
54
- spec.add_development_dependency 'terminal-table', '~> 3.0'
55
- spec.add_development_dependency 'timecop', '>= 0.9.6'
56
- spec.add_development_dependency 'vcr', '~> 6.0'
57
- spec.add_development_dependency 'webmock', '~> 3.18'
58
- spec.add_development_dependency 'yard', '>= 0.9.28'
59
- spec.add_development_dependency 'yard-activesupport-concern', '>= 0.0.1'
60
41
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pricehubble
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hermann Mayer
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-02-24 00:00:00.000000000 Z
11
+ date: 2024-07-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel
@@ -80,258 +80,6 @@ dependencies:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: '1.1'
83
- - !ruby/object:Gem::Dependency
84
- name: appraisal
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - "~>"
88
- - !ruby/object:Gem::Version
89
- version: '2.4'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - "~>"
95
- - !ruby/object:Gem::Version
96
- version: '2.4'
97
- - !ruby/object:Gem::Dependency
98
- name: bundler
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - "~>"
102
- - !ruby/object:Gem::Version
103
- version: '2.3'
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - "~>"
109
- - !ruby/object:Gem::Version
110
- version: '2.3'
111
- - !ruby/object:Gem::Dependency
112
- name: countless
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - "~>"
116
- - !ruby/object:Gem::Version
117
- version: '1.1'
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - "~>"
123
- - !ruby/object:Gem::Version
124
- version: '1.1'
125
- - !ruby/object:Gem::Dependency
126
- name: factory_bot
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - "~>"
130
- - !ruby/object:Gem::Version
131
- version: '6.2'
132
- type: :development
133
- prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - "~>"
137
- - !ruby/object:Gem::Version
138
- version: '6.2'
139
- - !ruby/object:Gem::Dependency
140
- name: guard-rspec
141
- requirement: !ruby/object:Gem::Requirement
142
- requirements:
143
- - - "~>"
144
- - !ruby/object:Gem::Version
145
- version: '4.7'
146
- type: :development
147
- prerelease: false
148
- version_requirements: !ruby/object:Gem::Requirement
149
- requirements:
150
- - - "~>"
151
- - !ruby/object:Gem::Version
152
- version: '4.7'
153
- - !ruby/object:Gem::Dependency
154
- name: rake
155
- requirement: !ruby/object:Gem::Requirement
156
- requirements:
157
- - - "~>"
158
- - !ruby/object:Gem::Version
159
- version: '13.0'
160
- type: :development
161
- prerelease: false
162
- version_requirements: !ruby/object:Gem::Requirement
163
- requirements:
164
- - - "~>"
165
- - !ruby/object:Gem::Version
166
- version: '13.0'
167
- - !ruby/object:Gem::Dependency
168
- name: redcarpet
169
- requirement: !ruby/object:Gem::Requirement
170
- requirements:
171
- - - "~>"
172
- - !ruby/object:Gem::Version
173
- version: '3.5'
174
- type: :development
175
- prerelease: false
176
- version_requirements: !ruby/object:Gem::Requirement
177
- requirements:
178
- - - "~>"
179
- - !ruby/object:Gem::Version
180
- version: '3.5'
181
- - !ruby/object:Gem::Dependency
182
- name: rspec
183
- requirement: !ruby/object:Gem::Requirement
184
- requirements:
185
- - - "~>"
186
- - !ruby/object:Gem::Version
187
- version: '3.12'
188
- type: :development
189
- prerelease: false
190
- version_requirements: !ruby/object:Gem::Requirement
191
- requirements:
192
- - - "~>"
193
- - !ruby/object:Gem::Version
194
- version: '3.12'
195
- - !ruby/object:Gem::Dependency
196
- name: rubocop
197
- requirement: !ruby/object:Gem::Requirement
198
- requirements:
199
- - - "~>"
200
- - !ruby/object:Gem::Version
201
- version: '1.28'
202
- type: :development
203
- prerelease: false
204
- version_requirements: !ruby/object:Gem::Requirement
205
- requirements:
206
- - - "~>"
207
- - !ruby/object:Gem::Version
208
- version: '1.28'
209
- - !ruby/object:Gem::Dependency
210
- name: rubocop-rails
211
- requirement: !ruby/object:Gem::Requirement
212
- requirements:
213
- - - "~>"
214
- - !ruby/object:Gem::Version
215
- version: '2.14'
216
- type: :development
217
- prerelease: false
218
- version_requirements: !ruby/object:Gem::Requirement
219
- requirements:
220
- - - "~>"
221
- - !ruby/object:Gem::Version
222
- version: '2.14'
223
- - !ruby/object:Gem::Dependency
224
- name: rubocop-rspec
225
- requirement: !ruby/object:Gem::Requirement
226
- requirements:
227
- - - "~>"
228
- - !ruby/object:Gem::Version
229
- version: '2.10'
230
- type: :development
231
- prerelease: false
232
- version_requirements: !ruby/object:Gem::Requirement
233
- requirements:
234
- - - "~>"
235
- - !ruby/object:Gem::Version
236
- version: '2.10'
237
- - !ruby/object:Gem::Dependency
238
- name: simplecov
239
- requirement: !ruby/object:Gem::Requirement
240
- requirements:
241
- - - ">="
242
- - !ruby/object:Gem::Version
243
- version: '0.22'
244
- type: :development
245
- prerelease: false
246
- version_requirements: !ruby/object:Gem::Requirement
247
- requirements:
248
- - - ">="
249
- - !ruby/object:Gem::Version
250
- version: '0.22'
251
- - !ruby/object:Gem::Dependency
252
- name: terminal-table
253
- requirement: !ruby/object:Gem::Requirement
254
- requirements:
255
- - - "~>"
256
- - !ruby/object:Gem::Version
257
- version: '3.0'
258
- type: :development
259
- prerelease: false
260
- version_requirements: !ruby/object:Gem::Requirement
261
- requirements:
262
- - - "~>"
263
- - !ruby/object:Gem::Version
264
- version: '3.0'
265
- - !ruby/object:Gem::Dependency
266
- name: timecop
267
- requirement: !ruby/object:Gem::Requirement
268
- requirements:
269
- - - ">="
270
- - !ruby/object:Gem::Version
271
- version: 0.9.6
272
- type: :development
273
- prerelease: false
274
- version_requirements: !ruby/object:Gem::Requirement
275
- requirements:
276
- - - ">="
277
- - !ruby/object:Gem::Version
278
- version: 0.9.6
279
- - !ruby/object:Gem::Dependency
280
- name: vcr
281
- requirement: !ruby/object:Gem::Requirement
282
- requirements:
283
- - - "~>"
284
- - !ruby/object:Gem::Version
285
- version: '6.0'
286
- type: :development
287
- prerelease: false
288
- version_requirements: !ruby/object:Gem::Requirement
289
- requirements:
290
- - - "~>"
291
- - !ruby/object:Gem::Version
292
- version: '6.0'
293
- - !ruby/object:Gem::Dependency
294
- name: webmock
295
- requirement: !ruby/object:Gem::Requirement
296
- requirements:
297
- - - "~>"
298
- - !ruby/object:Gem::Version
299
- version: '3.18'
300
- type: :development
301
- prerelease: false
302
- version_requirements: !ruby/object:Gem::Requirement
303
- requirements:
304
- - - "~>"
305
- - !ruby/object:Gem::Version
306
- version: '3.18'
307
- - !ruby/object:Gem::Dependency
308
- name: yard
309
- requirement: !ruby/object:Gem::Requirement
310
- requirements:
311
- - - ">="
312
- - !ruby/object:Gem::Version
313
- version: 0.9.28
314
- type: :development
315
- prerelease: false
316
- version_requirements: !ruby/object:Gem::Requirement
317
- requirements:
318
- - - ">="
319
- - !ruby/object:Gem::Version
320
- version: 0.9.28
321
- - !ruby/object:Gem::Dependency
322
- name: yard-activesupport-concern
323
- requirement: !ruby/object:Gem::Requirement
324
- requirements:
325
- - - ">="
326
- - !ruby/object:Gem::Version
327
- version: 0.0.1
328
- type: :development
329
- prerelease: false
330
- version_requirements: !ruby/object:Gem::Requirement
331
- requirements:
332
- - - ">="
333
- - !ruby/object:Gem::Version
334
- version: 0.0.1
335
83
  description: Ruby client for the PriceHubble REST API
336
84
  email:
337
85
  - hermann.mayer92@gmail.com
@@ -374,53 +122,56 @@ files:
374
122
  - doc/examples/simple_property_valuations.rb
375
123
  - docker-compose.yml
376
124
  - gemfiles/rails_5.2.gemfile
125
+ - gemfiles/rails_6.1.gemfile
126
+ - gemfiles/rails_7.1.gemfile
377
127
  - lib/price_hubble.rb
128
+ - lib/price_hubble/client.rb
129
+ - lib/price_hubble/client/authentication.rb
130
+ - lib/price_hubble/client/base.rb
131
+ - lib/price_hubble/client/dossiers.rb
132
+ - lib/price_hubble/client/request/data_sanitization.rb
133
+ - lib/price_hubble/client/request/default_headers.rb
134
+ - lib/price_hubble/client/response/data_sanitization.rb
135
+ - lib/price_hubble/client/response/recursive_open_struct.rb
136
+ - lib/price_hubble/client/utils/request.rb
137
+ - lib/price_hubble/client/utils/response.rb
138
+ - lib/price_hubble/client/valuation.rb
139
+ - lib/price_hubble/configuration.rb
140
+ - lib/price_hubble/configuration_handling.rb
141
+ - lib/price_hubble/core_ext/hash.rb
142
+ - lib/price_hubble/entity/address.rb
143
+ - lib/price_hubble/entity/authentication.rb
144
+ - lib/price_hubble/entity/base_entity.rb
145
+ - lib/price_hubble/entity/concern/associations.rb
146
+ - lib/price_hubble/entity/concern/attributes.rb
147
+ - lib/price_hubble/entity/concern/attributes/date_array.rb
148
+ - lib/price_hubble/entity/concern/attributes/enum.rb
149
+ - lib/price_hubble/entity/concern/attributes/range.rb
150
+ - lib/price_hubble/entity/concern/attributes/string_inquirer.rb
151
+ - lib/price_hubble/entity/concern/callbacks.rb
152
+ - lib/price_hubble/entity/concern/client.rb
153
+ - lib/price_hubble/entity/concern/persistence.rb
154
+ - lib/price_hubble/entity/coordinates.rb
155
+ - lib/price_hubble/entity/dossier.rb
156
+ - lib/price_hubble/entity/location.rb
157
+ - lib/price_hubble/entity/property.rb
158
+ - lib/price_hubble/entity/property_conditions.rb
159
+ - lib/price_hubble/entity/property_qualities.rb
160
+ - lib/price_hubble/entity/property_type.rb
161
+ - lib/price_hubble/entity/valuation.rb
162
+ - lib/price_hubble/entity/valuation_request.rb
163
+ - lib/price_hubble/entity/valuation_scores.rb
164
+ - lib/price_hubble/errors.rb
165
+ - lib/price_hubble/faraday.rb
166
+ - lib/price_hubble/identity.rb
167
+ - lib/price_hubble/instrumentation.rb
168
+ - lib/price_hubble/instrumentation/log_subscriber.rb
169
+ - lib/price_hubble/railtie.rb
170
+ - lib/price_hubble/utils/bangers.rb
171
+ - lib/price_hubble/utils/decision.rb
172
+ - lib/price_hubble/version.rb
173
+ - lib/pricehubble
378
174
  - lib/pricehubble.rb
379
- - lib/pricehubble/client.rb
380
- - lib/pricehubble/client/authentication.rb
381
- - lib/pricehubble/client/base.rb
382
- - lib/pricehubble/client/dossiers.rb
383
- - lib/pricehubble/client/request/data_sanitization.rb
384
- - lib/pricehubble/client/request/default_headers.rb
385
- - lib/pricehubble/client/response/data_sanitization.rb
386
- - lib/pricehubble/client/response/recursive_open_struct.rb
387
- - lib/pricehubble/client/utils/request.rb
388
- - lib/pricehubble/client/utils/response.rb
389
- - lib/pricehubble/client/valuation.rb
390
- - lib/pricehubble/configuration.rb
391
- - lib/pricehubble/configuration_handling.rb
392
- - lib/pricehubble/core_ext/hash.rb
393
- - lib/pricehubble/entity/address.rb
394
- - lib/pricehubble/entity/authentication.rb
395
- - lib/pricehubble/entity/base_entity.rb
396
- - lib/pricehubble/entity/concern/associations.rb
397
- - lib/pricehubble/entity/concern/attributes.rb
398
- - lib/pricehubble/entity/concern/attributes/date_array.rb
399
- - lib/pricehubble/entity/concern/attributes/enum.rb
400
- - lib/pricehubble/entity/concern/attributes/range.rb
401
- - lib/pricehubble/entity/concern/attributes/string_inquirer.rb
402
- - lib/pricehubble/entity/concern/callbacks.rb
403
- - lib/pricehubble/entity/concern/client.rb
404
- - lib/pricehubble/entity/concern/persistence.rb
405
- - lib/pricehubble/entity/coordinates.rb
406
- - lib/pricehubble/entity/dossier.rb
407
- - lib/pricehubble/entity/location.rb
408
- - lib/pricehubble/entity/property.rb
409
- - lib/pricehubble/entity/property_conditions.rb
410
- - lib/pricehubble/entity/property_qualities.rb
411
- - lib/pricehubble/entity/property_type.rb
412
- - lib/pricehubble/entity/valuation.rb
413
- - lib/pricehubble/entity/valuation_request.rb
414
- - lib/pricehubble/entity/valuation_scores.rb
415
- - lib/pricehubble/errors.rb
416
- - lib/pricehubble/faraday.rb
417
- - lib/pricehubble/identity.rb
418
- - lib/pricehubble/instrumentation.rb
419
- - lib/pricehubble/instrumentation/log_subscriber.rb
420
- - lib/pricehubble/railtie.rb
421
- - lib/pricehubble/utils/bangers.rb
422
- - lib/pricehubble/utils/decision.rb
423
- - lib/pricehubble/version.rb
424
175
  - pricehubble.gemspec
425
176
  homepage:
426
177
  licenses:
@@ -439,7 +190,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
439
190
  requirements:
440
191
  - - ">="
441
192
  - !ruby/object:Gem::Version
442
- version: '2.5'
193
+ version: '2.7'
443
194
  required_rubygems_version: !ruby/object:Gem::Requirement
444
195
  requirements:
445
196
  - - ">="
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes