mrpin-sdk 1.0.17 → 1.0.18

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
  SHA1:
3
- metadata.gz: b5aa20e4453caded89dc21f25559f63f651c5274
4
- data.tar.gz: 193c2ecfbbb2781b1a765a47862ea53a9ea9b607
3
+ metadata.gz: 80cdcffc761fa3b9900c3045dccc5d727cc489da
4
+ data.tar.gz: 8f9a293b1f2fb34e49ca6b495bb606ac20e729f8
5
5
  SHA512:
6
- metadata.gz: 464ca96876a91dddb8fc4ca2a31d8029f1da33c156dca2eae8e9532f6f764eca634dd08e316fa13b4960b8da5fa604d02418f00315bc0ad9196315fc1ef14a2a
7
- data.tar.gz: 0618302415d8b12db41ac54589550bb769d9942de0a4d58937e9fd9df7a2b013d2afb44192b679fae9b643b8d6596f008bae7320160b6d8176584155f508a978
6
+ metadata.gz: e05dc263b7f1f32794048d38a1964fd53cab6c3d0d8e07b493a2309c4c0bc5c7b3d4134f3244765921211ac3fe4a58cc37e4d48d106605f4eba8d2de3ca49157
7
+ data.tar.gz: 30eb24502288db6d924a1c635d68d5acea1be9ad7b08ce70ec9ec00b2b3b0956eb0230e28b8a5b9f92f292927963000fb19a1528d4f4a5ed1c0a3f0798e26780
@@ -113,20 +113,6 @@ class SystemControllerBase < ApplicationControllerBase
113
113
  result
114
114
  end
115
115
 
116
-
117
- public
118
- def invalidate_cache
119
- result = nil
120
-
121
- begin
122
- result = AppInfo.instance.invalidate_cache
123
- rescue Exception => e
124
- result = get_response_error(e.to_s)
125
- end
126
-
127
- render json: result
128
- end
129
-
130
116
  public
131
117
  def send_notifications
132
118
  result = nil
@@ -200,8 +186,18 @@ class SystemControllerBase < ApplicationControllerBase
200
186
 
201
187
  public
202
188
  def generate_client_json
189
+ call_in_all_managers('generate_client_json')
190
+ end
191
+
192
+ public
193
+ def invalidate_cache
194
+ call_in_all_managers('invalidate_cache')
195
+ end
196
+
197
+ private
198
+ def call_in_all_managers(method)
203
199
  begin
204
- errors = AppInfo.instance.call_in_all_managers('generate_client_json')
200
+ errors = AppInfo.instance.call_in_all_managers(method)
205
201
 
206
202
  errors.map!(&:to_s)
207
203
 
@@ -366,23 +366,6 @@ class AppInfoBase
366
366
  # @manager_scheduler.scheduler.cron '00 14 * * 2' do
367
367
  end
368
368
 
369
- public
370
- def invalidate_cache
371
- result = nil
372
-
373
- errors = call_in_all_managers_with_benchmark('[INVALIDATE_CACHE]', 'invalidate_cache', false)
374
-
375
- errors.map!(&:to_s)
376
-
377
- if errors.empty?
378
- result = get_response_ok
379
- else
380
- result = get_response_error(errors)
381
- end
382
-
383
- result
384
- end
385
-
386
369
  protected
387
370
  def try_create_admin_user(login, password, role)
388
371
  result = AdminUser.where(email: login).first
@@ -219,7 +219,6 @@
219
219
  #
220
220
  # routes << "match '/system/info' => 'system#info', via: [:get, :post]"
221
221
  # routes << "match '/system/info/gc_stat' => 'system#gc_stat', via: [:get, :post]"
222
- # routes << "match '/system/invalidate_cache' => 'system#invalidate_cache', via: [:get, :post]"
223
222
  # routes << "match '/system/send_notifications' => 'system#send_notifications', via: [:get, :post]"
224
223
  # routes << "match '/system/cleanup_data' => 'system#cleanup_data', via: [:get, :post]"
225
224
  # routes << "match '/system/downloads/:type' => 'system#download', via: [:get, :post]"
@@ -39,7 +39,7 @@ class ManagerStatisticsBase < ManagerBase
39
39
  end
40
40
 
41
41
  public
42
- def invalidate_cache
42
+ def load_init_data
43
43
  super
44
44
 
45
45
  init_config
@@ -2,13 +2,12 @@ class EStringTypeBase < EnumBase
2
2
 
3
3
  EST_ALPHABET = :alphabet
4
4
 
5
- EST_ERROR_LOGIN_TWICE = :EST_ERROR_LOGIN_TWICE
6
- EST_ERROR_UNKNOWN = :EST_ERROR_UNKNOWN
7
- EST_ERROR_SERVER_ON_MAINTENANCE = :EST_ERROR_SERVER_ON_MAINTENANCE
8
- EST_ERROR_SERVER_SHUTDOWN = :EST_ERROR_SERVER_SHUTDOWN
9
- EST_ERROR_PLAYER_INACTIVE = :EST_ERROR_PLAYER_INACTIVE
10
- EST_ERROR_PLAYER_BANNED = :EST_ERROR_PLAYER_BANNED
11
-
12
- EST_ERROR_WRONG_PARAMETER = 'error_wrong_parameter'
5
+ EST_ERROR_LOGIN_TWICE = 'est_error_login_twice'
6
+ EST_ERROR_UNKNOWN = 'est_error_unknown'
7
+ EST_ERROR_SERVER_ON_MAINTENANCE = 'est_error_server_on_maintenance'
8
+ EST_ERROR_SERVER_SHUTDOWN = 'est_error_server_shutdown'
9
+ EST_ERROR_PLAYER_INACTIVE = 'est_error_player_inactive'
10
+ EST_ERROR_PLAYER_BANNED = 'est_error_player_banned'
11
+ EST_ERROR_WRONG_PARAMETER = 'error_wrong_parameter'
13
12
 
14
13
  end
data/lib/mrpin/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Mrpin
2
- VERSION = '1.0.17'
2
+ VERSION = '1.0.18'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mrpin-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.17
4
+ version: 1.0.18
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gregory
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2017-03-21 00:00:00.000000000 Z
14
+ date: 2017-03-28 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: bundler
@@ -402,8 +402,6 @@ files:
402
402
  - lib/mrpin/core/string/e_language_type.rb
403
403
  - lib/mrpin/core/string/e_string_type_base.rb
404
404
  - lib/mrpin/core/string/localization_base.rb
405
- - lib/mrpin/core/string/localization_base_map.rb
406
- - lib/mrpin/core/string/manager_string_base.rb
407
405
  - lib/mrpin/core/threads/thread_with_task.rb
408
406
  - lib/mrpin/core/uploaders/aws/aws_file_info.rb
409
407
  - lib/mrpin/core/uploaders/aws/aws_uploader.rb
@@ -1,303 +0,0 @@
1
- # module LocalizationBaseMap
2
- #
3
- # LOCALIZATION_BASE =
4
- #
5
- # {
6
- # ELanguageType::ELT_ENGLISH.to_sym => {
7
- #
8
- # alphabet: %w(A B C D E F G H I J K L M N O P Q R S T U V W X Y Z),
9
- #
10
- #
11
- # EST_SOCIAL_INVITE_FRIEND_MESSAGE: [
12
- # 'Great game! Play with me!'
13
- # ],
14
- #
15
- # EST_SOCIAL_WALLPOST_TOP: [
16
- # "I'm on #VALUE# place! Try to beat me!"
17
- # ],
18
- #
19
- # EST_SOCIAL_WALLPOST_ALBUM: [
20
- # 'Please help finish this level.'
21
- # ],
22
- #
23
- # EST_SOCIAL_NOTIFICATION_GIFT_SEND: [
24
- # 'Gift from friend.',
25
- # 'Take a gift from me:)'
26
- # ],
27
- #
28
- # EST_SOCIAL_NOTIFICATION_GIFT_ASK: [
29
- # 'Please send me gift:)'
30
- # ],
31
- #
32
- # EST_PLATFORM_LOGIN_TWICE: 'You are login in another place',
33
- # EST_SOCIAL_ALBUM_NAME: 'Album for MrPin game',
34
- # EST_GAME_NAME: 'MrPin game',
35
- #
36
- # EST_RESOURCE_BUTTON_HOURLY: 'Hourly bonus',
37
- # EST_RESOURCE_TOOLTIP: 'You have #VALUE##0#',
38
- #
39
- # EST_FRIENDS_BUTTON_TOP: 'Open top players',
40
- # EST_FRIENDS_BUTTON_INVITE: 'Invite friends - receive awards!',
41
- # EST_FRIENDS_ITEM_BUTTON_GIFT_ASK: 'Ask gift',
42
- # EST_FRIENDS_ITEM_BUTTON_GIFT_SEND: 'Send gift',
43
- # EST_FRIENDS_ITEM_BUTTON_INVITE: 'Invite friend',
44
- #
45
- # #bank
46
- # EST_BANK_TITLE: 'Payment menu',
47
- # EST_BANK_TEXT: 'Pay more - receive even more!',
48
- #
49
- # EST_BANK_SALE_BEST: "Best\noffer!",
50
- # EST_BANK_SALE_POPULAR: "Most\npopular!",
51
- #
52
- # EST_BANK_BUTTON_INVITE: 'Invite',
53
- # EST_BANK_LABEL_INVITE: "Invite friends - receive awards!\n#VALUE# for each player in game!",
54
- #
55
- # #bonus
56
- # EST_BONUS_DAILY_TITLE: 'Daily bonus',
57
- # EST_BONUS_DAILY_BUTTON_INVITE: 'Invite',
58
- # EST_BONUS_DAILY_BUTTON_CLOSE: 'Thanks!:)',
59
- # EST_BONUS_DAILY_LABEL_TITLE_BONUS: 'Sign in game everyday and receive more awards!',
60
- # EST_BONUS_DAILY_LABEL_TITLE_INVITED: 'Bonus for friends',
61
- # EST_BONUS_DAILY_ITEM_TITLE: 'Day #VALUE#',
62
- #
63
- #
64
- # EST_BONUS_FRIENDS_TITLE: 'New friends in game!',
65
- # EST_BONUS_FRIENDS_TEXT: "Congratulations!\nYour bonus:",
66
- # EST_BONUS_FRIENDS_BUTTON_CLOSE: 'Cool!',
67
- #
68
- # #error
69
- # EST_ERROR_TITLE: 'Error',
70
- # EST_ERROR_BUTTON_CLOSE: 'Refresh',
71
- #
72
- # #gift
73
- #
74
- # EST_GIFT_TITLE: 'Gifts from friends',
75
- # EST_GIFT_TEXT: 'Every day you can claim #VALUE# gifts from friends.',
76
- # EST_GIFT_TEXT_SEND_ALL: 'Send back',
77
- # EST_GIFT_BUTTON_CLOSE: 'Claim',
78
- #
79
- # #offer
80
- # EST_OFFER_BUTTON: 'Promotion!',
81
- # EST_OFFER_TITLE: [
82
- # ''
83
- # ],
84
- #
85
- # EST_OFFER_BUTTON_BUY: 'Just #VALUE##0#',
86
- # EST_OFFER_LABEL_TIMER: 'Time left:',
87
- #
88
- # #no resources
89
- # EST_NO_RESOURCES_TITLE: 'Not enough resources:(',
90
- # EST_NO_RESOURCES_BUTTON_WAIT: 'Ok:(',
91
- # EST_NO_RESOURCES_BUTTON_BUY: 'Buy more',
92
- # EST_NO_RESOURCES_TEXT: 'To start the game you need #VALUE##0#.',
93
- #
94
- # #top
95
- # EST_TOP_TITLE: 'Top players',
96
- # EST_TOP_POSITION: 'You are #VALUE#',
97
- # EST_TOP_POINTS: 'You have #VALUE##0#',
98
- # EST_TOP_BUTTON_SHARE: 'Share',
99
- #
100
- # EST_WIN_TITLE: '#VALUE# level complete',
101
- # EST_WIN_BUTTON_CLOSE: 'Next',
102
- # EST_WIN_LABEL_SHARE: 'Share',
103
- # EST_WIN_BUTTON_RESTART: 'Retry',
104
- #
105
- # EST_ERROR_LOGIN_TWICE: "You're logged in from somwhere else.",
106
- # EST_ERROR_CONNECTION_LOST: 'Connection with server lost!',
107
- # EST_ERROR_NO_CONTENT: 'Congratulations! You have passed the game!',
108
- # EST_ERROR_SERVER_ON_MAINTENANCE: 'Server on maintenance. Be patient:)',
109
- # EST_ERROR_PLAYER_INACTIVE: 'Anybody here?',
110
- # EST_ERROR_PLAYER_BANNED: [
111
- # 'You are banned'
112
- # ],
113
- # EST_ERROR_SERVER_SHUTDOWN: 'Technical pause. Please wait few minutes:)',
114
- #
115
- # EST_GAME_HINT: [
116
- # 'Play everyday and receive free bonuses!',
117
- # 'Want more currency? Invite friend and receive!',
118
- # 'Play in fullscreen mode! Dive into the game!',
119
- # 'Learn payment menu before pay. By buying in bulk you get a big discount!',
120
- # 'If you If you find an error mistake in game - just write to administrator or official page and we will give bonus to you:).',
121
- # 'Have a high position in the game? Share with friends!',
122
- # 'Do not miss the exciting news, and action games - join the group application. Discover all the first!'
123
- # ],
124
- #
125
- # EST_NOTIFICATION_DAILY_BONUS_READY:
126
- # [
127
- # 'Sign in and take your bonus! :)',
128
- # "you've already received own bonus?",
129
- # ],
130
- # EST_NOTIFICATION_NEW_FRIEND_IN_GAME:
131
- # [
132
- # 'New friend in game. Take your currency!',
133
- # 'More friends - more gifts!',
134
- # 'New friends - more currency!',
135
- # ],
136
- # EST_NOTIFICATION_COME_BACK_IN_GAME:
137
- # [
138
- # '', #todo:implement
139
- # ]
140
- # },
141
- #
142
- # ELanguageType::ELT_RUSSIAN.to_sym => {
143
- #
144
- # alphabet: %w(А Б В Г Д Е Ё Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я),
145
- #
146
- #
147
- # EST_SOCIAL_INVITE_FRIEND_MESSAGE: [
148
- # 'Такой игры ты еще не видел! Заходи!'
149
- # ],
150
- #
151
- # EST_SOCIAL_WALLPOST_TOP: [
152
- # 'Посмотрите я на #VALUE# месте! Играй и ты со мной!'
153
- # ],
154
- #
155
- # EST_SOCIAL_WALLPOST_ALBUM: [
156
- # 'Друзья, помогите пройти уровень!',
157
- # 'Друзья, не могу пройти уровень - помогите!',
158
- # 'Друг, сегодня ты помог мне - завтра я помогу тебе :)'
159
- # ],
160
- #
161
- # EST_SOCIAL_NOTIFICATION_GIFT_SEND: [
162
- # 'О! Подарок от друга!',
163
- # 'Ух-ты, новый подарок!',
164
- # 'Подарок! Интересно какой?',
165
- # 'Держи подарочек от меня :)',
166
- # 'Держи подарок! Жду тебя в игре!',
167
- # 'Подарок? Я отправил! Увидимся в игре!',
168
- # 'Заходи в игру, тебя ждет мой подарок!',
169
- # 'Это просто какой-то праздник каждый день!',
170
- # 'Я подарил тебе подарок. Возвращайся в игру!',
171
- # 'Я отправил тебе подарок! Жду тебя в игре :)',
172
- # 'Не получается пройти уровень? Я тебе помогу, заходи в игру'
173
- # ],
174
- #
175
- # EST_SOCIAL_NOTIFICATION_GIFT_ASK: [
176
- # 'Сделай доброе дело – пришли мне подарок!',
177
- # 'Привет! Заходи в игру и пришли мне, пожалуйста, подарок!'
178
- # ],
179
- #
180
- # EST_GAME_NAME: 'Игра от MrPin',
181
- #
182
- # EST_SOCIAL_ALBUM_NAME: 'Альбом игры MrPin',
183
- #
184
- # EST_RESOURCE_BUTTON_HOURLY: 'Бонус',
185
- # EST_RESOURCE_TOOLTIP: 'У Вас #VALUE##0#',
186
- #
187
- # EST_FRIENDS_BUTTON_TOP: 'Открыть топ игроков',
188
- # EST_FRIENDS_BUTTON_INVITE: 'Приглашай друзей - получай награду!',
189
- # EST_FRIENDS_ITEM_BUTTON_GIFT_ASK: 'Попросить подарок',
190
- # EST_FRIENDS_ITEM_BUTTON_GIFT_SEND: 'Отправить подарок',
191
- # EST_FRIENDS_ITEM_BUTTON_INVITE: 'Пригласить в игру',
192
- #
193
- # #bank
194
- # EST_BANK_TITLE: 'Банк',
195
- # EST_BANK_TEXT: 'Покупай больше и получай больше бонус!',
196
- #
197
- # EST_BANK_SALE_BEST: "Лучшее\nпредложение!",
198
- # EST_BANK_SALE_POPULAR: "Популярный\nвыбор!",
199
- #
200
- # EST_BANK_BUTTON_INVITE: 'Пригласить',
201
- # EST_BANK_LABEL_INVITE: "Приглашай друзей - получай награду!\n#VALUE# за каждого друга в игре!",
202
- #
203
- # #bonus
204
- # EST_BONUS_DAILY_TITLE: 'Ежедневный бонус',
205
- # EST_BONUS_DAILY_BUTTON_INVITE: 'Пригласить друга',
206
- # EST_BONUS_DAILY_BUTTON_CLOSE: 'Спасибо!:)',
207
- # EST_BONUS_DAILY_LABEL_TITLE_BONUS: 'Заходи в игру каждый день и получай бонусы',
208
- # EST_BONUS_DAILY_LABEL_TITLE_INVITED: 'Бонус за друзей',
209
- # EST_BONUS_DAILY_ITEM_TITLE: 'День #VALUE#',
210
- #
211
- #
212
- # EST_BONUS_FRIENDS_TITLE: 'Новые друзья в игре!',
213
- # EST_BONUS_FRIENDS_TEXT: "Поздравляем!\nВаш бонус за друзей:",
214
- # EST_BONUS_FRIENDS_BUTTON_CLOSE: 'Отлично!',
215
- #
216
- # #error
217
- # EST_ERROR_TITLE: 'Ошибочка',
218
- # EST_ERROR_BUTTON_CLOSE: 'Обновить',
219
- #
220
- # #gift
221
- #
222
- # EST_GIFT_TITLE: 'Подарки от друзей',
223
- # EST_GIFT_TEXT: 'Ежедневно можешь забрать до #VALUE# подарков от друзей.',
224
- # EST_GIFT_TEXT_SEND_ALL: 'Отправить в ответ',
225
- # EST_GIFT_BUTTON_CLOSE: 'Забрать',
226
- #
227
- # #offer
228
- # EST_OFFER_BUTTON: 'Акция!',
229
- # EST_OFFER_TITLE: [
230
- # 'Куй железо, пока горячо!',
231
- # 'Акция!',
232
- # 'Кто не купил - тот опоздал!'
233
- # ],
234
- #
235
- # EST_OFFER_BUTTON_BUY: 'Всего за #VALUE##0#',
236
- # EST_OFFER_LABEL_TIMER: 'До окончания акции осталось:',
237
- #
238
- # #no resources
239
- # EST_NO_RESOURCES_TITLE: 'Не хватает ресурсов:(',
240
- # EST_NO_RESOURCES_BUTTON_WAIT: 'Хорошо:(',
241
- # EST_NO_RESOURCES_BUTTON_BUY: 'Докупить',
242
- # EST_NO_RESOURCES_TEXT: 'Для старта игры необходимо #VALUE##0#.',
243
- #
244
- # #top
245
- # EST_TOP_TITLE: 'Топ игроков',
246
- # EST_TOP_POSITION: 'Вы на #VALUE# месте',
247
- # EST_TOP_POINTS: 'У Вас #VALUE##0#',
248
- # EST_TOP_BUTTON_SHARE: 'Похвастаться',
249
- #
250
- # EST_WIN_TITLE: 'Уровень #VALUE# пройден!',
251
- # EST_WIN_BUTTON_CLOSE: 'Далее',
252
- # EST_WIN_LABEL_SHARE: 'Похвастаться',
253
- # EST_WIN_BUTTON_RESTART: 'Заново',
254
- #
255
- # EST_ERROR_LOGIN_TWICE: 'Вы вошли в игру на другом устройстве',
256
- # EST_ERROR_CONNECTION_LOST: 'Шеф, все пропало! Соединение с сервером утеряно!',
257
- # EST_ERROR_NO_CONTENT: 'Поздравляю! Вся игра пройдена!',
258
- # EST_ERROR_SERVER_ON_MAINTENANCE: 'Мы проводим технические работы. Подождите еще чуть-чуть:)',
259
- # EST_ERROR_PLAYER_INACTIVE: 'Эй! Ты где? Совсем забыл про меня:(',
260
- # EST_ERROR_PLAYER_BANNED: [
261
- # 'Поздравляю! Вы сорвали джекпот - Вас забанили! Это удается отнюдь немногим:)',
262
- # 'Всё. Кина не будет... Электричество кончилось.'
263
- # ],
264
- # EST_ERROR_SERVER_SHUTDOWN: 'Техническая пауза. Не переключайтесь, через минутку вернемся:)',
265
- #
266
- # EST_GAME_HINT: [
267
- # 'Заходи в игру и собирай бесплатные бонусы ежедневно!',
268
- # 'Хочешь еще монет? Получи их бесплатно пригласив друга в игру!',
269
- # 'Управление музыкой и звуками в игре находится в меню настроек.',
270
- # 'Окунись в игру с головой - включи полноэкранный режим в меню настроек!',
271
- # 'Изучи платежное меню перед покупкой. Покупая оптом получаешь большую скидку!',
272
- # 'Если обнаружили ошибку в игре - напишите в группу приложения, и мы начислим дополнительный бонус.',
273
- # 'Занимаешь высокую позицию в топе? Похвастайся этим перед друзьями, нажав на кнопку в окне Лидеров.',
274
- # 'Не пропустите интересные новости и акции игры - вступайте в группу приложения. Узнайте обо всем первыми!'
275
- # ],
276
- #
277
- # EST_NOTIFICATION_DAILY_BONUS_READY:
278
- # [
279
- # 'Бонус начислен. Получите, распишитесь.',
280
- # 'Заходи в игру - получай бонусы!',
281
- # 'Сегодня уже забрал свой бонус?',
282
- # 'Скорее заходи в игру и получай ежедневный бонус!'
283
- # ],
284
- # EST_NOTIFICATION_NEW_FRIEND_IN_GAME:
285
- # [
286
- # 'Твой друг в игре - держи монеты!',
287
- # 'Больше друзей в игре - больше подарков!',
288
- # 'Зови друзей в игру - получай монеты!',
289
- # 'Получай свой бонус за друга в игре!'
290
- # ],
291
- # EST_NOTIFICATION_COME_BACK_IN_GAME:
292
- # [
293
- # 'Эта игра затягивает - не оторваться!',
294
- # 'Возвращайся в игру, тебя опережают в топе!',
295
- # 'Блесни умом! Возвращайся в игру!',
296
- # 'Твои рекорды уже побили! Скорее возвращайся!',
297
- # 'Только для самых активных игроков - пора занимать места в топе!'
298
- # ]
299
- # }
300
- # }
301
- #
302
- #
303
- # end
@@ -1,138 +0,0 @@
1
- class ManagerStringBase < ManagerBase
2
-
3
- #
4
- # Properties
5
- #
6
-
7
- attr_reader :localization_keys_list
8
- attr_reader :supported_languages
9
- attr_reader :languages_priority
10
-
11
- public
12
- def get_localization_base_map
13
- {}
14
- end
15
-
16
- #
17
- # Methods
18
- #
19
-
20
- # default constructor
21
- def initialize(options = nil)
22
- super(options)
23
-
24
- @supported_languages = ELanguageType.values_list.map(&:to_sym)
25
-
26
- @languages_priority = [ELanguageType::ELT_ENGLISH, ELanguageType::ELT_RUSSIAN]
27
-
28
- @class_localization = LocalizationBase
29
-
30
- #key - language, value - {key - string_key, value - string}
31
- @string_map = {}
32
-
33
- @localization_keys_list = []
34
-
35
- @responses_map = {}
36
- end
37
-
38
- public
39
- def invalidate_cache
40
- super
41
-
42
- localization_base = get_localization_base_map
43
-
44
- string_map = localization_base.deep_dup
45
-
46
- localizations = @class_localization.all.to_a
47
-
48
- @supported_languages.each do |language|
49
- string_map[language] ||= {}
50
- end
51
-
52
- localizations.each do |localization_item|
53
-
54
- key = localization_item[:key].to_sym
55
-
56
- @supported_languages.each do |language|
57
-
58
- texts = localization_item[language]
59
-
60
- unless texts.nil? || texts.empty?
61
- string_map[language][key] = texts
62
- end
63
-
64
- end
65
-
66
- end
67
-
68
- localization_keys_list = []
69
-
70
- string_map.each do |language, keys_map|
71
- localization_keys_list |= keys_map.keys.map(&:to_s)
72
- end
73
-
74
- @string_map = string_map
75
- @localization_keys_list = localization_keys_list
76
-
77
- update_responses_map
78
- end
79
-
80
- protected
81
- def update_responses_map
82
- responses_map = {}
83
-
84
- @string_map.each do |language, localization_map|
85
- response = Api::ResponseStringInit.new
86
- response.language = language
87
- response.localization_map = localization_map
88
- responses_map[language] = AMF::Root.serialize(response)
89
- end
90
-
91
- @responses_map = responses_map
92
- end
93
-
94
- public
95
- def localized_string(key, language)
96
- keys_map = @string_map[language.to_sym]
97
-
98
- return nil if keys_map.nil?
99
-
100
- result = keys_map[key.to_sym]
101
-
102
- if result.is_a? (Array)
103
- result = result.sample
104
- end
105
-
106
- result
107
- end
108
-
109
- public
110
- def get_localization_response_for(language)
111
- @responses_map[language.to_sym] || @responses_map[ELanguageType::ELT_ENGLISH.to_sym] || {}
112
- end
113
-
114
- public
115
- def get_string_languages(key)
116
- result = []
117
-
118
- @string_map.each do |language, keys_map|
119
- result << language.to_s unless keys_map[key.to_sym].nil?
120
- end
121
-
122
- result
123
- end
124
-
125
- public
126
- def get_alphabet_for(language)
127
- result = nil
128
-
129
- language_map = @string_map[language.to_sym]
130
-
131
- unless language_map.nil?
132
- result = language_map[EStringTypeBase::EST_ALPHABET]
133
- end
134
-
135
- result
136
- end
137
-
138
- end