Class: C80MapFloors::Floor

Inherits:
ActiveRecord::Base
  • Object
show all
Includes:
ModelFloorHelper
Defined in:
app/models/c80_map_floors/floor.rb

Instance Method Summary collapse

Methods included from ModelFloorHelper

#get_height, #get_width

Instance Method Details

#img_bg_heightObject



31
32
33
34
35
36
37
38
39
# File 'app/models/c80_map_floors/floor.rb', line 31

def img_bg_height
  res = nil
  if img_bg.present?
    res = get_height(img_bg)
    # img = MiniMagick::Image.open(img_bg.path)
    # res = img["height"]/2
  end
  res
end

#img_bg_urlObject



41
42
43
44
45
46
47
# File 'app/models/c80_map_floors/floor.rb', line 41

def img_bg_url
  res = nil
  if img_bg.present?
    res = img_bg.url
  end
  res      
end

#img_bg_widthObject

NOTE

Т.к. для этажей используются картинки в два раза детальнее (в два раза больше, чем оригинал карты), то делим попалам

размеры картинки уйдут в js - они помогут её css-абсолютно правильно масштабировать и позиционировать



21
22
23
24
25
26
27
28
29
# File 'app/models/c80_map_floors/floor.rb', line 21

def img_bg_width
  res = nil
  if img_bg.present?
    res = get_width(img_bg)
    # img = MiniMagick::Image.open(img_bg.path)
    # res = img["width"]/2
  end
  res
end

#img_overlay_urlObject



49
50
51
52
53
54
55
# File 'app/models/c80_map_floors/floor.rb', line 49

def img_overlay_url
  res = nil
  if img_overlay.present?
    res = img_overlay.url
  end
  res      
end

#my_as_jsonObject



66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
# File 'app/models/c80_map_floors/floor.rb', line 66

def my_as_json

  result = {
      ord: self.ord,
      id: self.id,
      title: self.title,
      tag: self.tag,
      class_name: self.class_name,
      map_building_id: self.map_building_id,
      img_bg: {
          url: self.img_bg_url
      },
      img_overlay: {
          url: self.img_overlay_url
      },
      img_bg_width: img_bg_width,
      img_bg_height: img_bg_height,
      coords: self.coords,
      areas: [],
      data: nil
  }

  self.areas.each do |area|
    result[:areas] << area.my_as_json4
  end

  # если имеются ДАННЫЕ - прицепим их к JSON
  if self.map_floor_representator.present?
    result[:data] = self.map_floor_representator.my_as_json3
  end

  result.as_json

end

#update_jsonObject

TODO

после того, как апдейтим этаж, не обновляются данные в JSON - изза ебучей ошибки с путями в CarrierWave

Т.е. нужно руками, после того, как в базу лягут актуальные данные, вызвать save! какого-нибудь building



61
62
63
64
# File 'app/models/c80_map_floors/floor.rb', line 61

def update_json
  Rails.logger.debug "[TRACE] <update_json> nope"
  # MapJson.update_json
end