immoscout 1.1.0 → 1.3.2

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.
Files changed (49) hide show
  1. checksums.yaml +5 -5
  2. data/.github/workflows/documentation.yml +38 -0
  3. data/.github/workflows/test.yml +62 -0
  4. data/.gitignore +6 -4
  5. data/.rubocop.yml +17 -8
  6. data/.yardopts +6 -0
  7. data/Appraisals +9 -0
  8. data/CHANGELOG.md +33 -0
  9. data/Dockerfile +29 -0
  10. data/Envfile +6 -0
  11. data/Gemfile +1 -1
  12. data/Makefile +152 -0
  13. data/README.md +5 -5
  14. data/Rakefile +71 -2
  15. data/config/docker/.bash_profile +3 -0
  16. data/config/docker/.bashrc +48 -0
  17. data/config/docker/.inputrc +17 -0
  18. data/doc/assets/project.svg +68 -0
  19. data/docker-compose.yml +9 -0
  20. data/gemfiles/rails_5.2.gemfile +9 -0
  21. data/gemfiles/rails_6.0.gemfile +9 -0
  22. data/immoscout.gemspec +36 -24
  23. data/lib/immoscout/api/client.rb +4 -2
  24. data/lib/immoscout/api/connection.rb +4 -2
  25. data/lib/immoscout/api/request.rb +9 -3
  26. data/lib/immoscout/configuration.rb +7 -7
  27. data/lib/immoscout/errors/failed.rb +2 -0
  28. data/lib/immoscout/models/actions/attachment.rb +27 -9
  29. data/lib/immoscout/models/actions/contact.rb +10 -2
  30. data/lib/immoscout/models/actions/publish.rb +3 -1
  31. data/lib/immoscout/models/actions/real_estate.rb +13 -3
  32. data/lib/immoscout/models/apartment_buy.rb +1 -1
  33. data/lib/immoscout/models/base.rb +1 -0
  34. data/lib/immoscout/models/concerns/modelable.rb +6 -3
  35. data/lib/immoscout/models/concerns/propertiable.rb +4 -1
  36. data/lib/immoscout/models/concerns/renderable.rb +13 -0
  37. data/lib/immoscout/models/contact.rb +1 -1
  38. data/lib/immoscout/models/document.rb +1 -1
  39. data/lib/immoscout/models/house_buy.rb +1 -1
  40. data/lib/immoscout/models/picture.rb +2 -2
  41. data/lib/immoscout/models/publish.rb +1 -1
  42. data/lib/immoscout/models.rb +2 -0
  43. data/lib/immoscout/version.rb +1 -1
  44. data/lib/immoscout.rb +1 -1
  45. metadata +198 -36
  46. data/.travis.yml +0 -20
  47. data/doc/assets/logo.png +0 -0
  48. data/doc/assets/project.png +0 -0
  49. data/doc/assets/project.xcf +0 -0
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This file was generated by Appraisal
4
+
5
+ source 'https://rubygems.org'
6
+
7
+ gem 'activesupport', '~> 6.0.0'
8
+
9
+ gemspec path: '../'
data/immoscout.gemspec CHANGED
@@ -1,47 +1,59 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- lib = File.expand_path("../lib", __FILE__)
3
+ lib = File.expand_path('lib', __dir__)
4
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
- require "immoscout/version"
5
+ require 'immoscout/version'
6
6
 
7
7
  Gem::Specification.new do |spec|
8
- spec.name = "immoscout"
8
+ spec.name = 'immoscout'
9
9
  spec.version = Immoscout::VERSION
10
- spec.authors = ["Marcus Geissler"]
11
- spec.email = ["marcus.geissler@hanseventures.com"]
10
+ spec.authors = ['Marcus Geissler']
11
+ spec.email = ['marcus.geissler@hanseventures.com']
12
12
 
13
13
  spec.summary = 'Ruby client for the Immobilienscout24 REST API'
14
- spec.homepage = "https://github.com/hausgold/immoscout"
15
- spec.license = "MIT"
14
+ spec.homepage = 'https://github.com/hausgold/immoscout'
15
+ spec.license = 'MIT'
16
+
17
+ spec.required_ruby_version = '~> 2.5'
16
18
 
17
19
  # Prevent pushing this gem to RubyGems.org.
18
20
  # To allow pushes either set the 'allowed_push_host'
19
21
  # to allow pushing to a single host or delete this
20
22
  # section to allow pushing to any host.
21
23
  if spec.respond_to?(:metadata)
22
- spec.metadata["allowed_push_host"] = "https://rubygems.org"
24
+ spec.metadata['allowed_push_host'] = 'https://rubygems.org'
23
25
  else
24
- raise "RubyGems 2.0 or newer is required to protect against " \
25
- "public gem pushes."
26
+ raise 'RubyGems 2.0 or newer is required to protect against ' \
27
+ 'public gem pushes.'
26
28
  end
27
29
 
28
30
  spec.files = `git ls-files -z`.split("\x0").reject do |f|
29
31
  f.match(%r{^(test|spec|features)/})
30
32
  end
31
- spec.bindir = "exe"
33
+ spec.bindir = 'exe'
32
34
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
33
- spec.require_paths = ["lib"]
34
- spec.add_dependency "activesupport", ">= 3.2.0"
35
- spec.add_dependency "faraday", "~> 0.13.0"
36
- spec.add_dependency "faraday_middleware", "~> 0.12.0"
37
- spec.add_dependency "simple_oauth", ">= 0.3"
35
+ spec.require_paths = ['lib']
36
+ spec.add_dependency 'activesupport', '>= 5.2.0'
37
+ spec.add_dependency 'faraday', '~> 1.0'
38
+ spec.add_dependency 'faraday_middleware', '~> 1.0'
39
+ spec.add_dependency 'simple_oauth', '>= 0.3'
38
40
 
39
- spec.add_development_dependency "bundler", "~> 1.15"
40
- spec.add_development_dependency "pry"
41
- spec.add_development_dependency "rake", "~> 10.0"
42
- spec.add_development_dependency "rspec", "~> 3.0"
43
- spec.add_development_dependency "rspec-json_expectations", "~> 1.4.0"
44
- spec.add_development_dependency "vcr", "~> 3.0.0"
45
- spec.add_development_dependency "webmock", "~> 2.3.0"
46
- spec.add_development_dependency "simplecov"
41
+ spec.add_development_dependency 'appraisal'
42
+ spec.add_development_dependency 'bundler', '>= 1.16', '< 3'
43
+ spec.add_development_dependency 'factory_bot', '~> 4.11'
44
+ spec.add_development_dependency 'railties', '>= 4.2.0', '< 6.1'
45
+ spec.add_development_dependency 'rake', '~> 10.0'
46
+ spec.add_development_dependency 'rdoc', '~> 6.1'
47
+ spec.add_development_dependency 'redcarpet', '~> 3.4'
48
+ spec.add_development_dependency 'rspec', '~> 3.0'
49
+ spec.add_development_dependency 'rspec-json_expectations', '~> 1.4'
50
+ spec.add_development_dependency 'rubocop', '~> 0.63.1'
51
+ spec.add_development_dependency 'rubocop-rspec', '~> 1.31'
52
+ spec.add_development_dependency 'simplecov', '< 0.18'
53
+ spec.add_development_dependency 'terminal-table', '~> 1.8'
54
+ spec.add_development_dependency 'timecop', '~> 0.9.1'
55
+ spec.add_development_dependency 'vcr', '~> 3.0'
56
+ spec.add_development_dependency 'webmock', '~> 3.5'
57
+ spec.add_development_dependency 'yard', '~> 0.9.18'
58
+ spec.add_development_dependency 'yard-activesupport-concern', '~> 0.0.1'
47
59
  end
@@ -1,6 +1,8 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'singleton'
2
- require_relative "connection"
3
- require_relative "request"
4
+ require_relative 'connection'
5
+ require_relative 'request'
4
6
 
5
7
  module Immoscout
6
8
  module Api
@@ -1,5 +1,7 @@
1
- require "faraday"
2
- require "faraday_middleware"
1
+ # frozen_string_literal: true
2
+
3
+ require 'faraday'
4
+ require 'faraday_middleware'
3
5
 
4
6
  module Immoscout
5
7
  module Api
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Immoscout
2
4
  module Api
3
5
  module Request
@@ -17,17 +19,21 @@ module Immoscout
17
19
  request(:delete, path, payload, multipart)
18
20
  end
19
21
 
22
+ # rubocop:disable Metrics/MethodLength because of the header handling
20
23
  def request(method, path, payload = nil, multipart = nil)
21
24
  connection.send(method, path, multipart) do |request|
22
25
  if multipart
23
- request.headers['Content-Type'] = "multipart/form-data"
26
+ request.headers['Content-Type'] = 'multipart/form-data'
24
27
  else
25
28
  request.body = payload if payload
26
- request.headers['Content-Type'] = "application/json;charset=UTF-8"
29
+ request.headers['Content-Type'] = 'application/json;charset=UTF-8'
27
30
  end
28
- request.headers['Accept'] = "application/json"
31
+ request.headers['Accept'] = 'application/json'
32
+ request.headers['User-Agent'] = \
33
+ "HausgoldImmoscout/#{Immoscout::VERSION}"
29
34
  end
30
35
  end
36
+ # rubocop:enable Metrics/MethodLength
31
37
  end
32
38
  end
33
39
  end
@@ -3,24 +3,24 @@
3
3
  module Immoscout
4
4
  class Configuration
5
5
  include ActiveSupport::Configurable
6
- config_accessor(:consumer_key) { ENV["IMMOSCOUT_CONSUMER_KEY"] }
7
- config_accessor(:consumer_secret) { ENV["IMMOSCOUT_CONSUMER_SECRET"] }
6
+ config_accessor(:consumer_key) { ENV['IMMOSCOUT_CONSUMER_KEY'] }
7
+ config_accessor(:consumer_secret) { ENV['IMMOSCOUT_CONSUMER_SECRET'] }
8
8
 
9
- config_accessor(:oauth_token) { ENV["IMMOSCOUT_OAUTH_TOKEN"] }
10
- config_accessor(:oauth_token_secret) { ENV["IMMOSCOUT_OAUTH_TOKEN_SECRET"] }
9
+ config_accessor(:oauth_token) { ENV['IMMOSCOUT_OAUTH_TOKEN'] }
10
+ config_accessor(:oauth_token_secret) { ENV['IMMOSCOUT_OAUTH_TOKEN_SECRET'] }
11
11
 
12
12
  config_accessor(:use_sandbox) { false }
13
13
 
14
- config_accessor(:api_version) { "v1.0" }
14
+ config_accessor(:api_version) { 'v1.0' }
15
15
 
16
16
  config_accessor(:user_name) { 'me' }
17
17
 
18
18
  config_accessor(:api_url_live) do
19
- "https://rest.immobilienscout24.de/" \
19
+ 'https://rest.immobilienscout24.de/' \
20
20
  "restapi/api/offer/#{api_version}"
21
21
  end
22
22
  config_accessor(:api_url_sandbox) do
23
- "https://rest.sandbox-immobilienscout24.de/" \
23
+ 'https://rest.sandbox-immobilienscout24.de/' \
24
24
  "restapi/api/offer/#{api_version}"
25
25
  end
26
26
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Immoscout
2
4
  module Errors
3
5
  class Failed < StandardError
@@ -1,6 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'json'
2
4
  require_relative '../concerns/modelable'
3
5
 
6
+ # rubocop:disable Metrics/BlockLength because this is how an ActiveSupport
7
+ # concern looks like
4
8
  module Immoscout
5
9
  module Models
6
10
  module Actions
@@ -12,28 +16,39 @@ module Immoscout
12
16
 
13
17
  self.unpack_collection = proc do |hash|
14
18
  hash
15
- .fetch("common.attachments")
19
+ .fetch('common.attachments')
16
20
  .first
17
- .fetch("attachment")
21
+ .fetch('attachment')
18
22
  end
19
23
 
24
+ # rubocop:disable Metrics/AbcSize because this is the
25
+ # bare minimum logic
26
+ # rubocop:disable Metrics/MethodLength dito
20
27
  def save
21
28
  attachable_id = attachable.try(:id) || attachable
22
29
  response = api.post(
23
30
  "user/#{api.user_name}/realestate/#{attachable_id}/attachment",
24
31
  nil,
25
32
  attachment: Faraday::UploadIO.new(file, content_type, file_name),
26
- metadata: as_json
33
+ metadata: Faraday::UploadIO.new(
34
+ StringIO.new(to_json),
35
+ 'application/json',
36
+ 'metadata.json'
37
+ )
27
38
  )
28
39
  handle_response(response)
29
40
  self.id = id_from_response(response)
30
41
  self
31
42
  end
43
+ # rubocop:enable Metrics/AbcSize
44
+ # rubocop:enable Metrics/MethodLength
32
45
 
33
46
  def destroy
34
47
  attachable_id = attachable.try(:id) || attachable
35
48
  response = api.delete(
36
- "user/#{api.user_name}/realestate/#{attachable_id}/attachment/#{id}",
49
+ "user/#{api.user_name}/" \
50
+ "realestate/#{attachable_id}/" \
51
+ "attachment/#{id}"
37
52
  )
38
53
  handle_response(response)
39
54
  self
@@ -57,14 +72,15 @@ module Immoscout
57
72
  class_methods do
58
73
  def content_type_from_extension(ext)
59
74
  {
60
- ".jpg" => "image/jpeg",
61
- ".jpeg" => "image/jpeg",
62
- ".gif" => "image/gif",
63
- ".png" => "image/png",
64
- ".pdf" => "application/pdf"
75
+ '.jpg' => 'image/jpeg',
76
+ '.jpeg' => 'image/jpeg',
77
+ '.gif' => 'image/gif',
78
+ '.png' => 'image/png',
79
+ '.pdf' => 'application/pdf'
65
80
  }.fetch(ext)
66
81
  end
67
82
 
83
+ # rubocop:disable Metrics/AbcSize because of the mapping logic
68
84
  def all(real_estate_id)
69
85
  response = api.get(
70
86
  "user/#{api.user_name}/realestate/#{real_estate_id}/attachment"
@@ -75,8 +91,10 @@ module Immoscout
75
91
  .map { |object| new(object) }
76
92
  .select { |object| object.type =~ /#{name.demodulize}/i }
77
93
  end
94
+ # rubocop:enable Metrics/AbcSize
78
95
  end
79
96
  end
80
97
  end
81
98
  end
82
99
  end
100
+ # rubocop:enable Metrics/BlockLength
@@ -1,6 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'json'
2
4
  require_relative '../concerns/modelable'
3
5
 
6
+ # rubocop:disable Metrics/BlockLength because this is how an ActiveSupport
7
+ # concern looks like
4
8
  module Immoscout
5
9
  module Models
6
10
  module Actions
@@ -12,10 +16,12 @@ module Immoscout
12
16
 
13
17
  self.unpack_collection = proc do |hash|
14
18
  hash
15
- .fetch("common.realtorContactDetailsList", {})
16
- .fetch("realtorContactDetails", nil)
19
+ .fetch('common.realtorContactDetailsList', {})
20
+ .fetch('realtorContactDetails', nil)
17
21
  end
18
22
 
23
+ # rubocop:disable Metrics/AbcSize because this is the
24
+ # bare minimum logic
19
25
  def save
20
26
  response = \
21
27
  if id
@@ -28,6 +34,7 @@ module Immoscout
28
34
  self.id = id_from_response(response) unless id
29
35
  self
30
36
  end
37
+ # rubocop:enable Metrics/AbcSize
31
38
 
32
39
  def destroy
33
40
  response = api.delete("user/#{api.user_name}/contact/#{id}")
@@ -73,3 +80,4 @@ module Immoscout
73
80
  end
74
81
  end
75
82
  end
83
+ # rubocop:enable Metrics/BlockLength
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'json'
2
4
  require_relative '../concerns/modelable'
3
5
 
@@ -11,7 +13,7 @@ module Immoscout
11
13
  include Immoscout::Models::Concerns::Modelable
12
14
 
13
15
  def save
14
- response = api.post("publish", as_json)
16
+ response = api.post('publish', as_json)
15
17
  handle_response(response)
16
18
  self
17
19
  end
@@ -1,6 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'json'
2
4
  require_relative '../concerns/modelable'
3
5
 
6
+ # rubocop:disable Metrics/BlockLength because this is how an ActiveSupport
7
+ # concern looks like
4
8
  module Immoscout
5
9
  module Models
6
10
  module Actions
@@ -12,11 +16,13 @@ module Immoscout
12
16
 
13
17
  self.unpack_collection = proc do |hash|
14
18
  hash
15
- .fetch("realestates.realEstates", {})
16
- .fetch("realEstateList", {})
17
- .fetch("realEstateElement", nil)
19
+ .fetch('realestates.realEstates', {})
20
+ .fetch('realEstateList', {})
21
+ .fetch('realEstateElement', nil)
18
22
  end
19
23
 
24
+ # rubocop:disable Metrics/AbcSize because this is the
25
+ # bare minimum logic
20
26
  def save
21
27
  response = \
22
28
  if id
@@ -29,6 +35,7 @@ module Immoscout
29
35
  self.id = id_from_response(response) unless id
30
36
  self
31
37
  end
38
+ # rubocop:enable Metrics/AbcSize
32
39
 
33
40
  def destroy
34
41
  response = api.delete("user/#{api.user_name}/realestate/#{id}")
@@ -93,6 +100,7 @@ module Immoscout
93
100
  find("ext-#{external_id}")
94
101
  end
95
102
 
103
+ # rubocop:disable Metrics/AbcSize because of the mapping logic
96
104
  def all
97
105
  response = api.get("user/#{api.user_name}/realestate")
98
106
  handle_response(response)
@@ -101,6 +109,7 @@ module Immoscout
101
109
  .map { |object| new(object) }
102
110
  .select { |object| object.type =~ /#{name.demodulize}/i }
103
111
  end
112
+ # rubocop:enable Metrics/AbcSize
104
113
 
105
114
  def first
106
115
  all.first
@@ -120,3 +129,4 @@ module Immoscout
120
129
  end
121
130
  end
122
131
  end
132
+ # rubocop:enable Metrics/BlockLength
@@ -17,7 +17,7 @@ module Immoscout
17
17
  include Immoscout::Models::Concerns::Propertiable
18
18
  include Immoscout::Models::Actions::RealEstate
19
19
 
20
- self.json_wrapper = "realestates.apartmentBuy"
20
+ self.json_wrapper = 'realestates.apartmentBuy'
21
21
 
22
22
  property :id, alias: :@id
23
23
  property :external_id
@@ -27,6 +27,7 @@ module Immoscout
27
27
  # puts "#{self.class.name} - missing property '#{key}'"
28
28
  next
29
29
  end
30
+
30
31
  set_property(property, key, value)
31
32
  end
32
33
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'json'
2
4
 
3
5
  module Immoscout
@@ -37,16 +39,17 @@ module Immoscout
37
39
 
38
40
  def handle_response(response)
39
41
  return response if response.success?
42
+
40
43
  raise Immoscout::Errors::Failed, response
41
44
  end
42
45
 
43
46
  def id_from_response(response)
44
47
  response
45
48
  .body
46
- .fetch("common.messages")
49
+ .fetch('common.messages')
47
50
  .first
48
- .fetch("message", {})
49
- .fetch("id", nil)
51
+ .fetch('message', {})
52
+ .fetch('id', nil)
50
53
  end
51
54
  end
52
55
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Immoscout
2
4
  module Models
3
5
  module Concerns
@@ -16,7 +18,8 @@ module Immoscout
16
18
  match = Regexp.last_match(1).intern
17
19
  properties = self.class.properties
18
20
  coerce_klass = properties.fetch(match).fetch(:coerce, nil)
19
- return super if !properties.keys.include?(match) || !coerce_klass
21
+ return super if !properties.key?(match) || !coerce_klass
22
+
20
23
  send("#{match}=", coerce_klass.new)
21
24
  else
22
25
  super
@@ -1,5 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'json'
2
4
 
5
+ # rubocop:disable Metrics/BlockLength because this is how an ActiveSupport
6
+ # concern looks like
3
7
  module Immoscout
4
8
  module Models
5
9
  module Concerns
@@ -22,11 +26,16 @@ module Immoscout
22
26
  self.class.try(:json_wrapper)
23
27
  end
24
28
 
29
+ # rubocop:disable Metrics/PerceivedComplexity because this is the
30
+ # bare minimum logic
31
+ # rubocop:disable Metrics/MethodLength dito
32
+ # rubocop:disable Metrics/CyclomaticComplexity dito
25
33
  def to_h
26
34
  self.class.properties.each_with_object({}) do |(key, value), memo|
27
35
  # skip if it's readonly and should not be exposed in #as_json
28
36
  readonly = value.fetch(:readonly, false)
29
37
  next if readonly.try(:call, self) || readonly == true
38
+
30
39
  # use :alias instead of key as json-key
31
40
  property = value.fetch(:alias, key)
32
41
  # use :default if present AND value is nil
@@ -42,6 +51,9 @@ module Immoscout
42
51
  memo
43
52
  end
44
53
  end
54
+ # rubocop:enable Metrics/PerceivedComplexity
55
+ # rubocop:enable Metrics/MethodLength
56
+ # rubocop:enable Metrics/CyclomaticComplexity
45
57
 
46
58
  def to_json_wrapped
47
59
  { self.class.try(:json_wrapper) => to_json_unwrapped }
@@ -61,3 +73,4 @@ module Immoscout
61
73
  end
62
74
  end
63
75
  end
76
+ # rubocop:enable Metrics/BlockLength
@@ -12,7 +12,7 @@ module Immoscout
12
12
  include Immoscout::Models::Concerns::Propertiable
13
13
  include Immoscout::Models::Actions::Contact
14
14
 
15
- self.json_wrapper = "common.realtorContactDetail"
15
+ self.json_wrapper = 'common.realtorContactDetail'
16
16
 
17
17
  property :id, alias: :@id
18
18
  property :email
@@ -13,7 +13,7 @@ module Immoscout
13
13
 
14
14
  attr_accessor :attachable, :file
15
15
 
16
- self.json_wrapper = "common.attachment"
16
+ self.json_wrapper = 'common.attachment'
17
17
 
18
18
  property :id, alias: :@id
19
19
  property :type, alias: :'@xsi.type'
@@ -19,7 +19,7 @@ module Immoscout
19
19
  include Immoscout::Models::Concerns::Propertiable
20
20
  include Immoscout::Models::Actions::RealEstate
21
21
 
22
- self.json_wrapper = "realestates.houseBuy"
22
+ self.json_wrapper = 'realestates.houseBuy'
23
23
 
24
24
  property :id, alias: :@id
25
25
  property :external_id
@@ -14,10 +14,10 @@ module Immoscout
14
14
 
15
15
  attr_accessor :attachable, :file
16
16
 
17
- self.json_wrapper = "common.attachment"
17
+ self.json_wrapper = 'common.attachment'
18
18
 
19
19
  property :id, alias: :@id
20
- property :type, alias: :'@xsi.type', default: "common:Picture"
20
+ property :type, alias: :'@xsi.type', default: 'common:Picture'
21
21
  property :href, alias: :'@xlink.href'
22
22
  property :publish_date, alias: :@publish_date
23
23
  property :creation, alias: :@creation
@@ -13,7 +13,7 @@ module Immoscout
13
13
  include Immoscout::Models::Concerns::Propertiable
14
14
  include Immoscout::Models::Actions::Publish
15
15
 
16
- self.json_wrapper = "common.publishObject"
16
+ self.json_wrapper = 'common.publishObject'
17
17
 
18
18
  property :real_estate, coerce: Immoscout::Models::Parts::RealEstate
19
19
  property :publish_channel,
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'errors/failed'
2
4
  require_relative 'api/client'
3
5
  # renderable models
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Immoscout
4
- VERSION = "1.1.0".freeze
4
+ VERSION = '1.3.2'
5
5
  end
data/lib/immoscout.rb CHANGED
@@ -4,7 +4,7 @@ require 'active_support/concern'
4
4
  require 'active_support/configurable'
5
5
  require 'active_support/core_ext/hash'
6
6
 
7
- require "immoscout/version"
7
+ require 'immoscout/version'
8
8
  require 'immoscout/configuration'
9
9
  require 'immoscout/models'
10
10