c80_shared 0.1.13 → 0.1.14

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8d2ecdf23242f3f9bbeb1a1a1bc2c60619c84942560f90b4a25d6516c912fbb8
4
- data.tar.gz: d9cc783a187e1081e95c084a7f229a963f73c5f5e838e9310385cc7da28285aa
3
+ metadata.gz: fbd50ef3777c29cb4f39f60dc814e27f661b777b4e27dd57d97a95da3acce58e
4
+ data.tar.gz: de9300ef9898852e3a258524d2130f6b1a66566f067dc978655f1334949d3c32
5
5
  SHA512:
6
- metadata.gz: 132e8442a3e50d20ffaed3676ffa6fb3468d089afad51be0b90ade62221f2d74a50a87550a94d0ffce9a267aea44bbd913c2a582c27ce77d03ce10aa9263afae
7
- data.tar.gz: d4321609f4e47a00ccb6477c28abd682e7be634d8b795327252e413f854b8378e4444f85d855fe89ae786e72cce92d83cfae8491b6584492f9bd11d6d7cb2fcf
6
+ metadata.gz: a3bef6c9c366e52f070edcda193259acf2e13ac20116ff61e281bf94460daacdc4b9800f9568d744a7a489e918f760c2f864d65cb011d723fd07522940c5a3ec
7
+ data.tar.gz: 976d69f14a5c41b467011e59a04b0c408e4d3b8979624cd7e687e3837154811b18b5d63fd86170a58f53b711c6d2ab62103c61bc021dce1f33c08e55e4d1d33e
@@ -1,4 +1,5 @@
1
1
  class BoatSerializer < AbstractSerializer
2
+ extend SanitizeUrl
2
3
 
3
4
  class << self
4
5
  def available_attributes
@@ -34,6 +35,9 @@ class BoatSerializer < AbstractSerializer
34
35
  picture_medium_url
35
36
  name
36
37
  builder
38
+ naval_architect
39
+ interior_designer
40
+ name_builder
37
41
  short_description
38
42
  per_season
39
43
  price
@@ -48,6 +52,10 @@ class BoatSerializer < AbstractSerializer
48
52
  latitude
49
53
  longitude
50
54
  boat_type_id
55
+ boat_type
56
+ boat_hull_id
57
+ motor
58
+ hull_material
51
59
  boat_length_metrics
52
60
  boat_length_metrics_meters
53
61
  boat_length_metrics_ft
@@ -60,6 +68,7 @@ class BoatSerializer < AbstractSerializer
60
68
  state
61
69
  boat_contacts
62
70
  boat_photos
71
+ main_boat_photo_id
63
72
  ].freeze
64
73
  end
65
74
 
@@ -83,7 +92,7 @@ class BoatSerializer < AbstractSerializer
83
92
  # noinspection RubyResolve
84
93
  def picture_medium_url(boat)
85
94
  url = if boat.boat_photo.present?
86
- boat.boat_photo.picture.url(:medium).gsub('\'', '&#39;')
95
+ san boat.boat_photo.picture.url(:medium)
87
96
  else
88
97
  ''
89
98
  end
@@ -91,12 +100,45 @@ class BoatSerializer < AbstractSerializer
91
100
  { picture_medium_url: url }
92
101
  end
93
102
 
103
+ def main_boat_photo_id(boat)
104
+ { main_boat_photo_id: boat.boat_photo.id }
105
+ end
106
+
94
107
  def name(boat)
95
108
  { name: boat.name }
96
109
  end
97
110
 
98
111
  def builder(boat)
99
- { builder: boat.builder }
112
+ { builder: boat.builder&.strip }
113
+ end
114
+
115
+ def motor(boat)
116
+ { motor: boat.motor }
117
+ end
118
+
119
+ def hull_material(boat)
120
+ { hull_material: boat.hull_material }
121
+ end
122
+
123
+ def naval_architect(boat)
124
+ { naval_architect: boat.naval_architect }
125
+ end
126
+
127
+ def interior_designer(boat)
128
+ { interior_designer: boat.interior_designer }
129
+ end
130
+
131
+ # example: Carpe Diem by Lazzara
132
+ # example: Ismail
133
+ def name_builder(boat)
134
+ arr = []
135
+ arr << boat.name&.strip
136
+ if boat.builder.present?
137
+ arr << I18n.t('boat.builder.prefix')
138
+ arr << boat.builder.strip
139
+ end
140
+
141
+ { name_builder: arr * ' ' }
100
142
  end
101
143
 
102
144
  def short_description(boat)
@@ -177,6 +219,19 @@ class BoatSerializer < AbstractSerializer
177
219
  { boat_type_id: boat.boat_type_id }
178
220
  end
179
221
 
222
+ def boat_hull_id(boat)
223
+ { boat_hull_id: boat.boat_hull_id }
224
+ end
225
+
226
+ def boat_type(boat)
227
+ {
228
+ boat_type: {
229
+ id: boat.boat_type_id,
230
+ title: boat.boat_type&.name&.strip
231
+ }
232
+ }
233
+ end
234
+
180
235
  def boat_length_metrics(boat)
181
236
  value = ::Lib::Boats::Dimensions.boatlength(boat, @opts[:uom])
182
237
  { boat_length_metrics: value }
@@ -338,9 +393,10 @@ class BoatSerializer < AbstractSerializer
338
393
  def boat_photos(boat)
339
394
  boat_photos = boat.boat_photos.map do |boat_photo|
340
395
  {
341
- gallery_path: boat_photo.picture.url(:gallery),
342
- medium_path: boat_photo.picture.url(:medium),
343
- thumb_path: boat_photo.picture.url(:thumb)
396
+ id: boat_photo.id,
397
+ gallery_path: san(boat_photo.picture.url(:gallery)),
398
+ medium_path: san(boat_photo.picture.url(:medium)),
399
+ thumb_path: san(boat_photo.picture.url(:thumb))
344
400
  }
345
401
  end
346
402
  { boat_photos: boat_photos }
@@ -0,0 +1,26 @@
1
+ module Configs
2
+ module Boats
3
+ class BoatPrices
4
+ # список ценовых (продажа/аренда) атрибутов Лодки
5
+ def self.attributes(price_attributes = ::Dictionaries::BoatCharterAttribute::ALL)
6
+ attributes = []
7
+ ::Dicts::Currency.all.each do |currency|
8
+ price_attributes.map do |attr|
9
+ field = Currency.attribute_name currency.index, attr
10
+ next unless field
11
+ attributes << field.to_sym
12
+ end
13
+ field = Currency.attribute_name currency.index, :sale_price
14
+ attributes << field.to_sym
15
+ end
16
+ if block_given?
17
+ attributes.each do |attribute|
18
+ yield attribute
19
+ end
20
+ else
21
+ attributes
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,5 @@
1
+ module SanitizeUrl
2
+ def san(str)
3
+ str.gsub('\'', '&#39;')
4
+ end
5
+ end
@@ -1,3 +1,3 @@
1
1
  module C80Shared
2
- VERSION = "0.1.13"
2
+ VERSION = "0.1.14"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: c80_shared
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.13
4
+ version: 0.1.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - C80609A
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-12-11 00:00:00.000000000 Z
11
+ date: 2018-12-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -60,6 +60,7 @@ files:
60
60
  - app/helpers/site/time_helper.rb
61
61
  - app/serializers/boat_serializer.rb
62
62
  - app/serializers/boat_visit_day_serializer.rb
63
+ - app/serializers/configs/boats/boat_prices.rb
63
64
  - app/serializers/configs/boats/central_agent/boat_list.rb
64
65
  - app/serializers/configs/lease/central_agent/inquiry_list.rb
65
66
  - app/serializers/lease/bid_serializer.rb
@@ -83,6 +84,7 @@ files:
83
84
  - lib/c80_shared/engine.rb
84
85
  - lib/c80_shared/geo/distance.rb
85
86
  - lib/c80_shared/middleware/images_proxy.rb
87
+ - lib/c80_shared/string/sanitize_url.rb
86
88
  - lib/c80_shared/token_generator.rb
87
89
  - lib/c80_shared/version.rb
88
90
  homepage: http://google.com