wovnrb 0.1.79 → 0.1.80
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 +2 -1
- data/.travis.yml +5 -0
- data/circle.yml +8 -0
- data/lib/wovnrb.rb +11 -3
- data/lib/wovnrb/store.rb +25 -33
- data/lib/wovnrb/version.rb +1 -1
- data/spec/spec_helper.rb +1 -1
- data/test/lib/headers_test.rb +1 -2
- data/test/lib/store_test.rb +37 -0
- data/test/lib/wovnrb_test.rb +27 -10
- data/test/services/url_test.rb +1 -1
- data/wovnrb.gemspec +0 -1
- metadata +36 -47
- data/.ruby-version +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f0d481a935a4b41b24d790ef3652d6922d1435c3
|
4
|
+
data.tar.gz: a885a5859edc04170ce1a078c8a84ce4d554b0c0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4ea5bbe493481c7f827a1ffae7c0ad443de64e5977368165aba51ae94cf577489c025aafbbf6cfaca43f2b5226a8efcd24dc3d46d541f4e48261f77c570706cc
|
7
|
+
data.tar.gz: 15e76d5ea1a873e738d02820b07d00bc11305faec6facea7efbf2b115746455cac3693c1f323cf2da44f38d8e17a68f5cdd50abe38108a14566b06412e352a39
|
data/.gitignore
CHANGED
data/.travis.yml
ADDED
data/circle.yml
ADDED
data/lib/wovnrb.rb
CHANGED
@@ -12,8 +12,10 @@ module Wovnrb
|
|
12
12
|
STORE = Store.new
|
13
13
|
|
14
14
|
class Interceptor
|
15
|
-
def initialize(app)
|
15
|
+
def initialize(app, opts={})
|
16
16
|
@app = app
|
17
|
+
opts = opts.each_with_object({}){|(k,v),memo| memo[k.to_s]=v}
|
18
|
+
STORE.settings(opts)
|
17
19
|
end
|
18
20
|
|
19
21
|
def call(env)
|
@@ -139,7 +141,7 @@ module Wovnrb
|
|
139
141
|
d.encoding = "UTF-8"
|
140
142
|
|
141
143
|
# If this page has wovn-ignore in the html tag, don't do anything
|
142
|
-
if ignore_all || d.xpath('//html[@wovn-ignore]').
|
144
|
+
if ignore_all || !d.xpath('//html[@wovn-ignore]').empty?
|
143
145
|
ignore_all = true
|
144
146
|
output = d.to_html.gsub(/href="([^"]*)"/) { |m| "href=\"#{URI.decode($1)}\"" }
|
145
147
|
new_body.push(output)
|
@@ -168,7 +170,7 @@ module Wovnrb
|
|
168
170
|
# swap meta tag values
|
169
171
|
d.xpath('//meta').select { |t|
|
170
172
|
next if check_wovn_ignore(t)
|
171
|
-
(t.get_attribute('name') || t.get_attribute('property') || '') =~ /^(description|
|
173
|
+
(t.get_attribute('name') || t.get_attribute('property') || '') =~ /^(description|title|og:title|og:description|twitter:title|twitter:description)$/
|
172
174
|
}.each do |node|
|
173
175
|
node_content = node.get_attribute('content').strip
|
174
176
|
# shouldn't need size check, but for now...
|
@@ -199,6 +201,12 @@ module Wovnrb
|
|
199
201
|
node.attribute('src').value = "#{img_src_prefix}#{src_index[src][lang][0]['data']}"
|
200
202
|
end
|
201
203
|
end
|
204
|
+
if node.get_attribute('alt')
|
205
|
+
alt = node.get_attribute('alt').strip
|
206
|
+
if text_index[alt] && text_index[alt][lang] && text_index[alt][lang].size > 0
|
207
|
+
node.attribute('alt').value = alt.gsub(/^(\s*)[\S\s]*(\s*)$/, '\1' + text_index[alt][lang][0]['data'] + '\2')
|
208
|
+
end
|
209
|
+
end
|
202
210
|
end
|
203
211
|
|
204
212
|
# REMOVE WIDGET
|
data/lib/wovnrb/store.rb
CHANGED
@@ -1,13 +1,11 @@
|
|
1
|
-
require 'redis'
|
2
1
|
require 'net/http'
|
3
|
-
require '
|
2
|
+
require 'uri'
|
4
3
|
require 'cgi'
|
5
|
-
require '
|
4
|
+
require 'logger' unless defined?(Logger)
|
6
5
|
|
7
6
|
module Wovnrb
|
8
7
|
|
9
8
|
class Store
|
10
|
-
attr_reader :settings
|
11
9
|
|
12
10
|
def initialize
|
13
11
|
@settings =
|
@@ -21,8 +19,7 @@ module Wovnrb
|
|
21
19
|
#'url_pattern' => 'subdomain',
|
22
20
|
#'url_pattern_reg' => "^(?<lang>[^.]+)\.",
|
23
21
|
'query' => [],
|
24
|
-
'
|
25
|
-
'backend_port' => '6379',
|
22
|
+
'api_url' => 'https://api.wovn.io/v0/values',
|
26
23
|
'default_lang' => 'en',
|
27
24
|
'supported_langs' => ['en'],
|
28
25
|
'test_mode' => false,
|
@@ -54,13 +51,9 @@ module Wovnrb
|
|
54
51
|
valid = false
|
55
52
|
errors.push("query config #{settings['query']} is not valid.");
|
56
53
|
end
|
57
|
-
if !settings.has_key?('
|
54
|
+
if !settings.has_key?('api_url') || settings['api_url'].length == 0
|
58
55
|
valid = false
|
59
|
-
errors.push("
|
60
|
-
end
|
61
|
-
if !settings.has_key?('backend_port') || settings['backend_port'].length == 0
|
62
|
-
valid = false
|
63
|
-
errors.push("Backend port is not configured.");
|
56
|
+
errors.push("API URL is not configured.")
|
64
57
|
end
|
65
58
|
if !settings.has_key?('default_lang') || settings['default_lang'].length == 0
|
66
59
|
valid = false
|
@@ -83,7 +76,12 @@ module Wovnrb
|
|
83
76
|
# Returns the settings object, pulling from Rails config the first time this is called
|
84
77
|
#
|
85
78
|
# @return [Hash] The settings which are pulled from the config file given by the user and filled in by defaults
|
86
|
-
def settings
|
79
|
+
def settings(*opts)
|
80
|
+
if !opts.first.nil?
|
81
|
+
@settings.merge!(opts.first)
|
82
|
+
@config_loaded = false
|
83
|
+
end
|
84
|
+
|
87
85
|
if !@config_loaded
|
88
86
|
# get Rails config.wovnrb
|
89
87
|
if Object.const_defined?('Rails') && Rails.configuration.respond_to?(:wovnrb)
|
@@ -98,7 +96,6 @@ module Wovnrb
|
|
98
96
|
end
|
99
97
|
|
100
98
|
# fix settings object
|
101
|
-
@settings['backend_port'] = @settings['backend_port'].to_s
|
102
99
|
@settings['default_lang'] = Lang.get_code(@settings['default_lang'])
|
103
100
|
if !@settings.has_key?('supported_langs')
|
104
101
|
@settings['supported_langs'] = [@settings['default_lang']]
|
@@ -127,30 +124,25 @@ module Wovnrb
|
|
127
124
|
# @return [Hash] The values Hash for the passed in url
|
128
125
|
def get_values(url)
|
129
126
|
url = url.gsub(/\/$/, '')
|
130
|
-
redis_key = 'WOVN:BACKEND:STORAGE:' + url + ':' + settings['user_token']
|
131
|
-
cli = Redis.new(host: settings['backend_host'], port: settings['backend_port'])
|
132
127
|
|
133
128
|
begin
|
134
|
-
|
135
|
-
|
129
|
+
uri = URI.parse("#{settings['api_url']}?token=#{settings['user_token']}&url=#{url}")
|
130
|
+
http = Net::HTTP.new(uri.host, uri.port)
|
131
|
+
http.use_ssl = true if uri.scheme == 'https'
|
132
|
+
res = http.start {
|
133
|
+
http.get(uri.request_uri)
|
134
|
+
}
|
135
|
+
if res.code == "200"
|
136
|
+
vals = JSON.parse(res.body || '{}')
|
137
|
+
else
|
138
|
+
vals = {}
|
139
|
+
end
|
136
140
|
rescue
|
137
|
-
logger = Logger.new('../error.log')
|
138
|
-
logger.error("Redis GET request failed with the following parameters:\nhost: #{settings['backend_host']}\nport: #{settings['backend_port']}\nkey: #{redis_key}")
|
139
141
|
vals = {}
|
142
|
+
logger = Logger.new('../error.log')
|
143
|
+
logger.error("API server GET request failed with the following parameters:\napi_url: #{settings['api_url']}\ntoken: #{settings['user_token']}\nurl: #{url}")
|
140
144
|
end
|
141
|
-
|
142
|
-
host = 'ee.wovn.io'
|
143
|
-
post_data = "{\"user_token\":\"#{settings['user_token']}\", \"url\":#{url.to_json}}"
|
144
|
-
headers = "Host: #{host}\r\nContent-Type: application/json;charset=UTF-8\r\nContent-Length: #{post_data.bytesize}\r\nConnection: close\r\n\r\n"
|
145
|
-
s = TCPSocket.new(host, 80)
|
146
|
-
s.puts "POST /pages/cache_backend HTTP/1.1\r\n#{headers}#{post_data}"
|
147
|
-
s.close
|
148
|
-
end
|
149
|
-
# handle this on the widget
|
150
|
-
#if vals.empty?
|
151
|
-
# uri = URI.parse('http://api.wovn.io/v0/page/add')
|
152
|
-
# Net::HTTP.post_form(uri, :user_token => user_token, :secret_key => @settings['secret_key'], :url => url)
|
153
|
-
#end
|
145
|
+
|
154
146
|
vals
|
155
147
|
end
|
156
148
|
|
data/lib/wovnrb/version.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
@@ -1,2 +1,2 @@
|
|
1
1
|
require 'pry'
|
2
|
-
require '
|
2
|
+
require 'wovnrb'
|
data/test/lib/headers_test.rb
CHANGED
@@ -5821,8 +5821,7 @@ class HeadersTest < Minitest::Test
|
|
5821
5821
|
settings['url_pattern'] = 'path'
|
5822
5822
|
settings['url_pattern_reg'] = "/(?<lang>[^/.?]+)"
|
5823
5823
|
settings['query'] = []
|
5824
|
-
settings['
|
5825
|
-
settings['backend_port'] = '6379'
|
5824
|
+
settings['api_url'] = 'http://localhost/v0/values'
|
5826
5825
|
settings['default_lang'] = 'en'
|
5827
5826
|
settings['supported_langs'] = []
|
5828
5827
|
settings['secret_key'] = ''
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'wovnrb/store'
|
2
|
+
require 'minitest/autorun'
|
3
|
+
|
4
|
+
class StoreTest < Minitest::Test
|
5
|
+
def test_initialize
|
6
|
+
s = Wovnrb::Store.new
|
7
|
+
refute_nil(s)
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_settings_no_parameters
|
11
|
+
s = Wovnrb::Store.new
|
12
|
+
assert_equal('path', s.settings['url_pattern'])
|
13
|
+
assert_equal('/(?<lang>[^/.?]+)', s.settings['url_pattern_reg'])
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_settings_url_pattern_path
|
17
|
+
s = Wovnrb::Store.new
|
18
|
+
s.settings({'url_pattern' => 'path'})
|
19
|
+
assert_equal('path', s.settings['url_pattern'])
|
20
|
+
assert_equal('/(?<lang>[^/.?]+)', s.settings['url_pattern_reg'])
|
21
|
+
end
|
22
|
+
|
23
|
+
def test_settings_url_pattern_subdomain
|
24
|
+
s = Wovnrb::Store.new
|
25
|
+
s.settings({'url_pattern' => 'subdomain'})
|
26
|
+
assert_equal("^(?<lang>[^.]+)\.", s.settings['url_pattern_reg'])
|
27
|
+
assert_equal('subdomain', s.settings['url_pattern'])
|
28
|
+
end
|
29
|
+
|
30
|
+
def test_settings_url_pattern_query
|
31
|
+
s = Wovnrb::Store.new
|
32
|
+
s.settings({'url_pattern' => 'query'})
|
33
|
+
assert_equal('((\\?.*&)|\\?)wovn=(?<lang>[^&]+)(&|$)', s.settings['url_pattern_reg'])
|
34
|
+
assert_equal('query', s.settings['url_pattern'])
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
data/test/lib/wovnrb_test.rb
CHANGED
@@ -294,7 +294,7 @@ class WovnrbTest < Minitest::Test
|
|
294
294
|
body = "<html lang=\"ja\">
|
295
295
|
<head>
|
296
296
|
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">
|
297
|
-
<script src=\"//j.wovn.io/
|
297
|
+
<script src=\"//j.wovn.io/1\" async=\"true\" data-wovnio=\"key=&backend=true&currentLang=ja&defaultLang=en&urlPattern=path&version=#{Wovnrb::VERSION}\"> </script><link rel=\"alternate\" hreflang=\"ja\" href=\"http://ja.ignore-page.com/\">
|
298
298
|
</head>
|
299
299
|
<body>
|
300
300
|
<h1>ベルベデアさんファンクラブ</h1>
|
@@ -306,7 +306,7 @@ class WovnrbTest < Minitest::Test
|
|
306
306
|
body = "<html lang=\"ja\">
|
307
307
|
<head>
|
308
308
|
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">
|
309
|
-
<script src=\"//j.wovn.io/
|
309
|
+
<script src=\"//j.wovn.io/1\" async=\"true\" data-wovnio=\"key=&backend=true&currentLang=ja&defaultLang=en&urlPattern=path&version=#{Wovnrb::VERSION}\"> </script><link rel=\"alternate\" hreflang=\"ja\" href=\"http://ja.page.com/\">
|
310
310
|
</head>
|
311
311
|
<body>
|
312
312
|
<h1>ベルベデアさんファンクラブ</h1>
|
@@ -318,7 +318,7 @@ class WovnrbTest < Minitest::Test
|
|
318
318
|
body = "<html lang=\"ja\">
|
319
319
|
<head>
|
320
320
|
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">
|
321
|
-
<script src=\"//j.wovn.io/
|
321
|
+
<script src=\"//j.wovn.io/1\" async=\"true\" data-wovnio=\"key=&backend=true&currentLang=ja&defaultLang=en&urlPattern=path&version=#{Wovnrb::VERSION}\"> </script><link rel=\"alternate\" hreflang=\"ja\" href=\"http://ja.ignore-page.com/\">
|
322
322
|
</head>
|
323
323
|
<body wovn-ignore=\"\">
|
324
324
|
<h1>Mr. Belvedere Fan Club</h1>
|
@@ -337,15 +337,23 @@ class WovnrbTest < Minitest::Test
|
|
337
337
|
when "value_double_quote"
|
338
338
|
body = "<html><body><h1>Mr.BelvedereFanClub</h1><div wovn-ignore=\"value\"><p>Hello</p></div></body></html>"
|
339
339
|
when "empty_translated"
|
340
|
-
body = "<html lang=\"ja\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n<script src=\"//j.wovn.io/
|
340
|
+
body = "<html lang=\"ja\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n<script src=\"//j.wovn.io/1\" async=\"true\" data-wovnio=\"key=&backend=true&currentLang=ja&defaultLang=en&urlPattern=path&version=#{Wovnrb::VERSION}\"> </script><link rel=\"alternate\" hreflang=\"ja\" href=\"http://ja.ignore-page.com/\">\n</head>\n<body>\n<h1>Mr.BelvedereFanClub</h1>\n<div wovn-ignore=\"\"><p>Hello</p></div>\n</body>\n</html>\n"
|
341
341
|
when "empty_single_quote_translated"
|
342
|
-
body = "<html lang=\"ja\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n<script src=\"//j.wovn.io/
|
342
|
+
body = "<html lang=\"ja\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n<script src=\"//j.wovn.io/1\" async=\"true\" data-wovnio=\"key=&backend=true&currentLang=ja&defaultLang=en&urlPattern=path&version=#{Wovnrb::VERSION}\"> </script><link rel=\"alternate\" hreflang=\"ja\" href=\"http://ja.ignore-page.com/\">\n</head>\n<body>\n<h1>Mr.BelvedereFanClub</h1>\n<div wovn-ignore=\"\"><p>Hello</p></div>\n</body>\n</html>\n"
|
343
343
|
when "empty_double_quote_translated"
|
344
|
-
body = "<html lang=\"ja\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n<script src=\"//j.wovn.io/
|
344
|
+
body = "<html lang=\"ja\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n<script src=\"//j.wovn.io/1\" async=\"true\" data-wovnio=\"key=&backend=true&currentLang=ja&defaultLang=en&urlPattern=path&version=#{Wovnrb::VERSION}\"> </script><link rel=\"alternate\" hreflang=\"ja\" href=\"http://ja.ignore-page.com/\">\n</head>\n<body>\n<h1>Mr.BelvedereFanClub</h1>\n<div wovn-ignore=\"\"><p>Hello</p></div>\n</body>\n</html>\n"
|
345
345
|
when "value_single_quote_translated"
|
346
|
-
body = "<html lang=\"ja\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n<script src=\"//j.wovn.io/
|
346
|
+
body = "<html lang=\"ja\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n<script src=\"//j.wovn.io/1\" async=\"true\" data-wovnio=\"key=&backend=true&currentLang=ja&defaultLang=en&urlPattern=path&version=#{Wovnrb::VERSION}\"> </script><link rel=\"alternate\" hreflang=\"ja\" href=\"http://ja.ignore-page.com/\">\n</head>\n<body>\n<h1>Mr.BelvedereFanClub</h1>\n<div wovn-ignore=\"value\"><p>Hello</p></div>\n</body>\n</html>\n"
|
347
347
|
when "value_double_quote_translated"
|
348
|
-
body = "<html lang=\"ja\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n<script src=\"//j.wovn.io/
|
348
|
+
body = "<html lang=\"ja\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n<script src=\"//j.wovn.io/1\" async=\"true\" data-wovnio=\"key=&backend=true&currentLang=ja&defaultLang=en&urlPattern=path&version=#{Wovnrb::VERSION}\"> </script><link rel=\"alternate\" hreflang=\"ja\" href=\"http://ja.ignore-page.com/\">\n</head>\n<body>\n<h1>Mr.BelvedereFanClub</h1>\n<div wovn-ignore=\"value\"><p>Hello</p></div>\n</body>\n</html>\n"
|
349
|
+
when "meta_img_alt_tags_translated"
|
350
|
+
body = "<html lang=\"ja\">\n<head>\n<script src=\"//j.wovn.io/1\" async=\"true\" data-wovnio=\"key=&backend=true&currentLang=ja&defaultLang=en&urlPattern=path&version=#{Wovnrb::VERSION}\"> </script><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n<meta name=\"description\" content=\"こんにちは\">\n<meta name=\"title\" content=\"こんにちは\">\n<meta property=\"og:title\" content=\"こんにちは\">\n<meta property=\"og:description\" content=\"こんにちは\">\n<meta property=\"twitter:title\" content=\"こんにちは\">\n<meta property=\"twitter:description\" content=\"こんにちは\">\n<link rel=\"alternate\" hreflang=\"ja\" href=\"http://ja.page.com/\">\n</head>\n<body>\n<h1>ベルベデアさんファンクラブ</h1>\n<div><p>こんにちは</p></div>\n<img src=\"http://example.com/photo.png\" alt=\"こんにちは\">\n</body>\n</html>\n"
|
351
|
+
when "meta_img_alt_tags"
|
352
|
+
body = "<html><head><meta name =\"description\" content=\"Hello\">\n<meta name=\"title\" content=\"Hello\">\n<meta property=\"og:title\" content=\"Hello\">\n<meta property=\"og:description\" content=\"Hello\">\n<meta property=\"twitter:title\" content=\"Hello\">\n<meta property=\"twitter:description\" content=\"Hello\"></head>
|
353
|
+
<body><h1>Mr. Belvedere Fan Club</h1>
|
354
|
+
<div><p>Hello</p></div>
|
355
|
+
<img src=\"http://example.com/photo.png\" alt=\"Hello\">
|
356
|
+
</body></html>"
|
349
357
|
else # "" case
|
350
358
|
body = "<html><body><h1>Mr. Belvedere Fan Club</h1>
|
351
359
|
<div><p>Hello</p></div>
|
@@ -371,6 +379,16 @@ class WovnrbTest < Minitest::Test
|
|
371
379
|
assert_equal(generate_body('translated_in_japanese'), swapped_body)
|
372
380
|
end
|
373
381
|
|
382
|
+
def test_switch_lang_meta_img_alt_tags
|
383
|
+
i = Wovnrb::Interceptor.new(get_app)
|
384
|
+
h = Wovnrb::Headers.new(get_env('url' => 'http://page.com'), get_settings('url_pattern' => 'subdomain', 'url_pattern_reg' => '^(?<lang>[^.]+).'))
|
385
|
+
body = generate_body('meta_img_alt_tags')
|
386
|
+
values = generate_values
|
387
|
+
url = h.url
|
388
|
+
swapped_body = i.switch_lang(body, values, url, 'ja', h)
|
389
|
+
assert_equal(generate_body('meta_img_alt_tags_translated'), swapped_body)
|
390
|
+
end
|
391
|
+
|
374
392
|
def test_switch_lang_wovn_ignore
|
375
393
|
i = Wovnrb::Interceptor.new(get_app)
|
376
394
|
h = Wovnrb::Headers.new(get_env('url' => 'http://ignore-page.com'), get_settings('url_pattern' => 'subdomain', 'url_pattern_reg' => '^(?<lang>[^.]+).'))
|
@@ -447,8 +465,7 @@ class WovnrbTest < Minitest::Test
|
|
447
465
|
settings['url_pattern'] = 'path'
|
448
466
|
settings['url_pattern_reg'] = "/(?<lang>[^/.?]+)"
|
449
467
|
settings['query'] = []
|
450
|
-
settings['
|
451
|
-
settings['backend_port'] = '6379'
|
468
|
+
settings['api_url'] = 'http://localhost/v0/values'
|
452
469
|
settings['default_lang'] = 'en'
|
453
470
|
settings['supported_langs'] = []
|
454
471
|
settings['secret_key'] = ''
|
data/test/services/url_test.rb
CHANGED
data/wovnrb.gemspec
CHANGED
@@ -26,7 +26,6 @@ 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 "redis"
|
30
29
|
|
31
30
|
spec.add_development_dependency "bundler", "~> 1.7"
|
32
31
|
spec.add_development_dependency "rake", "~> 10.0"
|
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.1.
|
4
|
+
version: 0.1.80
|
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-03-16 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogumbo
|
@@ -25,200 +25,186 @@ dependencies:
|
|
25
25
|
- - '='
|
26
26
|
- !ruby/object:Gem::Version
|
27
27
|
version: 1.3.0
|
28
|
-
- !ruby/object:Gem::Dependency
|
29
|
-
name: redis
|
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
28
|
- !ruby/object:Gem::Dependency
|
43
29
|
name: bundler
|
44
30
|
requirement: !ruby/object:Gem::Requirement
|
45
31
|
requirements:
|
46
|
-
- - ~>
|
32
|
+
- - "~>"
|
47
33
|
- !ruby/object:Gem::Version
|
48
34
|
version: '1.7'
|
49
35
|
type: :development
|
50
36
|
prerelease: false
|
51
37
|
version_requirements: !ruby/object:Gem::Requirement
|
52
38
|
requirements:
|
53
|
-
- - ~>
|
39
|
+
- - "~>"
|
54
40
|
- !ruby/object:Gem::Version
|
55
41
|
version: '1.7'
|
56
42
|
- !ruby/object:Gem::Dependency
|
57
43
|
name: rake
|
58
44
|
requirement: !ruby/object:Gem::Requirement
|
59
45
|
requirements:
|
60
|
-
- - ~>
|
46
|
+
- - "~>"
|
61
47
|
- !ruby/object:Gem::Version
|
62
48
|
version: '10.0'
|
63
49
|
type: :development
|
64
50
|
prerelease: false
|
65
51
|
version_requirements: !ruby/object:Gem::Requirement
|
66
52
|
requirements:
|
67
|
-
- - ~>
|
53
|
+
- - "~>"
|
68
54
|
- !ruby/object:Gem::Version
|
69
55
|
version: '10.0'
|
70
56
|
- !ruby/object:Gem::Dependency
|
71
57
|
name: test-unit
|
72
58
|
requirement: !ruby/object:Gem::Requirement
|
73
59
|
requirements:
|
74
|
-
- -
|
60
|
+
- - ">="
|
75
61
|
- !ruby/object:Gem::Version
|
76
62
|
version: '0'
|
77
63
|
type: :development
|
78
64
|
prerelease: false
|
79
65
|
version_requirements: !ruby/object:Gem::Requirement
|
80
66
|
requirements:
|
81
|
-
- -
|
67
|
+
- - ">="
|
82
68
|
- !ruby/object:Gem::Version
|
83
69
|
version: '0'
|
84
70
|
- !ruby/object:Gem::Dependency
|
85
71
|
name: test-unit-notify
|
86
72
|
requirement: !ruby/object:Gem::Requirement
|
87
73
|
requirements:
|
88
|
-
- -
|
74
|
+
- - ">="
|
89
75
|
- !ruby/object:Gem::Version
|
90
76
|
version: '0'
|
91
77
|
type: :development
|
92
78
|
prerelease: false
|
93
79
|
version_requirements: !ruby/object:Gem::Requirement
|
94
80
|
requirements:
|
95
|
-
- -
|
81
|
+
- - ">="
|
96
82
|
- !ruby/object:Gem::Version
|
97
83
|
version: '0'
|
98
84
|
- !ruby/object:Gem::Dependency
|
99
85
|
name: minitest
|
100
86
|
requirement: !ruby/object:Gem::Requirement
|
101
87
|
requirements:
|
102
|
-
- -
|
88
|
+
- - ">="
|
103
89
|
- !ruby/object:Gem::Version
|
104
90
|
version: '0'
|
105
91
|
type: :development
|
106
92
|
prerelease: false
|
107
93
|
version_requirements: !ruby/object:Gem::Requirement
|
108
94
|
requirements:
|
109
|
-
- -
|
95
|
+
- - ">="
|
110
96
|
- !ruby/object:Gem::Version
|
111
97
|
version: '0'
|
112
98
|
- !ruby/object:Gem::Dependency
|
113
99
|
name: terminal-notifier
|
114
100
|
requirement: !ruby/object:Gem::Requirement
|
115
101
|
requirements:
|
116
|
-
- -
|
102
|
+
- - ">="
|
117
103
|
- !ruby/object:Gem::Version
|
118
104
|
version: '0'
|
119
105
|
type: :development
|
120
106
|
prerelease: false
|
121
107
|
version_requirements: !ruby/object:Gem::Requirement
|
122
108
|
requirements:
|
123
|
-
- -
|
109
|
+
- - ">="
|
124
110
|
- !ruby/object:Gem::Version
|
125
111
|
version: '0'
|
126
112
|
- !ruby/object:Gem::Dependency
|
127
113
|
name: guard
|
128
114
|
requirement: !ruby/object:Gem::Requirement
|
129
115
|
requirements:
|
130
|
-
- -
|
116
|
+
- - ">="
|
131
117
|
- !ruby/object:Gem::Version
|
132
118
|
version: '0'
|
133
119
|
type: :development
|
134
120
|
prerelease: false
|
135
121
|
version_requirements: !ruby/object:Gem::Requirement
|
136
122
|
requirements:
|
137
|
-
- -
|
123
|
+
- - ">="
|
138
124
|
- !ruby/object:Gem::Version
|
139
125
|
version: '0'
|
140
126
|
- !ruby/object:Gem::Dependency
|
141
127
|
name: guard-rspec
|
142
128
|
requirement: !ruby/object:Gem::Requirement
|
143
129
|
requirements:
|
144
|
-
- -
|
130
|
+
- - ">="
|
145
131
|
- !ruby/object:Gem::Version
|
146
132
|
version: '0'
|
147
133
|
type: :development
|
148
134
|
prerelease: false
|
149
135
|
version_requirements: !ruby/object:Gem::Requirement
|
150
136
|
requirements:
|
151
|
-
- -
|
137
|
+
- - ">="
|
152
138
|
- !ruby/object:Gem::Version
|
153
139
|
version: '0'
|
154
140
|
- !ruby/object:Gem::Dependency
|
155
141
|
name: pry
|
156
142
|
requirement: !ruby/object:Gem::Requirement
|
157
143
|
requirements:
|
158
|
-
- -
|
144
|
+
- - ">="
|
159
145
|
- !ruby/object:Gem::Version
|
160
146
|
version: '0'
|
161
147
|
type: :development
|
162
148
|
prerelease: false
|
163
149
|
version_requirements: !ruby/object:Gem::Requirement
|
164
150
|
requirements:
|
165
|
-
- -
|
151
|
+
- - ">="
|
166
152
|
- !ruby/object:Gem::Version
|
167
153
|
version: '0'
|
168
154
|
- !ruby/object:Gem::Dependency
|
169
155
|
name: pry-remote
|
170
156
|
requirement: !ruby/object:Gem::Requirement
|
171
157
|
requirements:
|
172
|
-
- -
|
158
|
+
- - ">="
|
173
159
|
- !ruby/object:Gem::Version
|
174
160
|
version: '0'
|
175
161
|
type: :development
|
176
162
|
prerelease: false
|
177
163
|
version_requirements: !ruby/object:Gem::Requirement
|
178
164
|
requirements:
|
179
|
-
- -
|
165
|
+
- - ">="
|
180
166
|
- !ruby/object:Gem::Version
|
181
167
|
version: '0'
|
182
168
|
- !ruby/object:Gem::Dependency
|
183
169
|
name: pry-nav
|
184
170
|
requirement: !ruby/object:Gem::Requirement
|
185
171
|
requirements:
|
186
|
-
- -
|
172
|
+
- - ">="
|
187
173
|
- !ruby/object:Gem::Version
|
188
174
|
version: '0'
|
189
175
|
type: :development
|
190
176
|
prerelease: false
|
191
177
|
version_requirements: !ruby/object:Gem::Requirement
|
192
178
|
requirements:
|
193
|
-
- -
|
179
|
+
- - ">="
|
194
180
|
- !ruby/object:Gem::Version
|
195
181
|
version: '0'
|
196
182
|
- !ruby/object:Gem::Dependency
|
197
183
|
name: rake-compiler
|
198
184
|
requirement: !ruby/object:Gem::Requirement
|
199
185
|
requirements:
|
200
|
-
- -
|
186
|
+
- - ">="
|
201
187
|
- !ruby/object:Gem::Version
|
202
188
|
version: '0'
|
203
189
|
type: :development
|
204
190
|
prerelease: false
|
205
191
|
version_requirements: !ruby/object:Gem::Requirement
|
206
192
|
requirements:
|
207
|
-
- -
|
193
|
+
- - ">="
|
208
194
|
- !ruby/object:Gem::Version
|
209
195
|
version: '0'
|
210
196
|
- !ruby/object:Gem::Dependency
|
211
197
|
name: geminabox
|
212
198
|
requirement: !ruby/object:Gem::Requirement
|
213
199
|
requirements:
|
214
|
-
- -
|
200
|
+
- - ">="
|
215
201
|
- !ruby/object:Gem::Version
|
216
202
|
version: '0'
|
217
203
|
type: :development
|
218
204
|
prerelease: false
|
219
205
|
version_requirements: !ruby/object:Gem::Requirement
|
220
206
|
requirements:
|
221
|
-
- -
|
207
|
+
- - ">="
|
222
208
|
- !ruby/object:Gem::Version
|
223
209
|
version: '0'
|
224
210
|
description: ALPHA VERSION, not in a useable form.
|
@@ -228,12 +214,13 @@ executables: []
|
|
228
214
|
extensions: []
|
229
215
|
extra_rdoc_files: []
|
230
216
|
files:
|
231
|
-
- .gitignore
|
232
|
-
- .
|
217
|
+
- ".gitignore"
|
218
|
+
- ".travis.yml"
|
233
219
|
- Gemfile
|
234
220
|
- LICENSE.txt
|
235
221
|
- README.md
|
236
222
|
- Rakefile
|
223
|
+
- circle.yml
|
237
224
|
- ext/dom/Makefile
|
238
225
|
- lib/wovnrb.rb
|
239
226
|
- lib/wovnrb/headers.rb
|
@@ -247,6 +234,7 @@ files:
|
|
247
234
|
- test/lib/headers_test.rb
|
248
235
|
- test/lib/lang_test.rb
|
249
236
|
- test/lib/services/url_test.rb
|
237
|
+
- test/lib/store_test.rb
|
250
238
|
- test/lib/wovnrb_test.rb
|
251
239
|
- test/services/url_test.rb
|
252
240
|
- test/test_helper.rb
|
@@ -262,17 +250,17 @@ require_paths:
|
|
262
250
|
- lib
|
263
251
|
required_ruby_version: !ruby/object:Gem::Requirement
|
264
252
|
requirements:
|
265
|
-
- -
|
253
|
+
- - ">="
|
266
254
|
- !ruby/object:Gem::Version
|
267
255
|
version: '0'
|
268
256
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
269
257
|
requirements:
|
270
|
-
- -
|
258
|
+
- - ">="
|
271
259
|
- !ruby/object:Gem::Version
|
272
260
|
version: '0'
|
273
261
|
requirements: []
|
274
262
|
rubyforge_project:
|
275
|
-
rubygems_version: 2.0
|
263
|
+
rubygems_version: 2.2.0
|
276
264
|
signing_key:
|
277
265
|
specification_version: 4
|
278
266
|
summary: Gem for WOVN.io
|
@@ -282,6 +270,7 @@ test_files:
|
|
282
270
|
- test/lib/headers_test.rb
|
283
271
|
- test/lib/lang_test.rb
|
284
272
|
- test/lib/services/url_test.rb
|
273
|
+
- test/lib/store_test.rb
|
285
274
|
- test/lib/wovnrb_test.rb
|
286
275
|
- test/services/url_test.rb
|
287
276
|
- test/test_helper.rb
|
data/.ruby-version
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
2.0.0-p451
|