wovnrb 0.2.01 → 0.2.02
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 +4 -4
- data/.gitignore +3 -6
- data/README.md +116 -12
- data/lib/wovnrb/api_data.rb +59 -0
- data/lib/wovnrb/headers.rb +30 -5
- data/lib/wovnrb/html_replacers/image_replacer.rb +44 -0
- data/lib/wovnrb/html_replacers/link_replacer.rb +18 -0
- data/lib/wovnrb/html_replacers/meta_replacer.rb +20 -0
- data/lib/wovnrb/html_replacers/replacer_base.rb +17 -0
- data/lib/wovnrb/html_replacers/script_replacer.rb +39 -0
- data/lib/wovnrb/html_replacers/text_replacer.rb +19 -0
- data/lib/wovnrb/lang.rb +133 -23
- data/lib/wovnrb/services/url.rb +2 -68
- data/lib/wovnrb/services/wovn_logger.rb +45 -0
- data/lib/wovnrb/store.rb +19 -38
- data/lib/wovnrb/text_caches/cache_base.rb +52 -0
- data/lib/wovnrb/text_caches/memory_cache.rb +52 -0
- data/lib/wovnrb/version.rb +1 -1
- data/lib/wovnrb.rb +19 -224
- data/test/lib/api_data_test.rb +62 -0
- data/test/lib/headers_test.rb +1221 -1212
- data/test/lib/html_replacers/image_replacer_test.rb +86 -0
- data/test/lib/html_replacers/link_replacer_test.rb +43 -0
- data/test/lib/html_replacers/meta_replacer_test.rb +105 -0
- data/test/lib/html_replacers/replacer_base_test.rb +31 -0
- data/test/lib/html_replacers/script_replacer_test.rb +90 -0
- data/test/lib/html_replacers/text_replacer_test.rb +57 -0
- data/test/lib/lang_test.rb +446 -33
- data/test/lib/services/wovn_logger_test.rb +40 -0
- data/test/lib/store_test.rb +39 -29
- data/test/lib/text_caches/cache_base_test.rb +31 -0
- data/test/lib/text_caches/memory_cache_test.rb +91 -0
- data/test/lib/wovnrb_test.rb +39 -886
- data/test/test_helper.rb +96 -1
- data/wovnrb.gemspec +4 -0
- metadata +89 -2
data/test/test_helper.rb
CHANGED
@@ -1 +1,96 @@
|
|
1
|
-
|
1
|
+
require 'nokogumbo'
|
2
|
+
require 'wovnrb/headers'
|
3
|
+
require 'wovnrb/lang'
|
4
|
+
require 'wovnrb/store'
|
5
|
+
require 'wovnrb/html_replacers/replacer_base'
|
6
|
+
require 'wovnrb/html_replacers/link_replacer'
|
7
|
+
require 'wovnrb/html_replacers/text_replacer'
|
8
|
+
require 'wovnrb/html_replacers/meta_replacer'
|
9
|
+
require 'wovnrb/html_replacers/image_replacer'
|
10
|
+
require 'wovnrb/html_replacers/script_replacer'
|
11
|
+
require 'minitest/autorun'
|
12
|
+
|
13
|
+
|
14
|
+
module Wovnrb
|
15
|
+
class WovnMiniTest < Minitest::Test
|
16
|
+
def before_setup
|
17
|
+
super
|
18
|
+
Wovnrb::Store.instance.reset
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
class LogMock
|
23
|
+
attr_accessor :errors
|
24
|
+
|
25
|
+
def self.mock_log
|
26
|
+
Store.instance.settings['log_path'] = nil
|
27
|
+
mock = self.new
|
28
|
+
WovnLogger.instance.set_logger(mock)
|
29
|
+
mock
|
30
|
+
end
|
31
|
+
|
32
|
+
def initialize
|
33
|
+
@errors= []
|
34
|
+
end
|
35
|
+
|
36
|
+
def error(message)
|
37
|
+
@errors << message
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def get_settings(options={})
|
42
|
+
settings = {}
|
43
|
+
settings['user_token'] = 'OHYx9'
|
44
|
+
settings['url_pattern'] = 'path'
|
45
|
+
settings['url_pattern_reg'] = "/(?<lang>[^/.?]+)"
|
46
|
+
settings['query'] = []
|
47
|
+
settings['api_url'] = 'http://localhost/v0/values'
|
48
|
+
settings['default_lang'] = 'en'
|
49
|
+
settings['supported_langs'] = ['en', 'ja']
|
50
|
+
settings['secret_key'] = 'secret_key'
|
51
|
+
return settings.merge(options)
|
52
|
+
end
|
53
|
+
|
54
|
+
def get_env(options={})
|
55
|
+
env = {}
|
56
|
+
env['rack.url_scheme'] = 'http'
|
57
|
+
env['HTTP_HOST'] = 'wovn.io'
|
58
|
+
env['REQUEST_URI'] = '/dashboard?param=val&hey=you'
|
59
|
+
env['SERVER_NAME'] = 'wovn.io'
|
60
|
+
env['HTTP_COOKIE'] = "olfsk=olfsk021093478426337242; hblid=KB8AAMzxzu2DSxnB4X7BJ26rBGVeF0yJ; optimizelyEndUserId=oeu1426233718869r0.5398541854228824; __zlcmid=UFeZqrVo6Mv3Yl; wovn_selected_lang=en; optimizelySegments=%7B%7D; optimizelyBuckets=%7B%7D; _equalizer_session=eDFwM3M2QUZJZFhoby9JZlArckcvSUJwNFRINXhUeUxtNnltQXZhV0tqdGhZQjJMZ01URnZTK05ydFVWYmM3U0dtMVN0M0Z0UnNDVG8vdUNDTUtPc21jY0FHREgrZ05CUnBTb0hyUlkvYlBWQVhQR3RZdnhjMWsrRW5rOVp1Z3V3bkgyd3NpSlRZQWU1dlZvNmM1THp6aUZVeE83Y1pWWENRNTBUVFIrV05WeTdDMlFlem1tUzdxaEtndFZBd2dtUjU2ak5EUmJPa3RWWmMyT1pSVWdMTm8zOVZhUWhHdGQ3L1c5bm91RmNSdFRrcC90Tml4N2t3ZWlBaDRya2lLT1I0S0J2TURhUWl6Uk5rOTQ4Y1MwM3VKYnlLMUYraEt5clhRdFd1eGdEWXdZd3pFbWQvdE9vQndhdDVQbXNLcHBURm9CbnZKenU2YnNXRFdqRVl0MVV3bmRyYjhvMDExcGtUVU9tK1lqUGswM3p6M05tbVRnTjE3TUl5cEdpTTZ4a2gray8xK0FvTC9wUDVka1JSeE5GM1prZmRjWDdyVzRhWW5uS2Mxc1BxOEVVTTZFS3N5bTlVN2p5eE5YSjNZWGI2UHd3Vzc0bDM5QjIwL0l5Mm85NmQyWFAwdVQ3ZzJYYk1QOHY2NVJpY2c9LS1KNU96eHVycVJxSDJMbEc4Rm9KVXpBPT0%3D--17e47555d692fb9cde20ef78a09a5eabbf805bb3; mp_a0452663eb7abb7dfa9c94007ebb0090_mixpanel=%7B%22distinct_id%22%3A%20%2253ed9ffa4a65662e37000000%22%2C%22%24initial_referrer%22%3A%20%22http%3A%2F%2Fp.dev-wovn.io%3A8080%2Fhttp%3A%2F%2Fdev-wovn.io%3A3000%22%2C%22%24initial_referring_domain%22%3A%20%22p.dev-wovn.io%3A8080%22%2C%22__mps%22%3A%20%7B%7D%2C%22__mpso%22%3A%20%7B%7D%2C%22__mpa%22%3A%20%7B%7D%2C%22__mpu%22%3A%20%7B%7D%2C%22__mpap%22%3A%20%5B%5D%7D"
|
61
|
+
env['HTTP_ACCEPT_LANGUAGE'] = 'ja,en-US;q=0.8,en;q=0.6'
|
62
|
+
env['QUERY_STRING'] = 'param=val&hey=you'
|
63
|
+
env['ORIGINAL_FULLPATH'] = '/dashboard?param=val&hey=you'
|
64
|
+
#env['HTTP_REFERER'] =
|
65
|
+
env['REQUEST_PATH'] = '/dashboard'
|
66
|
+
env['PATH_INFO'] = '/dashboard'
|
67
|
+
|
68
|
+
if options['url']
|
69
|
+
url = URI.parse(options['url'])
|
70
|
+
env['rack.url_scheme'] = url.scheme
|
71
|
+
env['HTTP_HOST'] = url.host
|
72
|
+
if (url.scheme == 'http' && url.port != 80) || (url.scheme == 'https' && url.port != 443)
|
73
|
+
env['HTTP_HOST'] += ":#{url.port}"
|
74
|
+
end
|
75
|
+
env['SERVER_NAME'] = url.host
|
76
|
+
env['REQUEST_URI'] = url.request_uri
|
77
|
+
env['ORIGINAL_FULLPATH'] = url.request_uri
|
78
|
+
env['QUERY_STRING'] = url.query
|
79
|
+
env['REQUEST_PATH'] = url.path
|
80
|
+
env['PATH_INFO'] = url.path
|
81
|
+
end
|
82
|
+
return env.merge(options)
|
83
|
+
end
|
84
|
+
|
85
|
+
def to_dom(html)
|
86
|
+
dom = Nokogiri::HTML5(html)
|
87
|
+
dom.encoding = "UTF-8"
|
88
|
+
dom
|
89
|
+
end
|
90
|
+
|
91
|
+
def get_dom(innerHTML)
|
92
|
+
to_dom("<html><body>#{innerHTML}</body></html>")
|
93
|
+
end
|
94
|
+
|
95
|
+
module_function :get_env, :get_settings, :to_dom, :get_dom
|
96
|
+
end
|
data/wovnrb.gemspec
CHANGED
@@ -26,6 +26,8 @@ Gem::Specification.new do |spec|
|
|
26
26
|
#spec.extensions = spec.files.grep(%r{/extconf\.rb$})
|
27
27
|
|
28
28
|
spec.add_dependency "nokogumbo", "1.3.0"
|
29
|
+
spec.add_dependency "activesupport"
|
30
|
+
spec.add_dependency "lz4-ruby"
|
29
31
|
|
30
32
|
spec.add_development_dependency "bundler", "~> 1.7"
|
31
33
|
spec.add_development_dependency "rake", "~> 10.0"
|
@@ -44,6 +46,8 @@ Gem::Specification.new do |spec|
|
|
44
46
|
#spec.add_development_dependency "rice"
|
45
47
|
spec.add_development_dependency "rake-compiler"
|
46
48
|
spec.add_development_dependency "geminabox"
|
49
|
+
spec.add_development_dependency "timecop"
|
50
|
+
spec.add_development_dependency "webmock"
|
47
51
|
|
48
52
|
end
|
49
53
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wovnrb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.02
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeff Sandford
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-
|
12
|
+
date: 2016-04-21 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogumbo
|
@@ -25,6 +25,34 @@ dependencies:
|
|
25
25
|
- - '='
|
26
26
|
- !ruby/object:Gem::Version
|
27
27
|
version: 1.3.0
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: activesupport
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - ">="
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '0'
|
35
|
+
type: :runtime
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - ">="
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '0'
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: lz4-ruby
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - ">="
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '0'
|
49
|
+
type: :runtime
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - ">="
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '0'
|
28
56
|
- !ruby/object:Gem::Dependency
|
29
57
|
name: bundler
|
30
58
|
requirement: !ruby/object:Gem::Requirement
|
@@ -207,6 +235,34 @@ dependencies:
|
|
207
235
|
- - ">="
|
208
236
|
- !ruby/object:Gem::Version
|
209
237
|
version: '0'
|
238
|
+
- !ruby/object:Gem::Dependency
|
239
|
+
name: timecop
|
240
|
+
requirement: !ruby/object:Gem::Requirement
|
241
|
+
requirements:
|
242
|
+
- - ">="
|
243
|
+
- !ruby/object:Gem::Version
|
244
|
+
version: '0'
|
245
|
+
type: :development
|
246
|
+
prerelease: false
|
247
|
+
version_requirements: !ruby/object:Gem::Requirement
|
248
|
+
requirements:
|
249
|
+
- - ">="
|
250
|
+
- !ruby/object:Gem::Version
|
251
|
+
version: '0'
|
252
|
+
- !ruby/object:Gem::Dependency
|
253
|
+
name: webmock
|
254
|
+
requirement: !ruby/object:Gem::Requirement
|
255
|
+
requirements:
|
256
|
+
- - ">="
|
257
|
+
- !ruby/object:Gem::Version
|
258
|
+
version: '0'
|
259
|
+
type: :development
|
260
|
+
prerelease: false
|
261
|
+
version_requirements: !ruby/object:Gem::Requirement
|
262
|
+
requirements:
|
263
|
+
- - ">="
|
264
|
+
- !ruby/object:Gem::Version
|
265
|
+
version: '0'
|
210
266
|
description: ALPHA VERSION, not in a useable form.
|
211
267
|
email:
|
212
268
|
- jeff@wovn.io
|
@@ -223,18 +279,38 @@ files:
|
|
223
279
|
- circle.yml
|
224
280
|
- ext/dom/Makefile
|
225
281
|
- lib/wovnrb.rb
|
282
|
+
- lib/wovnrb/api_data.rb
|
226
283
|
- lib/wovnrb/headers.rb
|
284
|
+
- lib/wovnrb/html_replacers/image_replacer.rb
|
285
|
+
- lib/wovnrb/html_replacers/link_replacer.rb
|
286
|
+
- lib/wovnrb/html_replacers/meta_replacer.rb
|
287
|
+
- lib/wovnrb/html_replacers/replacer_base.rb
|
288
|
+
- lib/wovnrb/html_replacers/script_replacer.rb
|
289
|
+
- lib/wovnrb/html_replacers/text_replacer.rb
|
227
290
|
- lib/wovnrb/lang.rb
|
228
291
|
- lib/wovnrb/railtie.rb
|
229
292
|
- lib/wovnrb/services/url.rb
|
293
|
+
- lib/wovnrb/services/wovn_logger.rb
|
230
294
|
- lib/wovnrb/store.rb
|
295
|
+
- lib/wovnrb/text_caches/cache_base.rb
|
296
|
+
- lib/wovnrb/text_caches/memory_cache.rb
|
231
297
|
- lib/wovnrb/version.rb
|
232
298
|
- spec/spec_helper.rb
|
233
299
|
- spec/wovnrb_spec.rb
|
300
|
+
- test/lib/api_data_test.rb
|
234
301
|
- test/lib/headers_test.rb
|
302
|
+
- test/lib/html_replacers/image_replacer_test.rb
|
303
|
+
- test/lib/html_replacers/link_replacer_test.rb
|
304
|
+
- test/lib/html_replacers/meta_replacer_test.rb
|
305
|
+
- test/lib/html_replacers/replacer_base_test.rb
|
306
|
+
- test/lib/html_replacers/script_replacer_test.rb
|
307
|
+
- test/lib/html_replacers/text_replacer_test.rb
|
235
308
|
- test/lib/lang_test.rb
|
236
309
|
- test/lib/services/url_test.rb
|
310
|
+
- test/lib/services/wovn_logger_test.rb
|
237
311
|
- test/lib/store_test.rb
|
312
|
+
- test/lib/text_caches/cache_base_test.rb
|
313
|
+
- test/lib/text_caches/memory_cache_test.rb
|
238
314
|
- test/lib/wovnrb_test.rb
|
239
315
|
- test/services/url_test.rb
|
240
316
|
- test/test_helper.rb
|
@@ -267,10 +343,21 @@ summary: Gem for WOVN.io
|
|
267
343
|
test_files:
|
268
344
|
- spec/spec_helper.rb
|
269
345
|
- spec/wovnrb_spec.rb
|
346
|
+
- test/lib/api_data_test.rb
|
270
347
|
- test/lib/headers_test.rb
|
348
|
+
- test/lib/html_replacers/image_replacer_test.rb
|
349
|
+
- test/lib/html_replacers/link_replacer_test.rb
|
350
|
+
- test/lib/html_replacers/meta_replacer_test.rb
|
351
|
+
- test/lib/html_replacers/replacer_base_test.rb
|
352
|
+
- test/lib/html_replacers/script_replacer_test.rb
|
353
|
+
- test/lib/html_replacers/text_replacer_test.rb
|
271
354
|
- test/lib/lang_test.rb
|
272
355
|
- test/lib/services/url_test.rb
|
356
|
+
- test/lib/services/wovn_logger_test.rb
|
273
357
|
- test/lib/store_test.rb
|
358
|
+
- test/lib/text_caches/cache_base_test.rb
|
359
|
+
- test/lib/text_caches/memory_cache_test.rb
|
274
360
|
- test/lib/wovnrb_test.rb
|
275
361
|
- test/services/url_test.rb
|
276
362
|
- test/test_helper.rb
|
363
|
+
has_rdoc:
|