global 1.1.0 → 2.0.0
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/.rubocop.yml +29 -10
- data/.ruby-version +1 -1
- data/.travis.yml +4 -10
- data/CODE_OF_CONDUCT.md +74 -0
- data/README.md +217 -68
- data/bin/console +15 -0
- data/global.gemspec +5 -10
- data/lib/global.rb +1 -1
- data/lib/global/backend/aws_parameter_store.rb +110 -0
- data/lib/global/backend/filesystem.rb +88 -0
- data/lib/global/backend/gcp_secret_manager.rb +137 -0
- data/lib/global/base.rb +38 -84
- data/lib/global/configuration.rb +9 -2
- data/lib/global/version.rb +1 -1
- data/spec/global/backend/aws_parameter_store_spec.rb +48 -0
- data/spec/global/backend/gcp_secret_manager_spec.rb +39 -0
- data/spec/global_spec.rb +5 -35
- data/spec/merge_backends_spec.rb +23 -0
- data/spec/spec_helper.rb +5 -2
- metadata +48 -29
- data/app/assets/javascripts/global-js.js.erb +0 -2
- data/lib/global/engine.rb +0 -84
- data/spec/global/global_js_spec.rb +0 -116
- data/spec/support/javascript_helper.rb +0 -27
@@ -1,116 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
RSpec.describe Global, 'generate js in Rails' do
|
6
|
-
before do
|
7
|
-
evaljs('var window = this;', true)
|
8
|
-
jscontext[:log] = ->(_context, value) { puts value.inspect }
|
9
|
-
|
10
|
-
described_class.configure do |config|
|
11
|
-
config.environment = 'test'
|
12
|
-
config.config_directory = File.join(Dir.pwd, 'spec/files')
|
13
|
-
end
|
14
|
-
|
15
|
-
end
|
16
|
-
|
17
|
-
context 'simple generate' do
|
18
|
-
before do
|
19
|
-
described_class.configure do |config|
|
20
|
-
config.namespace = 'Global'
|
21
|
-
config.except = :all
|
22
|
-
config.only = :all
|
23
|
-
end
|
24
|
-
evaljs(described_class.generate_js)
|
25
|
-
end
|
26
|
-
|
27
|
-
it 'should generate valid global config' do
|
28
|
-
expect(evaljs('Global.rspec_config.default_value')).to eq('default value')
|
29
|
-
end
|
30
|
-
|
31
|
-
it 'should generate valid global config for array' do
|
32
|
-
expect(evaljs('Global.nested_config.some_array_value.length')).to eq(3)
|
33
|
-
end
|
34
|
-
|
35
|
-
it 'should generate valid global config for array, first element' do
|
36
|
-
expect(evaljs('Global.nested_config.some_array_value[0]')).to eq('First')
|
37
|
-
end
|
38
|
-
|
39
|
-
it 'should generate valid global config for array, last element' do
|
40
|
-
expect(evaljs('Global.nested_config.some_array_value[2]')).to eq('Third')
|
41
|
-
end
|
42
|
-
|
43
|
-
end
|
44
|
-
|
45
|
-
context 'custom namespace' do
|
46
|
-
before do
|
47
|
-
described_class.configure do |config|
|
48
|
-
config.namespace = 'CustomGlobal'
|
49
|
-
config.except = :all
|
50
|
-
config.only = :all
|
51
|
-
end
|
52
|
-
evaljs(described_class.generate_js)
|
53
|
-
end
|
54
|
-
|
55
|
-
it 'should generate valid global config' do
|
56
|
-
expect(evaljs('CustomGlobal.rspec_config.default_value')).to eq('default value')
|
57
|
-
end
|
58
|
-
|
59
|
-
end
|
60
|
-
|
61
|
-
context 'custom namespace from function' do
|
62
|
-
before do
|
63
|
-
evaljs(described_class.generate_js(namespace: 'CustomGlobalNamespace', only: :all))
|
64
|
-
end
|
65
|
-
|
66
|
-
it 'should generate valid global config' do
|
67
|
-
expect(evaljs('CustomGlobalNamespace.rspec_config.default_value')).to eq('default value')
|
68
|
-
end
|
69
|
-
|
70
|
-
end
|
71
|
-
|
72
|
-
context 'only select' do
|
73
|
-
before do
|
74
|
-
described_class.configure do |config|
|
75
|
-
config.namespace = 'Global'
|
76
|
-
config.except = :all
|
77
|
-
config.only = [:bool_config]
|
78
|
-
end
|
79
|
-
|
80
|
-
evaljs(described_class.generate_js)
|
81
|
-
end
|
82
|
-
|
83
|
-
it 'should generate visible global config' do
|
84
|
-
expect(evaljs('Global.bool_config.works')).to eq(true)
|
85
|
-
end
|
86
|
-
|
87
|
-
it 'should have not some keys in js' do
|
88
|
-
expect(evaljs('Global.nested_config')).to be_nil
|
89
|
-
end
|
90
|
-
|
91
|
-
end
|
92
|
-
|
93
|
-
context 'except select' do
|
94
|
-
before do
|
95
|
-
described_class.configure do |config|
|
96
|
-
config.namespace = 'Global'
|
97
|
-
config.except = [:nested_config]
|
98
|
-
config.only = []
|
99
|
-
end
|
100
|
-
evaljs(described_class.generate_js)
|
101
|
-
end
|
102
|
-
|
103
|
-
it 'should generate visible global config with bool_config' do
|
104
|
-
expect(evaljs('Global.bool_config.works')).to eq(true)
|
105
|
-
end
|
106
|
-
|
107
|
-
it 'should generate visible global config with rspec_config' do
|
108
|
-
expect(evaljs('Global.rspec_config.default_value')).to eq('default value')
|
109
|
-
end
|
110
|
-
|
111
|
-
it 'should have not some keys in js' do
|
112
|
-
expect(evaljs('Global.nested_config')).to be_nil
|
113
|
-
end
|
114
|
-
|
115
|
-
end
|
116
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
if defined?(JRUBY_VERSION)
|
4
|
-
require 'rhino'
|
5
|
-
JS_LIB_CLASS = Rhino
|
6
|
-
else
|
7
|
-
require 'v8'
|
8
|
-
JS_LIB_CLASS = V8
|
9
|
-
end
|
10
|
-
|
11
|
-
module JavascriptHelper
|
12
|
-
|
13
|
-
def evaljs(string, force = false)
|
14
|
-
jscontext(force).eval(string)
|
15
|
-
end
|
16
|
-
|
17
|
-
private
|
18
|
-
|
19
|
-
def jscontext(force = false)
|
20
|
-
if force
|
21
|
-
@jscontext = JS_LIB_CLASS::Context.new
|
22
|
-
else
|
23
|
-
@jscontext ||= JS_LIB_CLASS::Context.new
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
end
|