global 0.2.2 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
metadata CHANGED
@@ -1,71 +1,99 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: global
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Railsware LLC
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-04-26 00:00:00.000000000 Z
11
+ date: 2022-01-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: rspec
14
+ name: aws-sdk-ssm
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '3.0'
19
+ version: '1'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '3.0'
26
+ version: '1'
27
27
  - !ruby/object:Gem::Dependency
28
- name: simplecov
28
+ name: google-cloud-secret_manager
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.7.1
33
+ version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 0.7.1
40
+ version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 10.1.0
47
+ version: 12.3.1
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 10.1.0
54
+ version: 12.3.1
55
55
  - !ruby/object:Gem::Dependency
56
- name: therubyracer
56
+ name: rspec
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: '0'
61
+ version: '3.0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: '0'
68
+ version: '3.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rubocop
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 0.81.0
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 0.81.0
83
+ - !ruby/object:Gem::Dependency
84
+ name: simplecov
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 0.16.1
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: 0.16.1
69
97
  - !ruby/object:Gem::Dependency
70
98
  name: activesupport
71
99
  requirement: !ruby/object:Gem::Requirement
@@ -80,41 +108,49 @@ dependencies:
80
108
  - - ">="
81
109
  - !ruby/object:Gem::Version
82
110
  version: '2.0'
83
- description: Simple way to load your configs from yaml
111
+ description: Simple way to load your configs from yaml/aws/gcp
84
112
  email: contact@railsware.com
85
- executables: []
113
+ executables:
114
+ - console
86
115
  extensions: []
87
116
  extra_rdoc_files: []
88
117
  files:
118
+ - ".github/workflows/tests.yml"
89
119
  - ".gitignore"
90
120
  - ".rspec"
121
+ - ".rubocop.yml"
91
122
  - ".ruby-version"
92
- - ".travis.yml"
123
+ - CODE_OF_CONDUCT.md
93
124
  - Gemfile
94
125
  - LICENSE.txt
95
126
  - README.md
96
127
  - Rakefile
97
- - app/assets/javascripts/global-js.js.erb
128
+ - bin/console
98
129
  - global.gemspec
99
130
  - lib/global.rb
131
+ - lib/global/backend/aws_parameter_store.rb
132
+ - lib/global/backend/filesystem.rb
133
+ - lib/global/backend/gcp_secret_manager.rb
100
134
  - lib/global/base.rb
101
135
  - lib/global/configuration.rb
102
- - lib/global/engine.rb
103
136
  - lib/global/version.rb
137
+ - spec/files/aws.test.yml
138
+ - spec/files/aws.yml
104
139
  - spec/files/bool_config.yml
105
140
  - spec/files/nested_config.yml
106
141
  - spec/files/rspec/config.yml
107
142
  - spec/files/rspec_config.yml
143
+ - spec/global/backend/aws_parameter_store_spec.rb
144
+ - spec/global/backend/gcp_secret_manager_spec.rb
108
145
  - spec/global/configuration_spec.rb
109
- - spec/global/global_js_spec.rb
110
146
  - spec/global_spec.rb
147
+ - spec/merge_backends_spec.rb
111
148
  - spec/spec_helper.rb
112
- - spec/support/javascript_helper.rb
113
149
  homepage: https://github.com/railsware/global
114
150
  licenses:
115
151
  - MIT
116
152
  metadata: {}
117
- post_install_message:
153
+ post_install_message:
118
154
  rdoc_options: []
119
155
  require_paths:
120
156
  - lib
@@ -129,18 +165,20 @@ required_rubygems_version: !ruby/object:Gem::Requirement
129
165
  - !ruby/object:Gem::Version
130
166
  version: '0'
131
167
  requirements: []
132
- rubyforge_project: global
133
- rubygems_version: 2.6.11
134
- signing_key:
168
+ rubygems_version: 3.0.3
169
+ signing_key:
135
170
  specification_version: 4
136
- summary: Simple way to load your configs from yaml
171
+ summary: Simple way to load your configs from yaml/aws/gcp
137
172
  test_files:
173
+ - spec/files/aws.test.yml
174
+ - spec/files/aws.yml
138
175
  - spec/files/bool_config.yml
139
176
  - spec/files/nested_config.yml
140
177
  - spec/files/rspec/config.yml
141
178
  - spec/files/rspec_config.yml
179
+ - spec/global/backend/aws_parameter_store_spec.rb
180
+ - spec/global/backend/gcp_secret_manager_spec.rb
142
181
  - spec/global/configuration_spec.rb
143
- - spec/global/global_js_spec.rb
144
182
  - spec/global_spec.rb
183
+ - spec/merge_backends_spec.rb
145
184
  - spec/spec_helper.rb
146
- - spec/support/javascript_helper.rb
data/.travis.yml DELETED
@@ -1,30 +0,0 @@
1
- language: ruby
2
-
3
- cache:
4
- bundler: true
5
-
6
- rvm:
7
- - 2.0
8
- - 2.1
9
- - 2.2
10
- - 2.3.3
11
- - 2.4.2
12
- - 2.5.0
13
- - jruby-19mode
14
- - ruby-head
15
- - jruby-head
16
-
17
- notifications:
18
- email: false
19
-
20
- sudo: false
21
-
22
- branches:
23
- only:
24
- - master
25
- - development
26
-
27
- matrix:
28
- allow_failures:
29
- - rvm: ruby-head
30
- - rvm: jruby-head
@@ -1,2 +0,0 @@
1
- <%# encoding: UTF-8 %>
2
- <%= Global.generate_js %>
data/lib/global/engine.rb DELETED
@@ -1,78 +0,0 @@
1
- # encoding: utf-8
2
- module Global
3
- class SprocketsExtension
4
- GLOBAL_JS_ASSET = 'global-js'
5
-
6
- def initialize(filename, &block)
7
- @filename = filename
8
- @source = block.call
9
- end
10
-
11
- def render(context, empty_hash_wtf)
12
- self.class.run(@filename, @source, context)
13
- end
14
-
15
- def self.run(filename, source, context)
16
- if GLOBAL_JS_ASSET == context.logical_path
17
- configs = Dir.glob("#{Global.config_directory}#{File::SEPARATOR}*.yml")
18
- configs.map{ |config| context.depend_on(config) }
19
- end
20
- source
21
- end
22
-
23
- def self.call(input)
24
- filename = input[:filename]
25
- source = input[:data]
26
- context = input[:environment].context_class.new(input)
27
-
28
- result = run(filename, source, context)
29
- context.metadata.merge(data: result)
30
- end
31
- end
32
-
33
-
34
- class Engine < ::Rails::Engine
35
- require 'sprockets/version'
36
- v2 = Gem::Dependency.new('', ' ~> 2')
37
- vgte3 = Gem::Dependency.new('', ' >= 3')
38
- sprockets_version = Gem::Version.new(::Sprockets::VERSION).release
39
- initializer_args = case sprockets_version
40
- when -> (v) { v2.match?('', v) }
41
- { after: "sprockets.environment" }
42
- when -> (v) { vgte3.match?('', v) }
43
- { after: :engines_blank_point, before: :finisher_hook }
44
- else
45
- raise StandardError, "Sprockets version #{sprockets_version} is not supported"
46
- end
47
-
48
- is_running_rails = defined?(Rails) && Rails.respond_to?(:version)
49
- is_running_rails_32 = is_running_rails && Rails.version.match(/3\.2/)
50
-
51
- initializer 'global-js.dependent_on_configs', initializer_args do
52
- case sprockets_version
53
- when -> (v) { v2.match?('', v) },
54
- -> (v) { vgte3.match?('', v) }
55
-
56
- # It seems rails 3.2 is not working if
57
- # `Rails.application.config.assets.configure` is used for
58
- # registering preprocessor
59
- if is_running_rails_32
60
- Rails.application.assets.register_preprocessor(
61
- "application/javascript",
62
- SprocketsExtension
63
- )
64
- elsif Rails.application.config.respond_to?(:assets)
65
- # Other rails version, assumed newer
66
- Rails.application.config.assets.configure do |config|
67
- config.register_preprocessor(
68
- "application/javascript",
69
- SprocketsExtension
70
- )
71
- end
72
- end
73
- else
74
- raise StandardError, "Sprockets version #{sprockets_version} is not supported"
75
- end
76
- end
77
- end
78
- end
@@ -1,114 +0,0 @@
1
- require "spec_helper"
2
-
3
- RSpec.describe Global, "generate js in Rails" do
4
- before do
5
- evaljs("var window = this;", true)
6
- jscontext[:log] = lambda {|context, value| puts value.inspect}
7
-
8
- described_class.configure do |config|
9
- config.environment = "test"
10
- config.config_directory = File.join(Dir.pwd, "spec/files")
11
- end
12
-
13
- end
14
-
15
- context 'simple generate' do
16
- before do
17
- described_class.configure do |config|
18
- config.namespace = 'Global'
19
- config.except = :all
20
- config.only = :all
21
- end
22
- evaljs(described_class.generate_js)
23
- end
24
-
25
- it "should generate valid global config" do
26
- expect(evaljs("Global.rspec_config.default_value")).to eq('default value')
27
- end
28
-
29
- it "should generate valid global config for array" do
30
- expect(evaljs("Global.nested_config.some_array_value.length")).to eq(3)
31
- end
32
-
33
- it "should generate valid global config for array, first element" do
34
- expect(evaljs("Global.nested_config.some_array_value[0]")).to eq("First")
35
- end
36
-
37
- it "should generate valid global config for array, last element" do
38
- expect(evaljs("Global.nested_config.some_array_value[2]")).to eq("Third")
39
- end
40
-
41
- end
42
-
43
- context 'custom namespace' do
44
- before do
45
- described_class.configure do |config|
46
- config.namespace = 'CustomGlobal'
47
- config.except = :all
48
- config.only = :all
49
- end
50
- evaljs(described_class.generate_js)
51
- end
52
-
53
- it "should generate valid global config" do
54
- expect(evaljs("CustomGlobal.rspec_config.default_value")).to eq('default value')
55
- end
56
-
57
- end
58
-
59
- context 'custom namespace from function' do
60
- before do
61
- evaljs(described_class.generate_js(namespace: 'CustomGlobalNamespace', only: :all))
62
- end
63
-
64
- it "should generate valid global config" do
65
- expect(evaljs("CustomGlobalNamespace.rspec_config.default_value")).to eq('default value')
66
- end
67
-
68
- end
69
-
70
- context 'only select' do
71
- before do
72
- described_class.configure do |config|
73
- config.namespace = 'Global'
74
- config.except = :all
75
- config.only = [:bool_config]
76
- end
77
-
78
- evaljs(described_class.generate_js)
79
- end
80
-
81
- it "should generate visible global config" do
82
- expect(evaljs("Global.bool_config.works")).to eq(true)
83
- end
84
-
85
- it "should have not some keys in js" do
86
- expect(evaljs("Global.nested_config")).to be_nil
87
- end
88
-
89
- end
90
-
91
- context 'except select' do
92
- before do
93
- described_class.configure do |config|
94
- config.namespace = 'Global'
95
- config.except = [:nested_config]
96
- config.only = []
97
- end
98
- evaljs(described_class.generate_js)
99
- end
100
-
101
- it "should generate visible global config with bool_config" do
102
- expect(evaljs("Global.bool_config.works")).to eq(true)
103
- end
104
-
105
- it "should generate visible global config with rspec_config" do
106
- expect(evaljs("Global.rspec_config.default_value")).to eq('default value')
107
- end
108
-
109
- it "should have not some keys in js" do
110
- expect(evaljs("Global.nested_config")).to be_nil
111
- end
112
-
113
- end
114
- end
@@ -1,24 +0,0 @@
1
- if defined?(JRUBY_VERSION)
2
- require 'rhino'
3
- JS_LIB_CLASS = Rhino
4
- else
5
- require 'v8'
6
- JS_LIB_CLASS = V8
7
- end
8
-
9
- module JavascriptHelper
10
- def evaljs(string, force = false)
11
- jscontext(force).eval(string)
12
- end
13
-
14
- private
15
-
16
- def jscontext(force = false)
17
- if force
18
- @jscontext = JS_LIB_CLASS::Context.new
19
- else
20
- @jscontext ||= JS_LIB_CLASS::Context.new
21
- end
22
- end
23
-
24
- end