immoscout 1.3.2 → 1.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/documentation.yml +3 -2
- data/.github/workflows/test.yml +6 -5
- data/.rspec +2 -1
- data/.rubocop.yml +23 -4
- data/.simplecov +12 -0
- data/Appraisals +1 -5
- data/CHANGELOG.md +8 -0
- data/Dockerfile +2 -3
- data/Envfile +0 -3
- data/Guardfile +44 -0
- data/LICENSE +1 -1
- data/Makefile +24 -10
- data/Rakefile +13 -66
- data/gemfiles/rails_5.2.gemfile +3 -5
- data/immoscout.gemspec +45 -44
- data/lib/immoscout/api/client.rb +1 -0
- data/lib/immoscout/api/connection.rb +8 -9
- data/lib/immoscout/api/request.rb +3 -2
- data/lib/immoscout/configuration.rb +12 -6
- data/lib/immoscout/errors/failed.rb +1 -0
- data/lib/immoscout/models/actions/attachment.rb +2 -3
- data/lib/immoscout/models/actions/contact.rb +3 -14
- data/lib/immoscout/models/actions/publish.rb +1 -3
- data/lib/immoscout/models/actions/real_estate.rb +4 -14
- data/lib/immoscout/models/apartment_buy.rb +3 -0
- data/lib/immoscout/models/base.rb +2 -1
- data/lib/immoscout/models/concerns/modelable.rb +2 -0
- data/lib/immoscout/models/concerns/propertiable.rb +4 -1
- data/lib/immoscout/models/concerns/renderable.rb +5 -5
- data/lib/immoscout/models/contact.rb +2 -0
- data/lib/immoscout/models/document.rb +2 -0
- data/lib/immoscout/models/house_buy.rb +3 -0
- data/lib/immoscout/models/parts/address.rb +3 -0
- data/lib/immoscout/models/parts/api_search_data.rb +3 -0
- data/lib/immoscout/models/parts/contact.rb +3 -0
- data/lib/immoscout/models/parts/coordinate.rb +3 -0
- data/lib/immoscout/models/parts/courtage.rb +3 -0
- data/lib/immoscout/models/parts/energy_certificate.rb +3 -0
- data/lib/immoscout/models/parts/energy_source.rb +3 -0
- data/lib/immoscout/models/parts/firing_type.rb +3 -0
- data/lib/immoscout/models/parts/geo_code.rb +3 -0
- data/lib/immoscout/models/parts/geo_hierarchy.rb +3 -0
- data/lib/immoscout/models/parts/international_country_region.rb +3 -0
- data/lib/immoscout/models/parts/price.rb +3 -0
- data/lib/immoscout/models/parts/publish_channel.rb +3 -0
- data/lib/immoscout/models/parts/real_estate.rb +3 -0
- data/lib/immoscout/models/parts/url.rb +3 -0
- data/lib/immoscout/models/parts/urls.rb +3 -0
- data/lib/immoscout/models/picture.rb +2 -0
- data/lib/immoscout/models/publish.rb +2 -0
- data/lib/immoscout/models.rb +0 -1
- data/lib/immoscout/version.rb +19 -1
- data/lib/immoscout.rb +1 -0
- metadata +96 -76
- data/gemfiles/rails_6.0.gemfile +0 -9
@@ -8,6 +8,7 @@ require_relative '../concerns/modelable'
|
|
8
8
|
module Immoscout
|
9
9
|
module Models
|
10
10
|
module Actions
|
11
|
+
# Actions to work with attachments.
|
11
12
|
module Attachment
|
12
13
|
extend ActiveSupport::Concern
|
13
14
|
|
@@ -54,7 +55,7 @@ module Immoscout
|
|
54
55
|
self
|
55
56
|
end
|
56
57
|
|
57
|
-
|
58
|
+
protected
|
58
59
|
|
59
60
|
def file_extension
|
60
61
|
File.extname(file_name)
|
@@ -80,7 +81,6 @@ module Immoscout
|
|
80
81
|
}.fetch(ext)
|
81
82
|
end
|
82
83
|
|
83
|
-
# rubocop:disable Metrics/AbcSize because of the mapping logic
|
84
84
|
def all(real_estate_id)
|
85
85
|
response = api.get(
|
86
86
|
"user/#{api.user_name}/realestate/#{real_estate_id}/attachment"
|
@@ -91,7 +91,6 @@ module Immoscout
|
|
91
91
|
.map { |object| new(object) }
|
92
92
|
.select { |object| object.type =~ /#{name.demodulize}/i }
|
93
93
|
end
|
94
|
-
# rubocop:enable Metrics/AbcSize
|
95
94
|
end
|
96
95
|
end
|
97
96
|
end
|
@@ -3,11 +3,10 @@
|
|
3
3
|
require 'json'
|
4
4
|
require_relative '../concerns/modelable'
|
5
5
|
|
6
|
-
# rubocop:disable Metrics/BlockLength because this is how an ActiveSupport
|
7
|
-
# concern looks like
|
8
6
|
module Immoscout
|
9
7
|
module Models
|
10
8
|
module Actions
|
9
|
+
# Actions to work with contacts.
|
11
10
|
module Contact
|
12
11
|
extend ActiveSupport::Concern
|
13
12
|
|
@@ -20,8 +19,6 @@ module Immoscout
|
|
20
19
|
.fetch('realtorContactDetails', nil)
|
21
20
|
end
|
22
21
|
|
23
|
-
# rubocop:disable Metrics/AbcSize because this is the
|
24
|
-
# bare minimum logic
|
25
22
|
def save
|
26
23
|
response = \
|
27
24
|
if id
|
@@ -34,7 +31,6 @@ module Immoscout
|
|
34
31
|
self.id = id_from_response(response) unless id
|
35
32
|
self
|
36
33
|
end
|
37
|
-
# rubocop:enable Metrics/AbcSize
|
38
34
|
|
39
35
|
def destroy
|
40
36
|
response = api.delete("user/#{api.user_name}/contact/#{id}")
|
@@ -61,14 +57,8 @@ module Immoscout
|
|
61
57
|
objects = unpack_collection.call(response.body)
|
62
58
|
objects.map { |object| new(object) }
|
63
59
|
end
|
64
|
-
|
65
|
-
|
66
|
-
all.first
|
67
|
-
end
|
68
|
-
|
69
|
-
def last
|
70
|
-
all.last
|
71
|
-
end
|
60
|
+
delegate :first, to: :all
|
61
|
+
delegate :last, to: :all
|
72
62
|
|
73
63
|
def create(hash)
|
74
64
|
instance = new(hash)
|
@@ -80,4 +70,3 @@ module Immoscout
|
|
80
70
|
end
|
81
71
|
end
|
82
72
|
end
|
83
|
-
# rubocop:enable Metrics/BlockLength
|
@@ -6,6 +6,7 @@ require_relative '../concerns/modelable'
|
|
6
6
|
module Immoscout
|
7
7
|
module Models
|
8
8
|
module Actions
|
9
|
+
# Actions to publish a Real Estate.
|
9
10
|
module Publish
|
10
11
|
extend ActiveSupport::Concern
|
11
12
|
|
@@ -26,9 +27,6 @@ module Immoscout
|
|
26
27
|
self
|
27
28
|
end
|
28
29
|
end
|
29
|
-
|
30
|
-
class_methods do
|
31
|
-
end
|
32
30
|
end
|
33
31
|
end
|
34
32
|
end
|
@@ -8,6 +8,7 @@ require_relative '../concerns/modelable'
|
|
8
8
|
module Immoscout
|
9
9
|
module Models
|
10
10
|
module Actions
|
11
|
+
# Actions to work with real estate objects.
|
11
12
|
module RealEstate
|
12
13
|
extend ActiveSupport::Concern
|
13
14
|
|
@@ -21,8 +22,6 @@ module Immoscout
|
|
21
22
|
.fetch('realEstateElement', nil)
|
22
23
|
end
|
23
24
|
|
24
|
-
# rubocop:disable Metrics/AbcSize because this is the
|
25
|
-
# bare minimum logic
|
26
25
|
def save
|
27
26
|
response = \
|
28
27
|
if id
|
@@ -35,7 +34,6 @@ module Immoscout
|
|
35
34
|
self.id = id_from_response(response) unless id
|
36
35
|
self
|
37
36
|
end
|
38
|
-
# rubocop:enable Metrics/AbcSize
|
39
37
|
|
40
38
|
def destroy
|
41
39
|
response = api.delete("user/#{api.user_name}/realestate/#{id}")
|
@@ -79,7 +77,7 @@ module Immoscout
|
|
79
77
|
self
|
80
78
|
end
|
81
79
|
|
82
|
-
|
80
|
+
protected
|
83
81
|
|
84
82
|
def check_placement_type(type)
|
85
83
|
raise ArgumentError, "Unknown placement type '#{type}'" unless %w[
|
@@ -100,7 +98,6 @@ module Immoscout
|
|
100
98
|
find("ext-#{external_id}")
|
101
99
|
end
|
102
100
|
|
103
|
-
# rubocop:disable Metrics/AbcSize because of the mapping logic
|
104
101
|
def all
|
105
102
|
response = api.get("user/#{api.user_name}/realestate")
|
106
103
|
handle_response(response)
|
@@ -109,15 +106,8 @@ module Immoscout
|
|
109
106
|
.map { |object| new(object) }
|
110
107
|
.select { |object| object.type =~ /#{name.demodulize}/i }
|
111
108
|
end
|
112
|
-
|
113
|
-
|
114
|
-
def first
|
115
|
-
all.first
|
116
|
-
end
|
117
|
-
|
118
|
-
def last
|
119
|
-
all.last
|
120
|
-
end
|
109
|
+
delegate :first, to: :all
|
110
|
+
delegate :last, to: :all
|
121
111
|
|
122
112
|
def create(hash)
|
123
113
|
instance = new(hash)
|
@@ -12,6 +12,9 @@ require_relative 'parts/energy_source'
|
|
12
12
|
|
13
13
|
module Immoscout
|
14
14
|
module Models
|
15
|
+
# Real Estate. (selling an apartment)
|
16
|
+
# See: https://bit.ly/3iH3DNL
|
17
|
+
# See: https://bit.ly/3H7mQkY
|
15
18
|
class ApartmentBuy < Base
|
16
19
|
include Immoscout::Models::Concerns::Renderable
|
17
20
|
include Immoscout::Models::Concerns::Propertiable
|
@@ -3,6 +3,8 @@
|
|
3
3
|
module Immoscout
|
4
4
|
module Models
|
5
5
|
module Concerns
|
6
|
+
# Includes functionality to access and modify
|
7
|
+
# model attributes transparently.
|
6
8
|
module Propertiable
|
7
9
|
extend ActiveSupport::Concern
|
8
10
|
|
@@ -14,7 +16,7 @@ module Immoscout
|
|
14
16
|
# :reek:ControlParameter - standard stuff, reek!
|
15
17
|
# :reek:TooManyStatements
|
16
18
|
def method_missing(method_name, *arguments, &block)
|
17
|
-
if method_name =~ /
|
19
|
+
if method_name =~ /build_(\w+)/
|
18
20
|
match = Regexp.last_match(1).intern
|
19
21
|
properties = self.class.properties
|
20
22
|
coerce_klass = properties.fetch(match).fetch(:coerce, nil)
|
@@ -39,6 +41,7 @@ module Immoscout
|
|
39
41
|
class_methods do
|
40
42
|
def property(name, **opts)
|
41
43
|
attr_accessor(name)
|
44
|
+
|
42
45
|
alias_name = opts.fetch(:alias, false)
|
43
46
|
if alias_name
|
44
47
|
alias_method alias_name, name
|
@@ -7,6 +7,7 @@ require 'json'
|
|
7
7
|
module Immoscout
|
8
8
|
module Models
|
9
9
|
module Concerns
|
10
|
+
# Includes functionality to serialize a Ruby model properly.
|
10
11
|
module Renderable
|
11
12
|
extend ActiveSupport::Concern
|
12
13
|
|
@@ -15,12 +16,12 @@ module Immoscout
|
|
15
16
|
wrapped? ? to_json_wrapped : to_json_unwrapped
|
16
17
|
end
|
17
18
|
|
18
|
-
def to_json
|
19
|
+
def to_json(*)
|
19
20
|
as_json.to_json
|
20
21
|
end
|
21
22
|
alias_method :to_s, :to_json
|
22
23
|
|
23
|
-
|
24
|
+
protected
|
24
25
|
|
25
26
|
def wrapped?
|
26
27
|
self.class.try(:json_wrapper)
|
@@ -30,6 +31,7 @@ module Immoscout
|
|
30
31
|
# bare minimum logic
|
31
32
|
# rubocop:disable Metrics/MethodLength dito
|
32
33
|
# rubocop:disable Metrics/CyclomaticComplexity dito
|
34
|
+
# rubocop:disable Metrics/AbcSize dito
|
33
35
|
def to_h
|
34
36
|
self.class.properties.each_with_object({}) do |(key, value), memo|
|
35
37
|
# skip if it's readonly and should not be exposed in #as_json
|
@@ -54,6 +56,7 @@ module Immoscout
|
|
54
56
|
# rubocop:enable Metrics/PerceivedComplexity
|
55
57
|
# rubocop:enable Metrics/MethodLength
|
56
58
|
# rubocop:enable Metrics/CyclomaticComplexity
|
59
|
+
# rubocop:enable Metrics/AbcSize
|
57
60
|
|
58
61
|
def to_json_wrapped
|
59
62
|
{ self.class.try(:json_wrapper) => to_json_unwrapped }
|
@@ -66,9 +69,6 @@ module Immoscout
|
|
66
69
|
.deep_transform_keys { |key| key.camelize :lower }
|
67
70
|
end
|
68
71
|
end
|
69
|
-
|
70
|
-
class_methods do
|
71
|
-
end
|
72
72
|
end
|
73
73
|
end
|
74
74
|
end
|
@@ -6,6 +6,8 @@ require_relative 'actions/attachment'
|
|
6
6
|
|
7
7
|
module Immoscout
|
8
8
|
module Models
|
9
|
+
# Attachment (document) of a Real Estate.
|
10
|
+
# See: https://bit.ly/3Xx32gj
|
9
11
|
class Document < Base
|
10
12
|
include Immoscout::Models::Concerns::Renderable
|
11
13
|
include Immoscout::Models::Concerns::Propertiable
|
@@ -14,6 +14,9 @@ require_relative 'parts/firing_type'
|
|
14
14
|
|
15
15
|
module Immoscout
|
16
16
|
module Models
|
17
|
+
# Real Estate. (selling a house)
|
18
|
+
# See: https://bit.ly/3iH3DNL
|
19
|
+
# See: https://bit.ly/3CSGnmN
|
17
20
|
class HouseBuy < Base
|
18
21
|
include Immoscout::Models::Concerns::Renderable
|
19
22
|
include Immoscout::Models::Concerns::Propertiable
|
@@ -10,9 +10,12 @@ require_relative '../concerns/renderable'
|
|
10
10
|
module Immoscout
|
11
11
|
module Models
|
12
12
|
module Parts
|
13
|
+
# Shared address-related property definitions.
|
14
|
+
# See: https://bit.ly/3CSGnmN
|
13
15
|
class Address < Base
|
14
16
|
include Immoscout::Models::Concerns::Renderable
|
15
17
|
include Immoscout::Models::Concerns::Propertiable
|
18
|
+
|
16
19
|
property :street
|
17
20
|
property :house_number
|
18
21
|
property :postcode
|
@@ -7,9 +7,12 @@ require_relative '../concerns/renderable'
|
|
7
7
|
module Immoscout
|
8
8
|
module Models
|
9
9
|
module Parts
|
10
|
+
# Shared search-related property definitions.
|
11
|
+
# See: https://bit.ly/3CSGnmN
|
10
12
|
class ApiSearchData < Base
|
11
13
|
include Immoscout::Models::Concerns::Renderable
|
12
14
|
include Immoscout::Models::Concerns::Propertiable
|
15
|
+
|
13
16
|
property :search_field1
|
14
17
|
property :search_field2
|
15
18
|
property :search_field3
|
@@ -7,9 +7,12 @@ require_relative '../concerns/renderable'
|
|
7
7
|
module Immoscout
|
8
8
|
module Models
|
9
9
|
module Parts
|
10
|
+
# Shared contact-related property definitions.
|
11
|
+
# See: https://bit.ly/3CSGnmN
|
10
12
|
class Contact < Base
|
11
13
|
include Immoscout::Models::Concerns::Renderable
|
12
14
|
include Immoscout::Models::Concerns::Propertiable
|
15
|
+
|
13
16
|
property :id, alias: :@id
|
14
17
|
property :external_id, alias: :@external_id
|
15
18
|
end
|
@@ -7,9 +7,12 @@ require_relative '../concerns/renderable'
|
|
7
7
|
module Immoscout
|
8
8
|
module Models
|
9
9
|
module Parts
|
10
|
+
# Shared coordinates-related property definitions.
|
11
|
+
# See: https://bit.ly/3CSGnmN
|
10
12
|
class Coordinate < Base
|
11
13
|
include Immoscout::Models::Concerns::Renderable
|
12
14
|
include Immoscout::Models::Concerns::Propertiable
|
15
|
+
|
13
16
|
property :latitude
|
14
17
|
property :longitude
|
15
18
|
end
|
@@ -7,9 +7,12 @@ require_relative '../concerns/renderable'
|
|
7
7
|
module Immoscout
|
8
8
|
module Models
|
9
9
|
module Parts
|
10
|
+
# Shared courtage-related property definitions.
|
11
|
+
# See: https://bit.ly/3CSGnmN
|
10
12
|
class Courtage < Base
|
11
13
|
include Immoscout::Models::Concerns::Renderable
|
12
14
|
include Immoscout::Models::Concerns::Propertiable
|
15
|
+
|
13
16
|
property :has_courtage
|
14
17
|
property :courtage
|
15
18
|
property :courtage_note
|
@@ -7,9 +7,12 @@ require_relative '../concerns/renderable'
|
|
7
7
|
module Immoscout
|
8
8
|
module Models
|
9
9
|
module Parts
|
10
|
+
# Shared energy-certificate-related property definitions.
|
11
|
+
# See: https://bit.ly/3CSGnmN
|
10
12
|
class EnergyCertificate < Base
|
11
13
|
include Immoscout::Models::Concerns::Renderable
|
12
14
|
include Immoscout::Models::Concerns::Propertiable
|
15
|
+
|
13
16
|
property :energy_certificate_availability
|
14
17
|
property :energy_certificate_creation_date
|
15
18
|
property :energy_efficiency_class
|
@@ -7,9 +7,12 @@ require_relative '../concerns/renderable'
|
|
7
7
|
module Immoscout
|
8
8
|
module Models
|
9
9
|
module Parts
|
10
|
+
# Shared energy-source-related property definitions.
|
11
|
+
# See: https://bit.ly/3CSGnmN
|
10
12
|
class EnergySource < Base
|
11
13
|
include Immoscout::Models::Concerns::Renderable
|
12
14
|
include Immoscout::Models::Concerns::Propertiable
|
15
|
+
|
13
16
|
property :energy_source_enev2014
|
14
17
|
end
|
15
18
|
end
|
@@ -7,9 +7,12 @@ require_relative '../concerns/renderable'
|
|
7
7
|
module Immoscout
|
8
8
|
module Models
|
9
9
|
module Parts
|
10
|
+
# Shared firing-type-related property definitions.
|
11
|
+
# See: https://bit.ly/3CSGnmN
|
10
12
|
class FiringType < Base
|
11
13
|
include Immoscout::Models::Concerns::Renderable
|
12
14
|
include Immoscout::Models::Concerns::Propertiable
|
15
|
+
|
13
16
|
property :firing_type
|
14
17
|
end
|
15
18
|
end
|
@@ -7,9 +7,12 @@ require_relative '../concerns/renderable'
|
|
7
7
|
module Immoscout
|
8
8
|
module Models
|
9
9
|
module Parts
|
10
|
+
# Shared geo-coding-related property definitions.
|
11
|
+
# See: https://bit.ly/3CSGnmN
|
10
12
|
class GeoCode < Base
|
11
13
|
include Immoscout::Models::Concerns::Renderable
|
12
14
|
include Immoscout::Models::Concerns::Propertiable
|
15
|
+
|
13
16
|
property :geo_code_id
|
14
17
|
property :full_geo_code_id
|
15
18
|
end
|
@@ -8,9 +8,12 @@ require_relative 'geo_code'
|
|
8
8
|
module Immoscout
|
9
9
|
module Models
|
10
10
|
module Parts
|
11
|
+
# Shared geo-hierarchy-related property definitions.
|
12
|
+
# See: https://bit.ly/3CSGnmN
|
11
13
|
class GeoHierarchy < Base
|
12
14
|
include Immoscout::Models::Concerns::Renderable
|
13
15
|
include Immoscout::Models::Concerns::Propertiable
|
16
|
+
|
14
17
|
property :continent, coerce: Immoscout::Models::Parts::GeoCode
|
15
18
|
property :country, coerce: Immoscout::Models::Parts::GeoCode
|
16
19
|
property :region, coerce: Immoscout::Models::Parts::GeoCode
|
@@ -7,9 +7,12 @@ require_relative '../concerns/renderable'
|
|
7
7
|
module Immoscout
|
8
8
|
module Models
|
9
9
|
module Parts
|
10
|
+
# Shared country-region-related property definitions.
|
11
|
+
# See: https://bit.ly/3CSGnmN
|
10
12
|
class InternationalCountryRegion < Base
|
11
13
|
include Immoscout::Models::Concerns::Renderable
|
12
14
|
include Immoscout::Models::Concerns::Propertiable
|
15
|
+
|
13
16
|
property :country
|
14
17
|
property :region
|
15
18
|
end
|
@@ -7,9 +7,12 @@ require_relative '../concerns/renderable'
|
|
7
7
|
module Immoscout
|
8
8
|
module Models
|
9
9
|
module Parts
|
10
|
+
# Shared price-related property definitions.
|
11
|
+
# See: https://bit.ly/3CSGnmN
|
10
12
|
class Price < Base
|
11
13
|
include Immoscout::Models::Concerns::Renderable
|
12
14
|
include Immoscout::Models::Concerns::Propertiable
|
15
|
+
|
13
16
|
property :value
|
14
17
|
property :currency
|
15
18
|
property :marketing_type
|
@@ -7,9 +7,12 @@ require_relative '../concerns/renderable'
|
|
7
7
|
module Immoscout
|
8
8
|
module Models
|
9
9
|
module Parts
|
10
|
+
# Shared publish-channel-related property definitions.
|
11
|
+
# See: https://bit.ly/3CSGnmN
|
10
12
|
class PublishChannel < Base
|
11
13
|
include Immoscout::Models::Concerns::Renderable
|
12
14
|
include Immoscout::Models::Concerns::Propertiable
|
15
|
+
|
13
16
|
property :id, alias: :@id, default: 10_000
|
14
17
|
end
|
15
18
|
end
|
@@ -7,9 +7,12 @@ require_relative '../concerns/renderable'
|
|
7
7
|
module Immoscout
|
8
8
|
module Models
|
9
9
|
module Parts
|
10
|
+
# Shared real-estate-related property definitions.
|
11
|
+
# See: https://bit.ly/3CSGnmN
|
10
12
|
class RealEstate < Base
|
11
13
|
include Immoscout::Models::Concerns::Renderable
|
12
14
|
include Immoscout::Models::Concerns::Propertiable
|
15
|
+
|
13
16
|
property :id, alias: :@id
|
14
17
|
end
|
15
18
|
end
|
@@ -7,9 +7,12 @@ require_relative '../concerns/renderable'
|
|
7
7
|
module Immoscout
|
8
8
|
module Models
|
9
9
|
module Parts
|
10
|
+
# Shared URL-related property definitions.
|
11
|
+
# See: https://bit.ly/3CSGnmN
|
10
12
|
class Url < Base
|
11
13
|
include Immoscout::Models::Concerns::Renderable
|
12
14
|
include Immoscout::Models::Concerns::Propertiable
|
15
|
+
|
13
16
|
property :scale, alias: :@scale
|
14
17
|
property :href, alias: :@href
|
15
18
|
end
|
@@ -8,9 +8,12 @@ require_relative 'url'
|
|
8
8
|
module Immoscout
|
9
9
|
module Models
|
10
10
|
module Parts
|
11
|
+
# Shared URLs-related property definitions.
|
12
|
+
# See: https://bit.ly/3CSGnmN
|
11
13
|
class Urls < Base
|
12
14
|
include Immoscout::Models::Concerns::Renderable
|
13
15
|
include Immoscout::Models::Concerns::Propertiable
|
16
|
+
|
14
17
|
property :url, coerce: Immoscout::Models::Parts::Url, array: true
|
15
18
|
end
|
16
19
|
end
|
@@ -7,6 +7,8 @@ require_relative 'actions/attachment'
|
|
7
7
|
|
8
8
|
module Immoscout
|
9
9
|
module Models
|
10
|
+
# Attachment (picture) of a Real Estate.
|
11
|
+
# See: https://bit.ly/3iE6K9h
|
10
12
|
class Picture < Base
|
11
13
|
include Immoscout::Models::Concerns::Renderable
|
12
14
|
include Immoscout::Models::Concerns::Propertiable
|
@@ -8,6 +8,8 @@ require_relative 'parts/publish_channel'
|
|
8
8
|
|
9
9
|
module Immoscout
|
10
10
|
module Models
|
11
|
+
# The Publish (object) of a Real Estate.
|
12
|
+
# See: https://bit.ly/3ZFoYYI
|
11
13
|
class Publish < Base
|
12
14
|
include Immoscout::Models::Concerns::Renderable
|
13
15
|
include Immoscout::Models::Concerns::Propertiable
|
data/lib/immoscout/models.rb
CHANGED
data/lib/immoscout/version.rb
CHANGED
@@ -1,5 +1,23 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
# The gem version details.
|
3
4
|
module Immoscout
|
4
|
-
|
5
|
+
# The version of the +immoscout+ gem
|
6
|
+
VERSION = '1.4.0'
|
7
|
+
|
8
|
+
class << self
|
9
|
+
# Returns the version of gem as a string.
|
10
|
+
#
|
11
|
+
# @return [String] the gem version as string
|
12
|
+
def version
|
13
|
+
VERSION
|
14
|
+
end
|
15
|
+
|
16
|
+
# Returns the version of the gem as a +Gem::Version+.
|
17
|
+
#
|
18
|
+
# @return [Gem::Version] the gem version as object
|
19
|
+
def gem_version
|
20
|
+
Gem::Version.new VERSION
|
21
|
+
end
|
22
|
+
end
|
5
23
|
end
|