wovnrb 3.7.2 → 3.9.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -771,6 +771,85 @@ module Wovnrb
771
771
  assert_equal('/th/', url_lang_switcher.add_lang_code(href_trailing_slash, 'th', headers))
772
772
  end
773
773
 
774
+ def test_add_lang_code_with_custom_domain_langs
775
+ custom_domain_langs = {
776
+ 'en' => { 'url' => 'my-site.com' },
777
+ 'en-US' => { 'url' => 'en-us.my-site.com' },
778
+ 'ja' => { 'url' => 'my-site.com/ja' },
779
+ 'zh-CHS' => { 'url' => 'my-site.com/zh/chs' },
780
+ 'zh-Hant-HK' => { 'url' => 'zh-hant-hk.com/zh' }
781
+ }
782
+ test_cases = [
783
+ # no_lang_url, lang_code, expected_url
784
+ # absolute URL
785
+ ['https://my-site.com', 'en', 'https://my-site.com'],
786
+ ['https://my-site.com', 'ja', 'https://my-site.com/ja'],
787
+ ['https://my-site.com/index.php', 'ja', 'https://my-site.com/ja/index.php'],
788
+ ['https://my-site.com/a/b/', 'ja', 'https://my-site.com/ja/a/b/'],
789
+ ['https://my-site.com/a/b/index.php', 'ja', 'https://my-site.com/ja/a/b/index.php'],
790
+ ['https://my-site.com/index.php', 'en-US', 'https://en-us.my-site.com/index.php'],
791
+ ['https://my-site.com/index.php', 'zh-CHS', 'https://my-site.com/zh/chs/index.php'],
792
+ ['https://my-site.com/index.php', 'zh-Hant-HK', 'https://zh-hant-hk.com/zh/index.php'],
793
+ ['https://my-site.com/index.php?a=1&b=2', 'zh-Hant-HK', 'https://zh-hant-hk.com/zh/index.php?a=1&b=2'],
794
+ ['https://my-site.com/index.php#hash', 'zh-Hant-HK', 'https://zh-hant-hk.com/zh/index.php#hash'],
795
+ ['https://my-site.com/index.php?a=1&b=2#hash', 'zh-Hant-HK', 'https://zh-hant-hk.com/zh/index.php?a=1&b=2#hash'],
796
+
797
+ # absolute path
798
+ ['/', 'en', 'http://my-site.com/'],
799
+ ['/', 'ja', 'http://my-site.com/ja/'],
800
+ ['/index.php', 'ja', 'http://my-site.com/ja/index.php'],
801
+ ['/a/b/', 'ja', 'http://my-site.com/ja/a/b/'],
802
+ ['/a/b/index.php', 'ja', 'http://my-site.com/ja/a/b/index.php'],
803
+ ['/index.php', 'en-US', 'http://en-us.my-site.com/index.php'],
804
+ ['/index.php', 'zh-CHS', 'http://my-site.com/zh/chs/index.php'],
805
+ ['/index.php', 'zh-Hant-HK', 'http://zh-hant-hk.com/zh/index.php'],
806
+ ['/index.php?a=1&b=2', 'zh-Hant-HK', 'http://zh-hant-hk.com/zh/index.php?a=1&b=2'],
807
+ ['/index.php#hash', 'zh-Hant-HK', 'http://zh-hant-hk.com/zh/index.php#hash'],
808
+ ['/index.php?a=1&b=2#hash', 'zh-Hant-HK', 'http://zh-hant-hk.com/zh/index.php?a=1&b=2#hash'],
809
+
810
+ # relative path
811
+ ['index.php', 'ja', 'http://my-site.com/ja/req_uri/index.php'],
812
+ ['a/b/', 'ja', 'http://my-site.com/ja/req_uri/a/b/'],
813
+ ['a/b/index.php', 'ja', 'http://my-site.com/ja/req_uri/a/b/index.php'],
814
+ ['index.php', 'en-US', 'http://en-us.my-site.com/req_uri/index.php'],
815
+ ['index.php', 'zh-CHS', 'http://my-site.com/zh/chs/req_uri/index.php'],
816
+ ['index.php', 'zh-Hant-HK', 'http://zh-hant-hk.com/zh/req_uri/index.php'],
817
+ ['index.php?a=1&b=2', 'zh-Hant-HK', 'http://zh-hant-hk.com/zh/req_uri/index.php?a=1&b=2'],
818
+ ['index.php#hash', 'zh-Hant-HK', 'http://zh-hant-hk.com/zh/req_uri/index.php#hash'],
819
+ ['index.php?a=1&b=2#hash', 'zh-Hant-HK', 'http://zh-hant-hk.com/zh/req_uri/index.php?a=1&b=2#hash'],
820
+ ['?a=1&b=2', 'zh-Hant-HK', 'http://zh-hant-hk.com/zh/req_uri/?a=1&b=2'],
821
+
822
+ # anchor links should not be changed
823
+ ['#hash', 'zh-Hant-HK', '#hash']
824
+ ]
825
+
826
+ settings = {
827
+ 'project_token' => 'T0k3N',
828
+ 'default_lang' => 'en',
829
+ 'supported_langs' => ['en'],
830
+ 'url_pattern' => 'custom_domain',
831
+ 'custom_domain_langs' => custom_domain_langs
832
+ }
833
+ additional_env = {
834
+ 'HTTP_HOST' => 'my-site.com',
835
+ 'REQUEST_URI' => '/req_uri/'
836
+ }
837
+
838
+ test_cases.each do |test_case|
839
+ target_uri, lang, expected_uri = test_case
840
+ store = Wovnrb::Store.instance
841
+ store.update_settings(settings)
842
+ url_lang_switcher = UrlLanguageSwitcher.new(store)
843
+ headers = Wovnrb::Headers.new(
844
+ Wovnrb.get_env(additional_env),
845
+ store.settings,
846
+ url_lang_switcher
847
+ )
848
+
849
+ assert_equal(expected_uri, url_lang_switcher.add_lang_code(target_uri, lang, headers))
850
+ end
851
+ end
852
+
774
853
  def test_remove_lang_query_with_lang_param_name
775
854
  settings = Wovnrb.get_settings('url_pattern' => 'query', 'lang_param_name' => 'lang')
776
855
  store = Wovnrb.get_store(settings)
@@ -920,6 +999,75 @@ module Wovnrb
920
999
  assert_equal('https://wovn.io/', uri_with_scheme)
921
1000
  end
922
1001
 
1002
+ def test_remove_lang_custom_domain
1003
+ custom_domain_langs = {
1004
+ 'en' => { 'url' => 'my-site.com' },
1005
+ 'en-US' => { 'url' => 'en-us.my-site.com' },
1006
+ 'ja' => { 'url' => 'my-site.com/ja' },
1007
+ 'zh-CHS' => { 'url' => 'my-site.com/zh/chs' },
1008
+ 'zh-Hant-HK' => { 'url' => 'zh-hant-hk.com/zh' }
1009
+ }
1010
+ test_cases = [
1011
+ # target_uri, lang, expected_uri, env
1012
+ # absolute URL
1013
+ ['https://my-site.com', 'en', 'https://my-site.com', {}],
1014
+ ['https://my-site.com/ja', 'ja', 'https://my-site.com', { 'REQUEST_URI' => '/ja' }],
1015
+ ['https://my-site.com/ja/index.php', 'ja', 'https://my-site.com/index.php', { 'REQUEST_URI' => '/ja/index.php' }],
1016
+ ['https://my-site.com/ja/a/b/', 'ja', 'https://my-site.com/a/b/', { 'REQUEST_URI' => '/ja/a/b/' }],
1017
+ ['https://my-site.com/ja/a/b/index.php', 'ja', 'https://my-site.com/a/b/index.php', { 'REQUEST_URI' => '/ja/a/b/index.php' }],
1018
+ ['https://en-us.my-site.com/index.php', 'en-US', 'https://my-site.com/index.php', { 'HTTP_HOST' => 'en-us.my-site.com', 'SERVER_NAME' => 'en-us.my-site.com', 'REQUEST_URI' => '/index.php' }],
1019
+ ['https://my-site.com/zh/chs/index.php', 'zh-CHS', 'https://my-site.com/index.php', { 'REQUEST_URI' => '/zh/chs/index.php' }],
1020
+ ['https://zh-hant-hk.com/zh/index.php', 'zh-Hant-HK', 'https://my-site.com/index.php', { 'HTTP_HOST' => 'zh-hant-hk.com', 'SERVER_NAME' => 'zh-hant-hk.com', 'REQUEST_URI' => '/zh/index.php' }],
1021
+ ['https://zh-hant-hk.com/zh/index.php?a=1&b=2', 'zh-Hant-HK', 'https://my-site.com/index.php?a=1&b=2', { 'HTTP_HOST' => 'zh-hant-hk.com', 'SERVER_NAME' => 'zh-hant-hk.com', 'REQUEST_URI' => '/zh/index.php' }],
1022
+ ['https://zh-hant-hk.com/zh/index.php#hash', 'zh-Hant-HK', 'https://my-site.com/index.php#hash', { 'HTTP_HOST' => 'zh-hant-hk.com', 'SERVER_NAME' => 'zh-hant-hk.com', 'REQUEST_URI' => '/zh/index.php' }],
1023
+ ['https://zh-hant-hk.com/zh/index.php?a=1&b=2#hash', 'zh-Hant-HK', 'https://my-site.com/index.php?a=1&b=2#hash', { 'HTTP_HOST' => 'zh-hant-hk.com', 'SERVER_NAME' => 'zh-hant-hk.com', 'REQUEST_URI' => '/zh/index.php' }],
1024
+
1025
+ # absolute path
1026
+ ['/', 'en', '/', {}],
1027
+ ['/ja/', 'ja', '/', { 'REQUEST_URI' => '/ja' }],
1028
+ ['/ja/index.php', 'ja', '/index.php', { 'REQUEST_URI' => '/ja/index.php' }],
1029
+ ['/ja/a/b/', 'ja', '/a/b/', { 'REQUEST_URI' => '/ja/a/b/' }],
1030
+ ['/ja/a/b/index.php', 'ja', '/a/b/index.php', { 'REQUEST_URI' => '/ja/a/b/index.php' }],
1031
+ ['/index.php', 'en-US', '/index.php', { 'HTTP_HOST' => 'en-us.my-site.com', 'SERVER_NAME' => 'en-us.my-site.com', 'REQUEST_URI' => '/index.php' }],
1032
+ ['/zh/chs/index.php', 'zh-CHS', '/index.php', { 'REQUEST_URI' => '/zh/chs/index.php' }],
1033
+ ['/zh/index.php', 'zh-Hant-HK', '/index.php', { 'HTTP_HOST' => 'zh-hant-hk.com', 'SERVER_NAME' => 'zh-hant-hk.com', 'REQUEST_URI' => '/zh/index.php' }],
1034
+ ['/zh/index.php?a=1&b=2', 'zh-Hant-HK', '/index.php?a=1&b=2', { 'HTTP_HOST' => 'zh-hant-hk.com', 'SERVER_NAME' => 'zh-hant-hk.com', 'REQUEST_URI' => '/zh/index.php' }],
1035
+ ['/zh/index.php#hash', 'zh-Hant-HK', '/index.php#hash', { 'HTTP_HOST' => 'zh-hant-hk.com', 'SERVER_NAME' => 'zh-hant-hk.com', 'REQUEST_URI' => '/zh/index.php' }],
1036
+ ['/zh/index.php?a=1&b=2#hash', 'zh-Hant-HK', '/index.php?a=1&b=2#hash', { 'HTTP_HOST' => 'zh-hant-hk.com', 'SERVER_NAME' => 'zh-hant-hk.com', 'REQUEST_URI' => '/zh/index.php' }],
1037
+
1038
+ # other patterns should not be changed
1039
+ ['?a=1&b=2', 'en-US', '?a=1&b=2', { 'HTTP_HOST' => 'en-us.my-site.com', 'SERVER_NAME' => 'en-us.my-site.com', 'REQUEST_URI' => '/' }],
1040
+ ['#hash', 'en-US', '#hash', { 'HTTP_HOST' => 'en-us.my-site.com', 'SERVER_NAME' => 'en-us.my-site.com', 'REQUEST_URI' => '/' }]
1041
+ ]
1042
+
1043
+ settings = {
1044
+ 'project_token' => 'T0k3N',
1045
+ 'default_lang' => 'en',
1046
+ 'supported_langs' => %w[en en-US ja zh-CHS zh-Hant-HK],
1047
+ 'url_pattern' => 'custom_domain',
1048
+ 'custom_domain_langs' => custom_domain_langs
1049
+ }
1050
+ base_env = {
1051
+ 'HTTP_HOST' => 'my-site.com',
1052
+ 'REQUEST_URI' => '/req_uri/'
1053
+ }
1054
+
1055
+ test_cases.each do |test_case|
1056
+ target_uri, lang, expected_uri, env = test_case
1057
+ additional_env = base_env.merge(env)
1058
+ store = Wovnrb::Store.instance
1059
+ store.update_settings(settings)
1060
+ url_lang_switcher = UrlLanguageSwitcher.new(store)
1061
+ headers = Wovnrb::Headers.new(
1062
+ Wovnrb.get_env(additional_env),
1063
+ store.settings,
1064
+ url_lang_switcher
1065
+ )
1066
+
1067
+ assert_equal(expected_uri, url_lang_switcher.remove_lang_from_uri_component(target_uri, lang, headers))
1068
+ end
1069
+ end
1070
+
923
1071
  def store_headers_factory(setting_opts = {}, url = 'http://my-site.com')
924
1072
  settings = default_store_settings.merge(setting_opts)
925
1073
  store = Wovnrb::Store.instance
@@ -238,6 +238,7 @@ HTML
238
238
  'rack.request.query_hash' => {},
239
239
  'rack.request.form_input' => '',
240
240
  'rack.request.form_hash' => {},
241
+ 'rack.request.form_pairs' => [],
241
242
  'HTTP_HOST' => 'test.com',
242
243
  'REQUEST_URI' => '/en/ignored',
243
244
  'PATH_INFO' => '/en/ignored'
data/wovnrb.gemspec CHANGED
@@ -25,31 +25,4 @@ Gem::Specification.new do |spec|
25
25
  spec.add_dependency 'lz4-ruby'
26
26
  spec.add_dependency 'nokogiri', '>= 1.12', '<2'
27
27
  spec.add_dependency 'rack'
28
-
29
- spec.add_development_dependency 'bundler', '>= 1.7'
30
- spec.add_development_dependency 'guard'
31
- spec.add_development_dependency 'guard-rspec'
32
- spec.add_development_dependency 'listen', '~> 3.0.6'
33
- spec.add_development_dependency 'minitest'
34
- spec.add_development_dependency 'mocha'
35
- spec.add_development_dependency 'pry'
36
- spec.add_development_dependency 'pry-nav'
37
- spec.add_development_dependency 'pry-remote'
38
- spec.add_development_dependency 'rake', '~> 10.0'
39
- spec.add_development_dependency 'rb-readline'
40
- spec.add_development_dependency 'shoulda-context'
41
- spec.add_development_dependency 'terminal-notifier'
42
- spec.add_development_dependency 'test-unit'
43
- spec.add_development_dependency 'test-unit-notify'
44
-
45
- spec.add_development_dependency 'rake-compiler'
46
- spec.add_development_dependency 'rubocop'
47
- spec.add_development_dependency 'rubocop-performance'
48
- spec.add_development_dependency 'timecop'
49
-
50
- # NOTE; it need to use webmock 2.3.2 for avoiding error when we use ruby 2.4.x.
51
- # https://github.com/bblimke/webmock/issues/683
52
- spec.add_development_dependency 'public_suffix', '~> 1.4.6'
53
- spec.add_development_dependency 'simplecov'
54
- spec.add_development_dependency 'webmock', '>= 2.3.2'
55
28
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wovnrb
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.7.2
4
+ version: 3.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Wovn Technologies, Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-11-16 00:00:00.000000000 Z
11
+ date: 2023-03-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -86,314 +86,6 @@ dependencies:
86
86
  - - ">="
87
87
  - !ruby/object:Gem::Version
88
88
  version: '0'
89
- - !ruby/object:Gem::Dependency
90
- name: bundler
91
- requirement: !ruby/object:Gem::Requirement
92
- requirements:
93
- - - ">="
94
- - !ruby/object:Gem::Version
95
- version: '1.7'
96
- type: :development
97
- prerelease: false
98
- version_requirements: !ruby/object:Gem::Requirement
99
- requirements:
100
- - - ">="
101
- - !ruby/object:Gem::Version
102
- version: '1.7'
103
- - !ruby/object:Gem::Dependency
104
- name: guard
105
- requirement: !ruby/object:Gem::Requirement
106
- requirements:
107
- - - ">="
108
- - !ruby/object:Gem::Version
109
- version: '0'
110
- type: :development
111
- prerelease: false
112
- version_requirements: !ruby/object:Gem::Requirement
113
- requirements:
114
- - - ">="
115
- - !ruby/object:Gem::Version
116
- version: '0'
117
- - !ruby/object:Gem::Dependency
118
- name: guard-rspec
119
- requirement: !ruby/object:Gem::Requirement
120
- requirements:
121
- - - ">="
122
- - !ruby/object:Gem::Version
123
- version: '0'
124
- type: :development
125
- prerelease: false
126
- version_requirements: !ruby/object:Gem::Requirement
127
- requirements:
128
- - - ">="
129
- - !ruby/object:Gem::Version
130
- version: '0'
131
- - !ruby/object:Gem::Dependency
132
- name: listen
133
- requirement: !ruby/object:Gem::Requirement
134
- requirements:
135
- - - "~>"
136
- - !ruby/object:Gem::Version
137
- version: 3.0.6
138
- type: :development
139
- prerelease: false
140
- version_requirements: !ruby/object:Gem::Requirement
141
- requirements:
142
- - - "~>"
143
- - !ruby/object:Gem::Version
144
- version: 3.0.6
145
- - !ruby/object:Gem::Dependency
146
- name: minitest
147
- requirement: !ruby/object:Gem::Requirement
148
- requirements:
149
- - - ">="
150
- - !ruby/object:Gem::Version
151
- version: '0'
152
- type: :development
153
- prerelease: false
154
- version_requirements: !ruby/object:Gem::Requirement
155
- requirements:
156
- - - ">="
157
- - !ruby/object:Gem::Version
158
- version: '0'
159
- - !ruby/object:Gem::Dependency
160
- name: mocha
161
- requirement: !ruby/object:Gem::Requirement
162
- requirements:
163
- - - ">="
164
- - !ruby/object:Gem::Version
165
- version: '0'
166
- type: :development
167
- prerelease: false
168
- version_requirements: !ruby/object:Gem::Requirement
169
- requirements:
170
- - - ">="
171
- - !ruby/object:Gem::Version
172
- version: '0'
173
- - !ruby/object:Gem::Dependency
174
- name: pry
175
- requirement: !ruby/object:Gem::Requirement
176
- requirements:
177
- - - ">="
178
- - !ruby/object:Gem::Version
179
- version: '0'
180
- type: :development
181
- prerelease: false
182
- version_requirements: !ruby/object:Gem::Requirement
183
- requirements:
184
- - - ">="
185
- - !ruby/object:Gem::Version
186
- version: '0'
187
- - !ruby/object:Gem::Dependency
188
- name: pry-nav
189
- requirement: !ruby/object:Gem::Requirement
190
- requirements:
191
- - - ">="
192
- - !ruby/object:Gem::Version
193
- version: '0'
194
- type: :development
195
- prerelease: false
196
- version_requirements: !ruby/object:Gem::Requirement
197
- requirements:
198
- - - ">="
199
- - !ruby/object:Gem::Version
200
- version: '0'
201
- - !ruby/object:Gem::Dependency
202
- name: pry-remote
203
- requirement: !ruby/object:Gem::Requirement
204
- requirements:
205
- - - ">="
206
- - !ruby/object:Gem::Version
207
- version: '0'
208
- type: :development
209
- prerelease: false
210
- version_requirements: !ruby/object:Gem::Requirement
211
- requirements:
212
- - - ">="
213
- - !ruby/object:Gem::Version
214
- version: '0'
215
- - !ruby/object:Gem::Dependency
216
- name: rake
217
- requirement: !ruby/object:Gem::Requirement
218
- requirements:
219
- - - "~>"
220
- - !ruby/object:Gem::Version
221
- version: '10.0'
222
- type: :development
223
- prerelease: false
224
- version_requirements: !ruby/object:Gem::Requirement
225
- requirements:
226
- - - "~>"
227
- - !ruby/object:Gem::Version
228
- version: '10.0'
229
- - !ruby/object:Gem::Dependency
230
- name: rb-readline
231
- requirement: !ruby/object:Gem::Requirement
232
- requirements:
233
- - - ">="
234
- - !ruby/object:Gem::Version
235
- version: '0'
236
- type: :development
237
- prerelease: false
238
- version_requirements: !ruby/object:Gem::Requirement
239
- requirements:
240
- - - ">="
241
- - !ruby/object:Gem::Version
242
- version: '0'
243
- - !ruby/object:Gem::Dependency
244
- name: shoulda-context
245
- requirement: !ruby/object:Gem::Requirement
246
- requirements:
247
- - - ">="
248
- - !ruby/object:Gem::Version
249
- version: '0'
250
- type: :development
251
- prerelease: false
252
- version_requirements: !ruby/object:Gem::Requirement
253
- requirements:
254
- - - ">="
255
- - !ruby/object:Gem::Version
256
- version: '0'
257
- - !ruby/object:Gem::Dependency
258
- name: terminal-notifier
259
- requirement: !ruby/object:Gem::Requirement
260
- requirements:
261
- - - ">="
262
- - !ruby/object:Gem::Version
263
- version: '0'
264
- type: :development
265
- prerelease: false
266
- version_requirements: !ruby/object:Gem::Requirement
267
- requirements:
268
- - - ">="
269
- - !ruby/object:Gem::Version
270
- version: '0'
271
- - !ruby/object:Gem::Dependency
272
- name: test-unit
273
- requirement: !ruby/object:Gem::Requirement
274
- requirements:
275
- - - ">="
276
- - !ruby/object:Gem::Version
277
- version: '0'
278
- type: :development
279
- prerelease: false
280
- version_requirements: !ruby/object:Gem::Requirement
281
- requirements:
282
- - - ">="
283
- - !ruby/object:Gem::Version
284
- version: '0'
285
- - !ruby/object:Gem::Dependency
286
- name: test-unit-notify
287
- requirement: !ruby/object:Gem::Requirement
288
- requirements:
289
- - - ">="
290
- - !ruby/object:Gem::Version
291
- version: '0'
292
- type: :development
293
- prerelease: false
294
- version_requirements: !ruby/object:Gem::Requirement
295
- requirements:
296
- - - ">="
297
- - !ruby/object:Gem::Version
298
- version: '0'
299
- - !ruby/object:Gem::Dependency
300
- name: rake-compiler
301
- requirement: !ruby/object:Gem::Requirement
302
- requirements:
303
- - - ">="
304
- - !ruby/object:Gem::Version
305
- version: '0'
306
- type: :development
307
- prerelease: false
308
- version_requirements: !ruby/object:Gem::Requirement
309
- requirements:
310
- - - ">="
311
- - !ruby/object:Gem::Version
312
- version: '0'
313
- - !ruby/object:Gem::Dependency
314
- name: rubocop
315
- requirement: !ruby/object:Gem::Requirement
316
- requirements:
317
- - - ">="
318
- - !ruby/object:Gem::Version
319
- version: '0'
320
- type: :development
321
- prerelease: false
322
- version_requirements: !ruby/object:Gem::Requirement
323
- requirements:
324
- - - ">="
325
- - !ruby/object:Gem::Version
326
- version: '0'
327
- - !ruby/object:Gem::Dependency
328
- name: rubocop-performance
329
- requirement: !ruby/object:Gem::Requirement
330
- requirements:
331
- - - ">="
332
- - !ruby/object:Gem::Version
333
- version: '0'
334
- type: :development
335
- prerelease: false
336
- version_requirements: !ruby/object:Gem::Requirement
337
- requirements:
338
- - - ">="
339
- - !ruby/object:Gem::Version
340
- version: '0'
341
- - !ruby/object:Gem::Dependency
342
- name: timecop
343
- requirement: !ruby/object:Gem::Requirement
344
- requirements:
345
- - - ">="
346
- - !ruby/object:Gem::Version
347
- version: '0'
348
- type: :development
349
- prerelease: false
350
- version_requirements: !ruby/object:Gem::Requirement
351
- requirements:
352
- - - ">="
353
- - !ruby/object:Gem::Version
354
- version: '0'
355
- - !ruby/object:Gem::Dependency
356
- name: public_suffix
357
- requirement: !ruby/object:Gem::Requirement
358
- requirements:
359
- - - "~>"
360
- - !ruby/object:Gem::Version
361
- version: 1.4.6
362
- type: :development
363
- prerelease: false
364
- version_requirements: !ruby/object:Gem::Requirement
365
- requirements:
366
- - - "~>"
367
- - !ruby/object:Gem::Version
368
- version: 1.4.6
369
- - !ruby/object:Gem::Dependency
370
- name: simplecov
371
- requirement: !ruby/object:Gem::Requirement
372
- requirements:
373
- - - ">="
374
- - !ruby/object:Gem::Version
375
- version: '0'
376
- type: :development
377
- prerelease: false
378
- version_requirements: !ruby/object:Gem::Requirement
379
- requirements:
380
- - - ">="
381
- - !ruby/object:Gem::Version
382
- version: '0'
383
- - !ruby/object:Gem::Dependency
384
- name: webmock
385
- requirement: !ruby/object:Gem::Requirement
386
- requirements:
387
- - - ">="
388
- - !ruby/object:Gem::Version
389
- version: 2.3.2
390
- type: :development
391
- prerelease: false
392
- version_requirements: !ruby/object:Gem::Requirement
393
- requirements:
394
- - - ">="
395
- - !ruby/object:Gem::Version
396
- version: 2.3.2
397
89
  description: Ruby gem for WOVN backend on Rack.
398
90
  email:
399
91
  - dev@wovn.io
@@ -531,6 +223,9 @@ files:
531
223
  - docker/scripts/jenkins/taskdef.json.bak
532
224
  - lib/wovnrb.rb
533
225
  - lib/wovnrb/api_translator.rb
226
+ - lib/wovnrb/custom_domain/custom_domain_lang.rb
227
+ - lib/wovnrb/custom_domain/custom_domain_lang_url_handler.rb
228
+ - lib/wovnrb/custom_domain/custom_domain_langs.rb
534
229
  - lib/wovnrb/headers.rb
535
230
  - lib/wovnrb/helpers/nokogumbo_helper.rb
536
231
  - lib/wovnrb/lang.rb
@@ -547,6 +242,9 @@ files:
547
242
  - test/fixtures/html/test.html
548
243
  - test/fixtures/html/test_translated.html
549
244
  - test/lib/api_translator_test.rb
245
+ - test/lib/custom_domain/custom_domain_lang_test.rb
246
+ - test/lib/custom_domain/custom_domain_lang_url_handler_test.rb
247
+ - test/lib/custom_domain/custom_domain_langs_test.rb
550
248
  - test/lib/headers_test.rb
551
249
  - test/lib/lang_test.rb
552
250
  - test/lib/services/glob_test.rb
@@ -579,7 +277,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
579
277
  - !ruby/object:Gem::Version
580
278
  version: '0'
581
279
  requirements: []
582
- rubygems_version: 3.1.4
280
+ rubygems_version: 3.4.8
583
281
  signing_key:
584
282
  specification_version: 4
585
283
  summary: Gem for WOVN.io