Class: JustimmoClient::V1::Realty

Inherits:
JustimmoBase show all
Defined in:
lib/justimmo_client/api/v1/models/realty.rb

Attributes collapse

Instance Method Summary collapse

Methods inherited from JustimmoBase

#==, #save!, #to_h

Methods included from Utils

#autoload_dir, #translate

Methods included from Logging

default_logger, #logger, rails_logger

Constructor Details

#initialize(**options) ⇒ Realty



39
40
41
42
43
44
45
46
47
48
# File 'lib/justimmo_client/api/v1/models/realty.rb', line 39

def initialize(**options)
  super(options)
  @contact ||= Employee.new
  @usage ||= RealtyUsage.new
  @marketing ||= RealtyMarketing.new
  @geo ||= GeoLocation.new
  @area ||= RealtyArea.new
  @room_count ||= RealtyRoomCount.new
  @price ||= RealtyPrice.new
end

Instance Method Details

#areaRealtyArea



33
# File 'lib/justimmo_client/api/v1/models/realty.rb', line 33

attribute :area,                  RealtyArea

#attachmentsObject



20
# File 'lib/justimmo_client/api/v1/models/realty.rb', line 20

attribute :attachments,           Array[Attachment], default: []

#availableDateTime



26
# File 'lib/justimmo_client/api/v1/models/realty.rb', line 26

attribute :available,             DateTime

#available=(date) ⇒ String, DateTime



60
61
62
63
64
65
# File 'lib/justimmo_client/api/v1/models/realty.rb', line 60

def available=(date)
  @available = DateTime.parse(date) unless date.nil?
rescue ArgumentError
  log.debug("Failed to convert date: #{date}")
  @available = date
end

#construction_yearInteger



25
# File 'lib/justimmo_client/api/v1/models/realty.rb', line 25

attribute :construction_year,     Integer

#contactEmployee



29
# File 'lib/justimmo_client/api/v1/models/realty.rb', line 29

attribute :contact,               Employee

#created_atDateTime



27
# File 'lib/justimmo_client/api/v1/models/realty.rb', line 27

attribute :created_at,            DateTime

#descriptionString



12
# File 'lib/justimmo_client/api/v1/models/realty.rb', line 12

attribute :description,           String, default: ""

#description=(desc) ⇒ Object



67
68
69
70
71
72
73
74
75
76
# File 'lib/justimmo_client/api/v1/models/realty.rb', line 67

def description=(desc)
  @description =
    if @teaser.empty?
      parts = desc.partition("</ul>\n")
      self.teaser = parts[0..1].join
      parts.last.strip
    else
      desc.strip
    end
end

#description_furnitureObject



18
# File 'lib/justimmo_client/api/v1/models/realty.rb', line 18

attribute :description_furniture, Array[String], default: []

#documentsArray



21
# File 'lib/justimmo_client/api/v1/models/realty.rb', line 21

attribute :documents,             Array, default: []

#furnitureObject



19
# File 'lib/justimmo_client/api/v1/models/realty.rb', line 19

attribute :furniture,             Array[String], default: []

#geoGeoLocation



32
# File 'lib/justimmo_client/api/v1/models/realty.rb', line 32

attribute :geo,                   GeoLocation

#idInteger



9
# File 'lib/justimmo_client/api/v1/models/realty.rb', line 9

attribute :id,                    Integer

#imagesObject



50
51
52
# File 'lib/justimmo_client/api/v1/models/realty.rb', line 50

def images
  attachments.select { |x| x.type == "pic" }
end

#images360Array



23
# File 'lib/justimmo_client/api/v1/models/realty.rb', line 23

attribute :images360,             Array, default: []


24
# File 'lib/justimmo_client/api/v1/models/realty.rb', line 24

attribute :links,                 Array, default: []

#marketingRealtyMarketing



31
# File 'lib/justimmo_client/api/v1/models/realty.rb', line 31

attribute :marketing,             RealtyMarketing

#numberInteger



10
# File 'lib/justimmo_client/api/v1/models/realty.rb', line 10

attribute :number,                Integer

#openimmo_idString



17
# File 'lib/justimmo_client/api/v1/models/realty.rb', line 17

attribute :openimmo_id,           String

#priceRealtyPrice



35
# File 'lib/justimmo_client/api/v1/models/realty.rb', line 35

attribute :price,                 RealtyPrice

#room_countRealtyRoomCount



34
# File 'lib/justimmo_client/api/v1/models/realty.rb', line 34

attribute :room_count,            RealtyRoomCount

#status_idInteger



16
# File 'lib/justimmo_client/api/v1/models/realty.rb', line 16

attribute :status_id,             Integer

#sub_type_idInteger



15
# File 'lib/justimmo_client/api/v1/models/realty.rb', line 15

attribute :sub_type_id,           Integer

#teaserArray[String]



13
# File 'lib/justimmo_client/api/v1/models/realty.rb', line 13

attribute :teaser,                Array[String], default: []

#teaser=(tea) ⇒ Object



78
79
80
81
82
83
84
85
86
87
# File 'lib/justimmo_client/api/v1/models/realty.rb', line 78

def teaser=(tea)
  @teaser =
    case tea
    when Array
      tea.map(&:strip)
    when String
      tea.gsub(/<\/?(ul|li)>/, "").strip.split("\n").map(&:strip)
    else []
    end
end

#titleString



11
# File 'lib/justimmo_client/api/v1/models/realty.rb', line 11

attribute :title,                 String, default: ""

#title_imageObject



54
55
56
# File 'lib/justimmo_client/api/v1/models/realty.rb', line 54

def title_image
  attachments.select { |x| x.category == :title_image }.first
end

#typeObject



89
90
91
# File 'lib/justimmo_client/api/v1/models/realty.rb', line 89

def type
  @type ||= RealtyInterface.types.select { |x| x.id == type_id }.first
end

#type_idInteger



14
# File 'lib/justimmo_client/api/v1/models/realty.rb', line 14

attribute :type_id,               Integer

#updated_atDateTime



28
# File 'lib/justimmo_client/api/v1/models/realty.rb', line 28

attribute :updated_at,            DateTime

#usageRealtyUsage



30
# File 'lib/justimmo_client/api/v1/models/realty.rb', line 30

attribute :usage,                 RealtyUsage

#videosArray



22
# File 'lib/justimmo_client/api/v1/models/realty.rb', line 22

attribute :videos,                Array, default: []