wovnrb 0.2.17 → 0.2.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: 7348fe530bd3a1abe6f31aa1013a8262beca4153
4
- data.tar.gz: facf8da674510feed09ef64b53ea50a769f9fb40
3
+ metadata.gz: 7bdcfd40914010805b291fbc68132434f9b95d20
4
+ data.tar.gz: 77a34e93cf0962516eab31bbe004ba2c4e4c8fd7
5
5
  SHA512:
6
- metadata.gz: 388bf3245e438c050b83f28c5417a7b275a7892318319e048b1c7d3c21e302bbd57b393c650a1134bc85658c2a4216201830554e34404bb8a8005b28cefc247a
7
- data.tar.gz: 1b6632a9627cc7ff68fee160e1c91e12389eaec80f606748355751111beed03984c122f0f4f40f8ebfcba5b411e76b285c7de2f2c4f93d4829e2b0cee57d0e47
6
+ metadata.gz: e91cb4c12e417853115fe9e6e4f175dcf6139218d388f96e1bedf6320749220f6ab16d18c323a79b5b305532bf095ef5896871861953f4012cab247883cdab33
7
+ data.tar.gz: 947e717e78b16d35597f68e91351444ac5d7cf62fa0bbf839fe02350e1699dc6335c9df4762639811f12386ff7612e13c6bb9b4489be82efa11b4d9925a4cdca
data/README.md CHANGED
@@ -38,7 +38,7 @@ Insert the following into either config/application.rb or config/environments/.
38
38
  ...
39
39
 
40
40
  config.wovnrb = {
41
- :user_token => '2Wle3'
41
+ :project_token => '2Wle3'
42
42
  }
43
43
 
44
44
  ...
@@ -54,7 +54,7 @@ Insert the following into either the Application File or config.ru.
54
54
  require 'wovnrb'
55
55
 
56
56
  use Wovnrb::Interceptor, {
57
- :user_token => '2Wle3'
57
+ :project_token => '2Wle3'
58
58
  }
59
59
 
60
60
  ...
@@ -68,14 +68,14 @@ WOVN.io Ruby Library's valid parameters are as follows.
68
68
 
69
69
  Parameter Name | Required | Default Setting
70
70
  -------------- | -------- | ----------------
71
- user_token | yes | ''
71
+ project_token | yes | ''
72
72
  url_pattern | yes | 'path'
73
73
  query | | []
74
74
  default_lang | yes | 'en'
75
75
 
76
- ### 2.1. user_token
76
+ ### 2.1. project_token
77
77
 
78
- Set your WOVN.io Account's user token. This parameter is required.
78
+ Set your WOVN.io Account's Project token. This parameter is required.
79
79
 
80
80
  ### 2.2. url_pattern
81
81
 
@@ -35,7 +35,7 @@ module Wovnrb
35
35
  end
36
36
 
37
37
  def build_api_uri
38
- t = CGI::escape(@store.settings['user_token'])
38
+ t = CGI::escape(@store.settings['project_token'])
39
39
  u = CGI::escape(@access_url)
40
40
  URI.parse("#{@store.settings['api_url']}?token=#{t}&url=#{u}")
41
41
  end
@@ -56,4 +56,4 @@ module Wovnrb
56
56
  end
57
57
  end
58
58
  end
59
- end
59
+ end
@@ -26,7 +26,7 @@ module Wovnrb
26
26
  insert_node['src'] = "//j.#{@store.wovn_host}/1"
27
27
  insert_node['async'] = true
28
28
  version = defined?(VERSION) ? VERSION : ''
29
- insert_node['data-wovnio'] = "key=#{@store.settings['user_token']}&backend=true&currentLang=#{lang.lang_code}&defaultLang=#{@store.settings['default_lang']}&urlPattern=#{@store.settings['url_pattern']}&langCodeAliases=#{JSON.dump(@store.settings['custom_lang_aliases'])}&version=#{version}"
29
+ insert_node['data-wovnio'] = "key=#{@store.settings['project_token']}&backend=true&currentLang=#{lang.lang_code}&defaultLang=#{@store.settings['default_lang']}&urlPattern=#{@store.settings['url_pattern']}&langCodeAliases=#{JSON.dump(@store.settings['custom_lang_aliases'])}&version=#{version}"
30
30
  # do this so that there will be a closing tag (better compatibility with browsers)
31
31
  insert_node.content = ' '
32
32
  if parent_node.children.size > 0
@@ -11,7 +11,7 @@ module Wovnrb
11
11
 
12
12
  #if Rails.env.development? && config.respond_to?(:wovnrb)
13
13
  # config.after_initialize do
14
- # config.wovnrb[:user_token] = User.first.short_token
14
+ # config.wovnrb[:project_token] = User.first.short_token
15
15
  # end
16
16
  #end
17
17
  end
data/lib/wovnrb/store.rb CHANGED
@@ -13,7 +13,7 @@ module Wovnrb
13
13
 
14
14
  def self.default_settings
15
15
  {
16
- 'user_token' => '',
16
+ 'project_token' => '',
17
17
  'log_path' => 'log/wovn_error.log',
18
18
  'ignore_paths' => [],
19
19
  'ignore_globs' => [],
@@ -55,9 +55,9 @@ module Wovnrb
55
55
  def valid_settings?
56
56
  valid = true
57
57
  errors = [];
58
- if !settings.has_key?('user_token') || settings['user_token'].length < 5 || settings['user_token'].length > 6
58
+ if !settings.has_key?('project_token') || settings['project_token'].length < 5 || settings['project_token'].length > 6
59
59
  valid = false
60
- errors.push("User token #{settings['user_token']} is not valid.")
60
+ errors.push("Project token #{settings['project_token']} is not valid.")
61
61
  end
62
62
  if settings.has_key?('ignore_paths') && !settings['ignore_paths'].kind_of?(Array)
63
63
  valid = false
@@ -128,6 +128,11 @@ module Wovnrb
128
128
  @settings['supported_langs'] = [@settings['default_lang']]
129
129
  end
130
130
 
131
+ if @settings.has_key?('user_token') && @settings['project_token'].empty?
132
+ @settings['project_token'] = @settings['user_token']
133
+ end
134
+ @settings.delete('user_token')
135
+
131
136
  if @settings['url_pattern'] == 'path'
132
137
  @settings['url_pattern_reg'] = "/(?<lang>[^/.?]+)"
133
138
  elsif @settings['url_pattern'] == 'query'
@@ -1,3 +1,3 @@
1
1
  module Wovnrb
2
- VERSION = "0.2.17"
2
+ VERSION = "0.2.18"
3
3
  end
@@ -25,7 +25,7 @@ module Wovnrb
25
25
  stub_request(:get, "https://api.wovn.io/v0/values?token=#{token}&url=#{url}").
26
26
  to_return(:body => '{"test_body": "a"}')
27
27
  store = Wovnrb::Store.instance
28
- store.settings['user_token'] = token
28
+ store.settings('user_token' => token)
29
29
  api_data = Wovnrb::ApiData.new(url, store)
30
30
 
31
31
  assert_equal({'test_body' => 'a'}, api_data.get_data)
@@ -37,7 +37,7 @@ module Wovnrb
37
37
  stub = stub_request(:get, "https://api.wovn.io/v0/values?token=#{token}&url=#{url}").
38
38
  to_return(:body => '{"test_body": "a"}')
39
39
  store = Wovnrb::Store.instance
40
- store.settings['user_token'] = token
40
+ store.settings('user_token' => token)
41
41
  api_data = Wovnrb::ApiData.new(url, store)
42
42
 
43
43
  assert_equal({'test_body' => 'a'}, api_data.get_data)
@@ -51,7 +51,7 @@ module Wovnrb
51
51
  stub_request(:get, "https://api.wovn.io/v0/values?token=#{token}&url=#{url}").
52
52
  to_return(:status => [500, "Internal Server Error"])
53
53
  store = Wovnrb::Store.instance
54
- store.settings['user_token'] = token
54
+ store.settings('user_token' => token)
55
55
  api_data = Wovnrb::ApiData.new(url, store)
56
56
  log_mock = Wovnrb::LogMock.mock_log
57
57
 
@@ -5,9 +5,11 @@ module Wovnrb
5
5
  class ScriptReplacerTest < WovnMiniTest
6
6
  def test_replace
7
7
  store = Store.instance
8
- store.settings['user_token'] = 'test_token'
9
- store.settings['default_lang'] = 'en'
10
- store.settings['url_pattern'] = 'domain'
8
+ store.settings({
9
+ 'user_token' => 'test_token',
10
+ 'default_lang' => 'en',
11
+ 'url_pattern' => 'domain'
12
+ })
11
13
 
12
14
  replacer = ScriptReplacer.new(store)
13
15
  dom = to_head_dom('<script src="test/test.js"></script>')
@@ -25,10 +27,12 @@ module Wovnrb
25
27
 
26
28
  def test_replace_with_wovn_dev_mode_on
27
29
  store = Store.instance
28
- store.settings['user_token'] = 'test_token'
29
- store.settings['default_lang'] = 'en'
30
- store.settings['url_pattern'] = 'domain'
31
- store.settings['wovn_dev_mode'] = true
30
+ store.settings({
31
+ 'user_token' => 'test_token',
32
+ 'default_lang' => 'en',
33
+ 'url_pattern' => 'domain',
34
+ 'wovn_dev_mode' => true
35
+ })
32
36
 
33
37
  replacer = ScriptReplacer.new(store)
34
38
  dom = to_head_dom('<script src="test/test.js"></script>')
@@ -46,9 +50,11 @@ module Wovnrb
46
50
 
47
51
  def test_with_embed_wovn
48
52
  store = Store.instance
49
- store.settings['user_token'] = 'test_token'
50
- store.settings['default_lang'] = 'en'
51
- store.settings['url_pattern'] = 'domain'
53
+ store.settings({
54
+ 'user_token' => 'test_token',
55
+ 'default_lang' => 'en',
56
+ 'url_pattern' => 'domain'
57
+ })
52
58
 
53
59
  replacer = ScriptReplacer.new(store)
54
60
  dom = to_head_dom('<script src="//j.wovn.io/aaaa" data-wovnio="key=test_token" async></script>')
@@ -62,9 +68,11 @@ module Wovnrb
62
68
 
63
69
  def test_with_multiple_embed_wovn
64
70
  store = Store.instance
65
- store.settings['user_token'] = 'test_token'
66
- store.settings['default_lang'] = 'en'
67
- store.settings['url_pattern'] = 'domain'
71
+ store.settings({
72
+ 'user_token' => 'test_token',
73
+ 'default_lang' => 'en',
74
+ 'url_pattern' => 'domain'
75
+ })
68
76
 
69
77
  replacer = ScriptReplacer.new(store)
70
78
  dom = to_head_dom('<script src="//j.wovn.io/aaaa" data-wovnio="key=test_token" async></script><script src="//j.wovn.io/bbb" data-wovnio="key=test_token" async></script>')
@@ -78,9 +86,11 @@ module Wovnrb
78
86
 
79
87
  def test_with_embed_wovn_at_body
80
88
  store = Store.instance
81
- store.settings['user_token'] = 'test_token'
82
- store.settings['default_lang'] = 'en'
83
- store.settings['url_pattern'] = 'domain'
89
+ store.settings({
90
+ 'user_token' => 'test_token',
91
+ 'default_lang' => 'en',
92
+ 'url_pattern' => 'domain'
93
+ })
84
94
 
85
95
  replacer = ScriptReplacer.new(store)
86
96
  dom = Wovnrb.get_dom('<script src="//j.wovn.io/aaaa" data-wovnio="key=test_token" async></script>')
@@ -94,10 +104,12 @@ module Wovnrb
94
104
 
95
105
  def test_contains_lang_code_aliases
96
106
  store = Store.instance
97
- store.settings['user_token'] = 'test_token'
98
- store.settings['default_lang'] = 'en'
99
- store.settings['url_pattern'] = 'domain'
100
- store.settings['custom_lang_aliases'] = {'ja' => 'staging-ja'}
107
+ store.settings({
108
+ 'user_token' => 'test_token',
109
+ 'default_lang' => 'en',
110
+ 'url_pattern' => 'domain',
111
+ 'custom_lang_aliases' => {'ja' => 'staging-ja'}
112
+ })
101
113
 
102
114
  replacer = ScriptReplacer.new(store)
103
115
  dom = to_head_dom('')
@@ -108,11 +120,11 @@ module Wovnrb
108
120
  check_wovn_script(scripts[0], 'test_token', 'ja', 'en', 'domain', '{"ja":"staging-ja"}')
109
121
  end
110
122
 
111
- def check_wovn_script(node, user_token, current_lang, default_lang, url_pattern, custom_lang_aliases = {})
123
+ def check_wovn_script(node, project_token, current_lang, default_lang, url_pattern, custom_lang_aliases = {})
112
124
  wovn_data = [
113
125
  ['src', '//j.wovn.io/1'],
114
126
  ['async', 'true'],
115
- ['data-wovnio', "key=#{user_token}&backend=true&currentLang=#{current_lang}&defaultLang=#{default_lang}&urlPattern=#{url_pattern}&langCodeAliases=#{custom_lang_aliases}&version=#{Wovnrb::VERSION}"]
127
+ ['data-wovnio', "key=#{project_token}&backend=true&currentLang=#{current_lang}&defaultLang=#{default_lang}&urlPattern=#{url_pattern}&langCodeAliases=#{custom_lang_aliases}&version=#{Wovnrb::VERSION}"]
116
128
  ]
117
129
  wovn_data.each do |data|
118
130
  assert_equal(data[1], node.get_attribute(data[0]))
@@ -14,6 +14,26 @@ module Wovnrb
14
14
  assert_equal('/(?<lang>[^/.?]+)', s.settings['url_pattern_reg'])
15
15
  end
16
16
 
17
+ def test_settings_user_token_retro_compatibility
18
+ s = Wovnrb::Store.instance
19
+ s.settings('user_token' => 'aaaaa')
20
+ assert_equal('aaaaa', s.settings['project_token'])
21
+ assert(!s.settings.has_key?('user_token'))
22
+ end
23
+
24
+ def test_settings_project_token_set
25
+ s = Wovnrb::Store.instance
26
+ s.settings('project_token' => 'bbbbbb')
27
+ assert_equal('bbbbbb', s.settings['project_token'])
28
+ end
29
+
30
+ def test_settings_project_token_set_without_retro_compatibility
31
+ s = Wovnrb::Store.instance
32
+ s.settings('project_token' => 'bbbbbb', 'user_token' => 'aaaaa')
33
+ assert_equal('bbbbbb', s.settings['project_token'])
34
+ assert(!s.settings.has_key?('user_token'))
35
+ end
36
+
17
37
  def test_settings_url_pattern_path
18
38
  s = Wovnrb::Store.instance
19
39
  s.settings({'url_pattern' => 'path'})
@@ -41,7 +61,7 @@ module Wovnrb
41
61
  valid = store.valid_settings?
42
62
 
43
63
  assert_equal(false, valid)
44
- assert_equal(['User token is not valid.'], mock.errors)
64
+ assert_equal(['Project token is not valid.'], mock.errors)
45
65
  end
46
66
 
47
67
  def test_settings_ignore_paths
@@ -73,7 +93,7 @@ module Wovnrb
73
93
  store.settings({'ignore_paths' => 'aaaa'})
74
94
 
75
95
  assert_equal(false, store.valid_settings?)
76
- assert_equal(['User token is not valid.', 'Ignore Paths aaaa should be Array.'], mock.errors)
96
+ assert_equal(['Project token is not valid.', 'Ignore Paths aaaa should be Array.'], mock.errors)
77
97
  end
78
98
 
79
99
  def test_settings_ignore_glob_injection
@@ -25,7 +25,7 @@ class WovnrbTest < Minitest::Test
25
25
 
26
26
  def test_api_call
27
27
  settings = Wovnrb.get_settings
28
- token = settings['user_token']
28
+ token = settings['project_token']
29
29
  url = 'wovn.io/dashboard'
30
30
  stub = stub_request(:get, "#{settings['api_url']}?token=#{token}&url=#{url}").
31
31
  to_return(:body => '{"test_body": "a"}')
@@ -38,7 +38,7 @@ class WovnrbTest < Minitest::Test
38
38
 
39
39
  def test_api_call_with_cache
40
40
  settings = Wovnrb.get_settings
41
- token = settings['user_token']
41
+ token = settings['project_token']
42
42
  url = 'wovn.io/dashboard'
43
43
  stub = stub_request(:get, "#{settings['api_url']}?token=#{token}&url=#{url}").
44
44
  to_return(:body => '{"test_body": "a"}')
data/test/test_helper.rb CHANGED
@@ -55,7 +55,7 @@ module Wovnrb
55
55
 
56
56
  def get_settings(options={})
57
57
  settings = {}
58
- settings['user_token'] = 'OHYx9'
58
+ settings['project_token'] = 'OHYx9'
59
59
  settings['url_pattern'] = 'path'
60
60
  settings['url_pattern_reg'] = "/(?<lang>[^/.?]+)"
61
61
  settings['query'] = []
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.17
4
+ version: 0.2.18
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: 2017-04-19 00:00:00.000000000 Z
12
+ date: 2017-05-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: nokogumbo