wovnrb 0.2.17 → 0.2.18

Sign up to get free protection for your applications and to get access to all the features.
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