c80_shared 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/dicts/rent_skip_type.rb +6 -0
- data/app/helpers/custom/currency_helper.rb +24 -0
- data/app/helpers/custom/select_helper.rb +19 -0
- data/app/serializers/lease/bid_serializer.rb +102 -0
- data/bin/rails +13 -0
- data/config/locales/rent_skip_type/en.yml +5 -0
- data/config/locales/rent_skip_type/ru.yml +5 -0
- data/lib/c80_shared/engine.rb +5 -0
- data/lib/c80_shared/version.rb +1 -1
- metadata +10 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b236e08513a15d9ca9dd41382641ee82d24158b0a0850c8c907ebb7528330a2f
|
4
|
+
data.tar.gz: e80c6d7d2c3f12a153aac7c82abac231374f29ac616b11166803c52c6397c1c9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bbc0039d84644da11ff2aecd5cfbaf101e33b6bb1bb6e11c376d0290866bbe8d9ef21f8d737c59830539ec3fee54532f489fa2e8abbf75446dbf04d7ca2bdc15
|
7
|
+
data.tar.gz: ee4753dda77eac6ed36e1cd30c16c8d50dcfab8885fc07b0895e162ea04a2425e6ce0c21555d23437306dda72020338cf718898108e05c15bdfdc10f035afe3b
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module Custom
|
2
|
+
module CurrencyHelper
|
3
|
+
def currency_symbol
|
4
|
+
collection_name_by_id(t('static.currencies', default: ''), cookies[:currency]) || ''
|
5
|
+
end
|
6
|
+
|
7
|
+
def currency_for_label(options = {})
|
8
|
+
options[:prefix] ||= ', '
|
9
|
+
"#{options[:prefix]}#{currency_symbol}"
|
10
|
+
end
|
11
|
+
|
12
|
+
def currency_attribute_name(name)
|
13
|
+
Currency.attribute_name(cookies[:currency], name)
|
14
|
+
end
|
15
|
+
|
16
|
+
# 12 USD -> $ 12.00, EUR -> €,...
|
17
|
+
require_relative 'select_helper'
|
18
|
+
include ::Custom::SelectHelper
|
19
|
+
def num_to_cur(val, iso_code, locale)
|
20
|
+
unit = collection_name_by_id(I18n.t('static.currencies', default: ''), iso_code)
|
21
|
+
number_to_currency(val, unit: unit, locale: locale)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Custom
|
2
|
+
module SelectHelper
|
3
|
+
def collection_name_by_id(collection, id)
|
4
|
+
return false if collection.empty?
|
5
|
+
|
6
|
+
element = collection.find { |hash| hash[:id] == id }
|
7
|
+
element.try(:fetch, :name)
|
8
|
+
end
|
9
|
+
|
10
|
+
def collection_for_select(collection, name, id, options = {})
|
11
|
+
return [] unless collection.is_a?(Array)
|
12
|
+
|
13
|
+
collection = collection.map { |h| [ h[name], h[id] ] }
|
14
|
+
collection = options_for_select(collection, options[:value]) if options[:options_for_select].present?
|
15
|
+
collection
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,102 @@
|
|
1
|
+
module Lease
|
2
|
+
class BidSerializer < ::AbstractSerializer
|
3
|
+
|
4
|
+
extend ::Site::TimeHelper
|
5
|
+
extend ::Custom::CurrencyHelper
|
6
|
+
extend ::ActionView::Helpers::NumberHelper
|
7
|
+
|
8
|
+
class << self
|
9
|
+
|
10
|
+
def available_attributes
|
11
|
+
%i[
|
12
|
+
id
|
13
|
+
account_id
|
14
|
+
inquiry_id
|
15
|
+
boat_id
|
16
|
+
boat
|
17
|
+
price
|
18
|
+
currency
|
19
|
+
state
|
20
|
+
from
|
21
|
+
to
|
22
|
+
period
|
23
|
+
duration
|
24
|
+
human_price
|
25
|
+
].freeze
|
26
|
+
end
|
27
|
+
|
28
|
+
def id(bid)
|
29
|
+
{ id: bid.id }
|
30
|
+
end
|
31
|
+
|
32
|
+
def account_id(bid)
|
33
|
+
{ account_id: bid.account_id }
|
34
|
+
end
|
35
|
+
|
36
|
+
def inquiry_id(bid)
|
37
|
+
{ inquiry_id: bid.inquiry_id }
|
38
|
+
end
|
39
|
+
|
40
|
+
def boat_id(bid)
|
41
|
+
{ boat_id: bid.boat_id }
|
42
|
+
end
|
43
|
+
|
44
|
+
def boat(bid)
|
45
|
+
boat = bid.boat
|
46
|
+
{
|
47
|
+
boat: {
|
48
|
+
id: boat.id,
|
49
|
+
img_url: (boat.boat_photo.picture.url(:thumb) if boat.boat_photo.present?),
|
50
|
+
name: boat.name,
|
51
|
+
type: (boat.boat_type.name rescue nil)
|
52
|
+
}
|
53
|
+
}
|
54
|
+
end
|
55
|
+
|
56
|
+
def price(bid)
|
57
|
+
{ price: bid.price }
|
58
|
+
end
|
59
|
+
|
60
|
+
def currency(bid)
|
61
|
+
{ currency: bid.currency }
|
62
|
+
end
|
63
|
+
|
64
|
+
def human_price(bid)
|
65
|
+
val = nil
|
66
|
+
if bid.price.present? && bid.currency.present?
|
67
|
+
val = num_to_cur(bid.price, bid.currency, @opts[:locale])
|
68
|
+
end
|
69
|
+
{ human_price: val }
|
70
|
+
end
|
71
|
+
|
72
|
+
def period(bid)
|
73
|
+
{ period: '%s - %s' % [from(bid)[:from], to(bid)[:to]] }
|
74
|
+
end
|
75
|
+
|
76
|
+
def duration(bid)
|
77
|
+
distance = (bid.to - bid.from).to_i / 24 / 60 / 60
|
78
|
+
distance = distance.zero? ? 1 : distance
|
79
|
+
uom = I18n.t('activerecord.labels.lease/bid.day', count: distance)
|
80
|
+
{
|
81
|
+
duration: {
|
82
|
+
distance: distance,
|
83
|
+
uom: uom
|
84
|
+
}
|
85
|
+
}
|
86
|
+
end
|
87
|
+
|
88
|
+
def from(bid)
|
89
|
+
{ from: format_date(bid.from, @opts[:locale]) }
|
90
|
+
end
|
91
|
+
|
92
|
+
def to(bid)
|
93
|
+
{ to: format_date(bid.to, @opts[:locale]) }
|
94
|
+
end
|
95
|
+
|
96
|
+
def state(bid)
|
97
|
+
{ state: bid.state }
|
98
|
+
end
|
99
|
+
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
data/bin/rails
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# This command will automatically be run when you run "rails" with Rails gems
|
3
|
+
# installed from the root of your application.
|
4
|
+
|
5
|
+
ENGINE_ROOT = File.expand_path('../..', __FILE__)
|
6
|
+
ENGINE_PATH = File.expand_path('../../lib/c80_shared/engine', __FILE__)
|
7
|
+
|
8
|
+
# Set up gems listed in the Gemfile.
|
9
|
+
ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
|
10
|
+
require 'bundler/setup' if File.exist?(ENV['BUNDLE_GEMFILE'])
|
11
|
+
|
12
|
+
require 'rails/all'
|
13
|
+
require 'rails/engine/commands'
|
data/lib/c80_shared/version.rb
CHANGED
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.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- C80609A
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-11-
|
11
|
+
date: 2018-11-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -50,14 +50,22 @@ files:
|
|
50
50
|
- Gemfile
|
51
51
|
- README.md
|
52
52
|
- app/dicts/email_token_subj.rb
|
53
|
+
- app/dicts/rent_skip_type.rb
|
54
|
+
- app/helpers/custom/currency_helper.rb
|
55
|
+
- app/helpers/custom/select_helper.rb
|
53
56
|
- app/helpers/site/time_helper.rb
|
57
|
+
- app/serializers/lease/bid_serializer.rb
|
54
58
|
- app/serializers/lease/inquiry_serializer.rb
|
55
59
|
- bin/console
|
60
|
+
- bin/rails
|
56
61
|
- bin/setup
|
57
62
|
- c80_shared.gemspec
|
63
|
+
- config/locales/rent_skip_type/en.yml
|
64
|
+
- config/locales/rent_skip_type/ru.yml
|
58
65
|
- lib/c80_shared.rb
|
59
66
|
- lib/c80_shared/abstract_serializer.rb
|
60
67
|
- lib/c80_shared/dict.rb
|
68
|
+
- lib/c80_shared/engine.rb
|
61
69
|
- lib/c80_shared/middleware/images_proxy.rb
|
62
70
|
- lib/c80_shared/version.rb
|
63
71
|
homepage: http://google.com
|