global 0.2.2 → 1.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 +91 -0
- data/.ruby-version +1 -1
- data/.travis.yml +3 -5
- data/Gemfile +3 -6
- data/README.md +36 -4
- data/Rakefile +10 -2
- data/global.gemspec +21 -18
- data/lib/global.rb +4 -1
- data/lib/global/base.rb +32 -11
- data/lib/global/configuration.rb +11 -15
- data/lib/global/engine.rb +26 -20
- data/lib/global/version.rb +4 -2
- data/spec/files/aws.test.yml +3 -0
- data/spec/files/aws.yml +6 -0
- data/spec/global/configuration_spec.rb +76 -74
- data/spec/global/global_js_spec.rb +30 -28
- data/spec/global_spec.rb +65 -52
- data/spec/spec_helper.rb +4 -4
- data/spec/support/javascript_helper.rb +4 -1
- metadata +27 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5ada6d5fbc1aaf1b03e1e5db9200c33f2e22108e
|
4
|
+
data.tar.gz: bd7c8bc34931654e6bd89fb6d2cf6fd4c7e7d123
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6209994c37c074286978e2b34e5d81fc0b93818fc75fb682cb0750de13ac2656926cbde9639507e3d0f9049469b9789b853d3a61bedbdfdf528849db242165f8
|
7
|
+
data.tar.gz: b5c74f586b5dd5db6c1826e355ba159ecd6e05b316071c212acf4ac3d9801a776742c5a0693b1ca1a9cdd9fa1ab69bb03be33d4d66fdd59f78b35c19498d7180
|
data/.rubocop.yml
ADDED
@@ -0,0 +1,91 @@
|
|
1
|
+
Layout/EmptyLinesAroundBlockBody:
|
2
|
+
Enabled: false
|
3
|
+
|
4
|
+
Layout/SpaceInsideBlockBraces:
|
5
|
+
Enabled: true
|
6
|
+
EnforcedStyle: space
|
7
|
+
EnforcedStyleForEmptyBraces: no_space
|
8
|
+
SpaceBeforeBlockParameters: true
|
9
|
+
|
10
|
+
Layout/SpaceBeforeBlockBraces:
|
11
|
+
Enabled: true
|
12
|
+
EnforcedStyle: space
|
13
|
+
EnforcedStyleForEmptyBraces: space
|
14
|
+
|
15
|
+
Layout/SpaceInsideHashLiteralBraces:
|
16
|
+
Enabled: true
|
17
|
+
EnforcedStyle: compact
|
18
|
+
EnforcedStyleForEmptyBraces: no_space
|
19
|
+
|
20
|
+
Layout/EmptyLinesAroundClassBody:
|
21
|
+
Enabled: true
|
22
|
+
EnforcedStyle: empty_lines_except_namespace
|
23
|
+
|
24
|
+
Layout/EmptyLinesAroundModuleBody:
|
25
|
+
Enabled: true
|
26
|
+
EnforcedStyle: empty_lines_except_namespace
|
27
|
+
|
28
|
+
Layout/MultilineMethodCallIndentation:
|
29
|
+
Enabled: true
|
30
|
+
EnforcedStyle: indented
|
31
|
+
|
32
|
+
Layout/AlignHash:
|
33
|
+
Enabled: true
|
34
|
+
EnforcedLastArgumentHashStyle: always_ignore
|
35
|
+
|
36
|
+
Style/RaiseArgs:
|
37
|
+
EnforcedStyle: compact
|
38
|
+
|
39
|
+
Style/YodaCondition:
|
40
|
+
Enabled: false
|
41
|
+
|
42
|
+
Style/FrozenStringLiteralComment:
|
43
|
+
Enabled: true
|
44
|
+
EnforcedStyle: always
|
45
|
+
|
46
|
+
Style/RegexpLiteral:
|
47
|
+
Enabled: true
|
48
|
+
EnforcedStyle: slashes
|
49
|
+
AllowInnerSlashes: false
|
50
|
+
|
51
|
+
Layout/IndentHash:
|
52
|
+
EnforcedStyle: consistent
|
53
|
+
|
54
|
+
Style/Documentation:
|
55
|
+
Enabled: false
|
56
|
+
|
57
|
+
Style/SafeNavigation:
|
58
|
+
Enabled: true
|
59
|
+
Whitelist:
|
60
|
+
- present?
|
61
|
+
- blank?
|
62
|
+
- presence
|
63
|
+
|
64
|
+
Lint/AmbiguousBlockAssociation:
|
65
|
+
Exclude:
|
66
|
+
- 'spec/**/*'
|
67
|
+
|
68
|
+
Naming/PredicateName:
|
69
|
+
Exclude:
|
70
|
+
- 'spec/**/*'
|
71
|
+
|
72
|
+
Style/NumericPredicate:
|
73
|
+
Exclude:
|
74
|
+
- 'spec/**/*'
|
75
|
+
|
76
|
+
Metrics/BlockLength:
|
77
|
+
Exclude:
|
78
|
+
- 'spec/**/*'
|
79
|
+
|
80
|
+
Metrics/LineLength:
|
81
|
+
Max: 120
|
82
|
+
Exclude:
|
83
|
+
- 'spec/**/*'
|
84
|
+
|
85
|
+
Metrics/AbcSize:
|
86
|
+
Max: 22
|
87
|
+
Exclude:
|
88
|
+
- 'spec/**/*'
|
89
|
+
|
90
|
+
Style/ModuleFunction:
|
91
|
+
EnforcedStyle: extend_self
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
2.5.1
|
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
@@ -1,9 +1,6 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
source 'https://rubygems.org'
|
2
4
|
|
3
5
|
# Specify your gem's dependencies in global.gemspec
|
4
6
|
gemspec
|
5
|
-
|
6
|
-
if RUBY_VERSION < "2.2.2"
|
7
|
-
# activesupport 5+ requires MRI 2.2.2+
|
8
|
-
gem "activesupport", "< 5.0.0"
|
9
|
-
end
|
data/README.md
CHANGED
@@ -124,6 +124,39 @@ Nested options can then be accessed as follows:
|
|
124
124
|
=> "development value"
|
125
125
|
```
|
126
126
|
|
127
|
+
### Environment files
|
128
|
+
|
129
|
+
Config file `global/aws.yml` with:
|
130
|
+
```yml
|
131
|
+
:default:
|
132
|
+
activated: false
|
133
|
+
|
134
|
+
staging:
|
135
|
+
activated: true
|
136
|
+
api_key: 'nothing'
|
137
|
+
|
138
|
+
```
|
139
|
+
|
140
|
+
And file `global/aws.production.yml` with:
|
141
|
+
```yml
|
142
|
+
:activated: true
|
143
|
+
:api_key: 'some api key'
|
144
|
+
:api_secret: 'some secret'
|
145
|
+
|
146
|
+
```
|
147
|
+
|
148
|
+
Provide such configuration on `Global.environment = 'production'` environment:
|
149
|
+
|
150
|
+
```ruby
|
151
|
+
> Global.aws.activated
|
152
|
+
=> true
|
153
|
+
> Global.aws.api_key
|
154
|
+
=> 'some api key'
|
155
|
+
> Global.aws.api_secret
|
156
|
+
=> 'some secret'
|
157
|
+
```
|
158
|
+
|
159
|
+
**Warning**: files with dot(s) in name will be skipped by Global (except this env files).
|
127
160
|
|
128
161
|
### ERB support
|
129
162
|
|
@@ -162,7 +195,7 @@ Global.configure do |config|
|
|
162
195
|
config.only = ["LIST_OF_FILES_TO_INCLUDE_ON_FRONT_END"] # default []
|
163
196
|
end
|
164
197
|
```
|
165
|
-
By default all files are excluded due to security reasons. Don't include files which contain protected information like api keys or credentials.
|
198
|
+
By default all files are excluded due to security reasons. Don't include files which contain protected information like api keys or credentials.
|
166
199
|
|
167
200
|
Require global file in `application.js`:
|
168
201
|
|
@@ -184,7 +217,7 @@ If your application has `admin` and `application` namespace:
|
|
184
217
|
|
185
218
|
# app/assets/javascripts/admin.js.coffee
|
186
219
|
#= require admin/global
|
187
|
-
```
|
220
|
+
```
|
188
221
|
|
189
222
|
```erb
|
190
223
|
# app/assets/javascripts/application/global.js.erb
|
@@ -213,7 +246,7 @@ Global.hosts.web
|
|
213
246
|
=> "localhost"
|
214
247
|
```
|
215
248
|
|
216
|
-
And in production:
|
249
|
+
And in production:
|
217
250
|
|
218
251
|
``` js
|
219
252
|
Global.hosts.web
|
@@ -233,4 +266,3 @@ Global.hosts.web
|
|
233
266
|
## Copyright
|
234
267
|
|
235
268
|
Copyright (c) Railsware LLC. See LICENSE.txt for further details.
|
236
|
-
|
data/Rakefile
CHANGED
@@ -1,11 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'rubygems'
|
2
4
|
require 'bundler'
|
3
5
|
|
4
6
|
Bundler.require
|
5
7
|
|
6
8
|
require 'rspec/core/rake_task'
|
7
|
-
require
|
9
|
+
require 'bundler/gem_tasks'
|
10
|
+
require 'rubocop/rake_task'
|
8
11
|
|
9
12
|
RSpec::Core::RakeTask.new(:spec)
|
13
|
+
RuboCop::RakeTask.new(:rubocop) do |task|
|
14
|
+
task.options = ['-D'] # Display cop name
|
15
|
+
task.fail_on_error = true
|
16
|
+
end
|
10
17
|
|
11
|
-
|
18
|
+
desc 'Run all tests'
|
19
|
+
task default: %i[rubocop spec]
|
data/global.gemspec
CHANGED
@@ -1,33 +1,36 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
$LOAD_PATH.push File.expand_path('lib', __dir__)
|
4
|
+
require 'global/version'
|
3
5
|
|
4
6
|
Gem::Specification.new do |s|
|
5
|
-
s.name =
|
7
|
+
s.name = 'global'
|
6
8
|
s.version = Global::VERSION
|
7
|
-
s.authors = [
|
8
|
-
s.email =
|
9
|
+
s.authors = ['Railsware LLC']
|
10
|
+
s.email = 'contact@railsware.com'
|
9
11
|
|
10
|
-
s.rubyforge_project =
|
12
|
+
s.rubyforge_project = 'global'
|
11
13
|
|
12
|
-
s.description =
|
13
|
-
s.summary =
|
14
|
+
s.description = 'Simple way to load your configs from yaml'
|
15
|
+
s.summary = 'Simple way to load your configs from yaml'
|
14
16
|
|
15
17
|
s.files = `git ls-files`.split("\n")
|
16
18
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
17
|
-
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
18
|
-
s.require_paths = [
|
19
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
|
20
|
+
s.require_paths = ['lib']
|
19
21
|
|
20
|
-
s.homepage =
|
21
|
-
s.licenses = [
|
22
|
+
s.homepage = 'https://github.com/railsware/global'
|
23
|
+
s.licenses = ['MIT']
|
22
24
|
|
23
|
-
s.add_development_dependency
|
24
|
-
s.add_development_dependency
|
25
|
-
s.add_development_dependency
|
25
|
+
s.add_development_dependency 'rake', '~> 12.3.1'
|
26
|
+
s.add_development_dependency 'rspec', '>= 3.0'
|
27
|
+
s.add_development_dependency 'rubocop', '~> 0.57'
|
28
|
+
s.add_development_dependency 'simplecov', '~> 0.16.1'
|
26
29
|
if defined?(JRUBY_VERSION)
|
27
|
-
s.add_development_dependency
|
30
|
+
s.add_development_dependency 'therubyrhino', '>= 0'
|
28
31
|
else
|
29
|
-
s.add_development_dependency
|
32
|
+
s.add_development_dependency 'therubyracer', '>= 0'
|
30
33
|
end
|
31
34
|
|
32
|
-
s.add_runtime_dependency
|
35
|
+
s.add_runtime_dependency 'activesupport', '>= 2.0'
|
33
36
|
end
|
data/lib/global.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
2
3
|
require 'yaml'
|
3
4
|
|
4
5
|
require 'active_support/core_ext/hash/indifferent_access'
|
@@ -10,5 +11,7 @@ require 'global/engine' if defined?(Rails)
|
|
10
11
|
require 'global/version'
|
11
12
|
|
12
13
|
module Global
|
14
|
+
|
13
15
|
extend Base
|
16
|
+
|
14
17
|
end
|
data/lib/global/base.rb
CHANGED
@@ -1,10 +1,14 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'erb'
|
4
4
|
require 'json'
|
5
5
|
|
6
6
|
module Global
|
7
7
|
module Base
|
8
|
+
|
9
|
+
FILE_ENV_SPLIT = '.'
|
10
|
+
YAML_EXT = '.yml'
|
11
|
+
|
8
12
|
extend self
|
9
13
|
|
10
14
|
attr_writer :environment, :config_directory, :namespace, :except, :only
|
@@ -23,11 +27,11 @@ module Global
|
|
23
27
|
end
|
24
28
|
|
25
29
|
def environment
|
26
|
-
@environment || raise(
|
30
|
+
@environment || raise('environment should be defined')
|
27
31
|
end
|
28
32
|
|
29
33
|
def config_directory
|
30
|
-
@config_directory || raise(
|
34
|
+
@config_directory || raise('config_directory should be defined')
|
31
35
|
end
|
32
36
|
|
33
37
|
def namespace
|
@@ -60,34 +64,51 @@ module Global
|
|
60
64
|
def load_from_file(dir, env)
|
61
65
|
config = {}
|
62
66
|
|
63
|
-
if File.
|
64
|
-
configurations =
|
65
|
-
config = configurations
|
66
|
-
config.deep_merge!(configurations
|
67
|
+
if File.exist?(file = "#{dir}#{YAML_EXT}")
|
68
|
+
configurations = load_yml_file(file)
|
69
|
+
config = get_config_by_key(configurations, 'default')
|
70
|
+
config.deep_merge!(get_config_by_key(configurations, env))
|
71
|
+
if File.exist?(env_file = "#{dir}#{FILE_ENV_SPLIT}#{env}#{YAML_EXT}")
|
72
|
+
config.deep_merge!(load_yml_file(env_file) || {})
|
73
|
+
end
|
67
74
|
end
|
68
75
|
|
69
76
|
config
|
70
77
|
end
|
71
78
|
|
79
|
+
def get_config_by_key(config, key)
|
80
|
+
config[key.to_sym] || config[key.to_s] || {}
|
81
|
+
end
|
82
|
+
|
83
|
+
def load_yml_file(file)
|
84
|
+
YAML.safe_load(
|
85
|
+
ERB.new(IO.read(file)).result,
|
86
|
+
[Date, Time, DateTime, Symbol], [], true
|
87
|
+
)
|
88
|
+
end
|
89
|
+
|
72
90
|
def load_from_directory(dir, env)
|
73
91
|
config = {}
|
74
92
|
|
75
93
|
if File.directory?(dir)
|
76
94
|
Dir["#{dir}/*"].each do |entry|
|
77
|
-
namespace =
|
78
|
-
|
95
|
+
namespace = File.basename(entry, YAML_EXT)
|
96
|
+
next if namespace.include? FILE_ENV_SPLIT # skip files with dot(s) in name
|
97
|
+
file_with_path = File.join(File.dirname(entry), File.basename(entry, YAML_EXT))
|
98
|
+
config.deep_merge!(namespace => load_configuration(file_with_path, env))
|
79
99
|
end
|
80
100
|
end
|
81
101
|
|
82
102
|
config
|
83
103
|
end
|
84
|
-
|
85
|
-
def respond_to_missing?(method, include_private=false)
|
104
|
+
|
105
|
+
def respond_to_missing?(method, include_private = false)
|
86
106
|
configuration.key?(method) || super
|
87
107
|
end
|
88
108
|
|
89
109
|
def method_missing(method, *args, &block)
|
90
110
|
configuration.key?(method) ? configuration[method] : super
|
91
111
|
end
|
112
|
+
|
92
113
|
end
|
93
114
|
end
|
data/lib/global/configuration.rb
CHANGED
@@ -1,15 +1,17 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'forwardable'
|
4
4
|
|
5
5
|
module Global
|
6
6
|
class Configuration
|
7
|
+
|
7
8
|
extend Forwardable
|
8
9
|
|
9
10
|
attr_reader :hash
|
10
11
|
|
11
|
-
def_delegators :hash, :key?, :has_key?, :include?,
|
12
|
-
|
12
|
+
def_delegators :hash, :key?, :has_key?, :include?,
|
13
|
+
:member?, :[], :[]=, :to_hash, :to_json,
|
14
|
+
:inspect, :fetch
|
13
15
|
|
14
16
|
def initialize(hash)
|
15
17
|
@hash = hash.respond_to?(:with_indifferent_access) ? hash.with_indifferent_access : hash
|
@@ -17,28 +19,23 @@ module Global
|
|
17
19
|
|
18
20
|
def filter(options = {})
|
19
21
|
keys = filtered_keys_list(options)
|
20
|
-
hash.select{|key, _| keys.include?(key)}
|
22
|
+
hash.select { |key, _| keys.include?(key) }
|
21
23
|
end
|
22
24
|
|
23
25
|
private
|
24
26
|
|
25
27
|
def filtered_keys_list(options)
|
26
|
-
if options[:except].is_a?(Array)
|
27
|
-
|
28
|
-
end
|
29
|
-
|
30
|
-
if options[:only].is_a?(Array)
|
31
|
-
return hash.keys & options[:only].map(&:to_s)
|
32
|
-
end
|
28
|
+
return hash.keys - options[:except].map(&:to_s) if options[:except].is_a?(Array)
|
29
|
+
return hash.keys & options[:only].map(&:to_s) if options[:only].is_a?(Array)
|
33
30
|
|
34
31
|
return hash.keys if options[:only] == :all
|
35
32
|
return [] if options[:except] == :all
|
36
|
-
|
33
|
+
[]
|
37
34
|
end
|
38
35
|
|
39
36
|
protected
|
40
37
|
|
41
|
-
def respond_to_missing?(method_name, include_private=false)
|
38
|
+
def respond_to_missing?(method_name, include_private = false)
|
42
39
|
method = normalize_key_by_method(method_name)
|
43
40
|
key?(method) || super
|
44
41
|
end
|
@@ -47,7 +44,7 @@ module Global
|
|
47
44
|
method = normalize_key_by_method(method)
|
48
45
|
if key?(method)
|
49
46
|
value = hash[method]
|
50
|
-
value.
|
47
|
+
value.is_a?(Hash) ? Global::Configuration.new(value) : value
|
51
48
|
else
|
52
49
|
super
|
53
50
|
end
|
@@ -57,6 +54,5 @@ module Global
|
|
57
54
|
'?' == method.to_s[-1] ? method.to_s[0..-2] : method
|
58
55
|
end
|
59
56
|
|
60
|
-
|
61
57
|
end
|
62
58
|
end
|
data/lib/global/engine.rb
CHANGED
@@ -1,21 +1,24 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
2
3
|
module Global
|
4
|
+
|
3
5
|
class SprocketsExtension
|
6
|
+
|
4
7
|
GLOBAL_JS_ASSET = 'global-js'
|
5
8
|
|
6
|
-
def initialize(filename
|
9
|
+
def initialize(filename)
|
7
10
|
@filename = filename
|
8
|
-
@source =
|
11
|
+
@source = yield
|
9
12
|
end
|
10
13
|
|
11
|
-
def render(context,
|
14
|
+
def render(context, _empty_hash_wtf)
|
12
15
|
self.class.run(@filename, @source, context)
|
13
16
|
end
|
14
17
|
|
15
|
-
def self.run(
|
18
|
+
def self.run(_filename, source, context)
|
16
19
|
if GLOBAL_JS_ASSET == context.logical_path
|
17
20
|
configs = Dir.glob("#{Global.config_directory}#{File::SEPARATOR}*.yml")
|
18
|
-
configs.map{ |config| context.depend_on(config) }
|
21
|
+
configs.map { |config| context.depend_on(config) }
|
19
22
|
end
|
20
23
|
source
|
21
24
|
end
|
@@ -28,51 +31,54 @@ module Global
|
|
28
31
|
result = run(filename, source, context)
|
29
32
|
context.metadata.merge(data: result)
|
30
33
|
end
|
31
|
-
end
|
32
34
|
|
35
|
+
end
|
33
36
|
|
34
37
|
class Engine < ::Rails::Engine
|
38
|
+
|
35
39
|
require 'sprockets/version'
|
36
40
|
v2 = Gem::Dependency.new('', ' ~> 2')
|
37
41
|
vgte3 = Gem::Dependency.new('', ' >= 3')
|
38
42
|
sprockets_version = Gem::Version.new(::Sprockets::VERSION).release
|
39
43
|
initializer_args = case sprockets_version
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
44
|
+
when ->(v) { v2.match?('', v) }
|
45
|
+
{ after: 'sprockets.environment' }
|
46
|
+
when ->(v) { vgte3.match?('', v) }
|
47
|
+
{ after: :engines_blank_point, before: :finisher_hook }
|
48
|
+
else
|
49
|
+
raise StandardError.new("Sprockets version #{sprockets_version} is not supported")
|
46
50
|
end
|
47
51
|
|
48
52
|
is_running_rails = defined?(Rails) && Rails.respond_to?(:version)
|
49
|
-
|
53
|
+
is_running_rails32 = is_running_rails && Rails.version.match(/3\.2/)
|
50
54
|
|
51
55
|
initializer 'global-js.dependent_on_configs', initializer_args do
|
52
56
|
case sprockets_version
|
53
|
-
|
54
|
-
->
|
57
|
+
when ->(v) { v2.match?('', v) },
|
58
|
+
->(v) { vgte3.match?('', v) }
|
55
59
|
|
56
60
|
# It seems rails 3.2 is not working if
|
57
61
|
# `Rails.application.config.assets.configure` is used for
|
58
62
|
# registering preprocessor
|
59
|
-
if
|
63
|
+
if is_running_rails32
|
60
64
|
Rails.application.assets.register_preprocessor(
|
61
|
-
|
65
|
+
'application/javascript',
|
62
66
|
SprocketsExtension
|
63
67
|
)
|
64
68
|
elsif Rails.application.config.respond_to?(:assets)
|
65
69
|
# Other rails version, assumed newer
|
66
70
|
Rails.application.config.assets.configure do |config|
|
67
71
|
config.register_preprocessor(
|
68
|
-
|
72
|
+
'application/javascript',
|
69
73
|
SprocketsExtension
|
70
74
|
)
|
71
75
|
end
|
72
76
|
end
|
73
77
|
else
|
74
|
-
raise StandardError
|
78
|
+
raise StandardError.new("Sprockets version #{sprockets_version} is not supported")
|
75
79
|
end
|
76
80
|
end
|
81
|
+
|
77
82
|
end
|
83
|
+
|
78
84
|
end
|
data/lib/global/version.rb
CHANGED
data/spec/files/aws.yml
ADDED
@@ -1,149 +1,151 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
2
4
|
|
3
5
|
RSpec.describe Global::Configuration do
|
4
|
-
let(:hash){ {
|
5
|
-
let(:configuration){ described_class.new hash }
|
6
|
+
let(:hash) { { 'key' => 'value', 'nested' => { 'key' => 'value' }} }
|
7
|
+
let(:configuration) { described_class.new hash }
|
6
8
|
|
7
|
-
describe
|
8
|
-
subject{ configuration.hash }
|
9
|
+
describe '#hash' do
|
10
|
+
subject { configuration.hash }
|
9
11
|
|
10
|
-
it{ is_expected.to eq(hash) }
|
12
|
+
it { is_expected.to eq(hash) }
|
11
13
|
end
|
12
14
|
|
13
|
-
describe
|
14
|
-
subject{ configuration.to_hash }
|
15
|
+
describe '#to_hash' do
|
16
|
+
subject { configuration.to_hash }
|
15
17
|
|
16
|
-
it{ is_expected.to eq(hash) }
|
18
|
+
it { is_expected.to eq(hash) }
|
17
19
|
end
|
18
20
|
|
19
|
-
describe
|
20
|
-
subject{ configuration.key?(:key) }
|
21
|
+
describe 'key?' do
|
22
|
+
subject { configuration.key?(:key) }
|
21
23
|
|
22
|
-
it{ is_expected.to be_truthy }
|
24
|
+
it { is_expected.to be_truthy }
|
23
25
|
end
|
24
26
|
|
25
|
-
describe
|
26
|
-
subject{ configuration.
|
27
|
+
describe 'has_key?' do
|
28
|
+
subject { configuration.key?(:key) }
|
27
29
|
|
28
|
-
it{ is_expected.to be_truthy }
|
30
|
+
it { is_expected.to be_truthy }
|
29
31
|
end
|
30
32
|
|
31
|
-
describe
|
32
|
-
subject{ configuration.include?(:key) }
|
33
|
+
describe 'include?' do
|
34
|
+
subject { configuration.include?(:key) }
|
33
35
|
|
34
|
-
it{ is_expected.to be_truthy }
|
36
|
+
it { is_expected.to be_truthy }
|
35
37
|
end
|
36
38
|
|
37
|
-
describe
|
38
|
-
subject{ configuration.member?(:key) }
|
39
|
+
describe 'member?' do
|
40
|
+
subject { configuration.member?(:key) }
|
39
41
|
|
40
|
-
it{ is_expected.to be_truthy }
|
42
|
+
it { is_expected.to be_truthy }
|
41
43
|
end
|
42
44
|
|
43
|
-
describe
|
44
|
-
subject{ configuration[:key] }
|
45
|
+
describe '#[]' do
|
46
|
+
subject { configuration[:key] }
|
45
47
|
|
46
|
-
it{ is_expected.to eq(
|
48
|
+
it { is_expected.to eq('value') }
|
47
49
|
end
|
48
50
|
|
49
|
-
describe
|
50
|
-
subject{ configuration[:new_key] }
|
51
|
+
describe '#[]=' do
|
52
|
+
subject { configuration[:new_key] }
|
51
53
|
|
52
|
-
before{ configuration[:new_key] =
|
54
|
+
before { configuration[:new_key] = 'new_value' }
|
53
55
|
|
54
|
-
it{ is_expected.to eq(
|
56
|
+
it { is_expected.to eq('new_value') }
|
55
57
|
end
|
56
58
|
|
57
|
-
describe
|
58
|
-
subject{ configuration.inspect }
|
59
|
+
describe '#inspect' do
|
60
|
+
subject { configuration.inspect }
|
59
61
|
|
60
|
-
it{ is_expected.to eq(hash.inspect) }
|
62
|
+
it { is_expected.to eq(hash.inspect) }
|
61
63
|
end
|
62
64
|
|
63
|
-
describe
|
64
|
-
subject{ configuration.filter(filter_options) }
|
65
|
+
describe '#filter' do
|
66
|
+
subject { configuration.filter(filter_options) }
|
65
67
|
|
66
|
-
context
|
67
|
-
let(:filter_options){ { only: :all } }
|
68
|
+
context 'when include all' do
|
69
|
+
let(:filter_options) { { only: :all } }
|
68
70
|
|
69
|
-
it{ should == {
|
71
|
+
it { should == { 'key' => 'value', 'nested' => { 'key' => 'value' }} }
|
70
72
|
end
|
71
73
|
|
72
|
-
context
|
73
|
-
let(:filter_options){ { except: :all } }
|
74
|
+
context 'when except all' do
|
75
|
+
let(:filter_options) { { except: :all } }
|
74
76
|
|
75
|
-
it{ should == {} }
|
77
|
+
it { should == {} }
|
76
78
|
end
|
77
79
|
|
78
|
-
context
|
79
|
-
let(:filter_options){ { except: %w
|
80
|
+
context 'when except present' do
|
81
|
+
let(:filter_options) { { except: %w[key] } }
|
80
82
|
|
81
|
-
it{ should == {
|
83
|
+
it { should == { 'nested' => { 'key' => 'value' }} }
|
82
84
|
end
|
83
85
|
|
84
|
-
context
|
85
|
-
let(:filter_options){ { only: %w
|
86
|
+
context 'when include present' do
|
87
|
+
let(:filter_options) { { only: %w[key] } }
|
86
88
|
|
87
|
-
it{ should == {
|
89
|
+
it { should == { 'key' => 'value' } }
|
88
90
|
end
|
89
91
|
|
90
|
-
context
|
91
|
-
let(:filter_options){ {} }
|
92
|
+
context 'when empty options' do
|
93
|
+
let(:filter_options) { {} }
|
92
94
|
|
93
|
-
it{ should == {} }
|
95
|
+
it { should == {} }
|
94
96
|
end
|
95
97
|
end
|
96
98
|
|
97
|
-
describe
|
98
|
-
context
|
99
|
-
subject{ configuration.key }
|
99
|
+
describe '#method_missing' do
|
100
|
+
context 'when key exist' do
|
101
|
+
subject { configuration.key }
|
100
102
|
|
101
|
-
it{ is_expected.to eq(
|
103
|
+
it { is_expected.to eq('value') }
|
102
104
|
end
|
103
105
|
|
104
|
-
context
|
105
|
-
subject{ configuration.some_key }
|
106
|
+
context 'when key does not exist' do
|
107
|
+
subject { configuration.some_key }
|
106
108
|
|
107
|
-
it{ expect { subject }.to raise_error(NoMethodError) }
|
109
|
+
it { expect { subject }.to raise_error(NoMethodError) }
|
108
110
|
end
|
109
111
|
|
110
|
-
context
|
111
|
-
subject{ configuration.nested.key }
|
112
|
+
context 'with nested hash' do
|
113
|
+
subject { configuration.nested.key }
|
112
114
|
|
113
|
-
it{ is_expected.to eq(
|
115
|
+
it { is_expected.to eq('value') }
|
114
116
|
end
|
115
117
|
end
|
116
118
|
|
117
|
-
describe
|
118
|
-
context
|
119
|
-
subject{ configuration.respond_to?(:key) }
|
119
|
+
describe '#respond_to_missing?' do
|
120
|
+
context 'when key exist' do
|
121
|
+
subject { configuration.respond_to?(:key) }
|
120
122
|
|
121
|
-
it{ is_expected.to eq(true) }
|
123
|
+
it { is_expected.to eq(true) }
|
122
124
|
end
|
123
125
|
|
124
|
-
context
|
125
|
-
subject{ configuration.respond_to?(:some_key) }
|
126
|
+
context 'when key does not exist' do
|
127
|
+
subject { configuration.respond_to?(:some_key) }
|
126
128
|
|
127
|
-
it{ is_expected.to eq(false) }
|
129
|
+
it { is_expected.to eq(false) }
|
128
130
|
end
|
129
131
|
|
130
|
-
context
|
131
|
-
subject{ configuration.nested.respond_to?(:key) }
|
132
|
+
context 'with nested hash' do
|
133
|
+
subject { configuration.nested.respond_to?(:key) }
|
132
134
|
|
133
|
-
it{ is_expected.to eq(true) }
|
135
|
+
it { is_expected.to eq(true) }
|
134
136
|
end
|
135
137
|
|
136
|
-
context
|
137
|
-
subject{ configuration.method(:key).call }
|
138
|
+
context 'when call it by method' do
|
139
|
+
subject { configuration.method(:key).call }
|
138
140
|
|
139
|
-
it{ is_expected.to eq(
|
141
|
+
it { is_expected.to eq('value') }
|
140
142
|
end
|
141
143
|
|
142
|
-
context
|
144
|
+
context 'when call it by method, which not exist' do
|
143
145
|
it 'raise error' do
|
144
|
-
expect{ configuration.method(:some_key) }.to raise_error(NameError)
|
146
|
+
expect { configuration.method(:some_key) }.to raise_error(NameError)
|
145
147
|
end
|
146
148
|
end
|
147
149
|
end
|
148
150
|
|
149
|
-
end
|
151
|
+
end
|
@@ -1,13 +1,15 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
RSpec.describe Global, 'generate js in Rails' do
|
4
6
|
before do
|
5
|
-
evaljs(
|
6
|
-
jscontext[:log] =
|
7
|
+
evaljs('var window = this;', true)
|
8
|
+
jscontext[:log] = ->(_context, value) { puts value.inspect }
|
7
9
|
|
8
10
|
described_class.configure do |config|
|
9
|
-
config.environment =
|
10
|
-
config.config_directory = File.join(Dir.pwd,
|
11
|
+
config.environment = 'test'
|
12
|
+
config.config_directory = File.join(Dir.pwd, 'spec/files')
|
11
13
|
end
|
12
14
|
|
13
15
|
end
|
@@ -22,20 +24,20 @@ RSpec.describe Global, "generate js in Rails" do
|
|
22
24
|
evaljs(described_class.generate_js)
|
23
25
|
end
|
24
26
|
|
25
|
-
it
|
26
|
-
expect(evaljs(
|
27
|
+
it 'should generate valid global config' do
|
28
|
+
expect(evaljs('Global.rspec_config.default_value')).to eq('default value')
|
27
29
|
end
|
28
30
|
|
29
|
-
it
|
30
|
-
expect(evaljs(
|
31
|
+
it 'should generate valid global config for array' do
|
32
|
+
expect(evaljs('Global.nested_config.some_array_value.length')).to eq(3)
|
31
33
|
end
|
32
34
|
|
33
|
-
it
|
34
|
-
expect(evaljs(
|
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')
|
35
37
|
end
|
36
38
|
|
37
|
-
it
|
38
|
-
expect(evaljs(
|
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')
|
39
41
|
end
|
40
42
|
|
41
43
|
end
|
@@ -50,8 +52,8 @@ RSpec.describe Global, "generate js in Rails" do
|
|
50
52
|
evaljs(described_class.generate_js)
|
51
53
|
end
|
52
54
|
|
53
|
-
it
|
54
|
-
expect(evaljs(
|
55
|
+
it 'should generate valid global config' do
|
56
|
+
expect(evaljs('CustomGlobal.rspec_config.default_value')).to eq('default value')
|
55
57
|
end
|
56
58
|
|
57
59
|
end
|
@@ -61,8 +63,8 @@ RSpec.describe Global, "generate js in Rails" do
|
|
61
63
|
evaljs(described_class.generate_js(namespace: 'CustomGlobalNamespace', only: :all))
|
62
64
|
end
|
63
65
|
|
64
|
-
it
|
65
|
-
expect(evaljs(
|
66
|
+
it 'should generate valid global config' do
|
67
|
+
expect(evaljs('CustomGlobalNamespace.rspec_config.default_value')).to eq('default value')
|
66
68
|
end
|
67
69
|
|
68
70
|
end
|
@@ -78,12 +80,12 @@ RSpec.describe Global, "generate js in Rails" do
|
|
78
80
|
evaljs(described_class.generate_js)
|
79
81
|
end
|
80
82
|
|
81
|
-
it
|
82
|
-
expect(evaljs(
|
83
|
+
it 'should generate visible global config' do
|
84
|
+
expect(evaljs('Global.bool_config.works')).to eq(true)
|
83
85
|
end
|
84
86
|
|
85
|
-
it
|
86
|
-
expect(evaljs(
|
87
|
+
it 'should have not some keys in js' do
|
88
|
+
expect(evaljs('Global.nested_config')).to be_nil
|
87
89
|
end
|
88
90
|
|
89
91
|
end
|
@@ -98,16 +100,16 @@ RSpec.describe Global, "generate js in Rails" do
|
|
98
100
|
evaljs(described_class.generate_js)
|
99
101
|
end
|
100
102
|
|
101
|
-
it
|
102
|
-
expect(evaljs(
|
103
|
+
it 'should generate visible global config with bool_config' do
|
104
|
+
expect(evaljs('Global.bool_config.works')).to eq(true)
|
103
105
|
end
|
104
106
|
|
105
|
-
it
|
106
|
-
expect(evaljs(
|
107
|
+
it 'should generate visible global config with rspec_config' do
|
108
|
+
expect(evaljs('Global.rspec_config.default_value')).to eq('default value')
|
107
109
|
end
|
108
110
|
|
109
|
-
it
|
110
|
-
expect(evaljs(
|
111
|
+
it 'should have not some keys in js' do
|
112
|
+
expect(evaljs('Global.nested_config')).to be_nil
|
111
113
|
end
|
112
114
|
|
113
115
|
end
|
data/spec/global_spec.rb
CHANGED
@@ -1,130 +1,143 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
2
4
|
|
3
5
|
RSpec.describe Global do
|
4
6
|
|
5
7
|
before(:each) do
|
6
8
|
described_class.configure do |config|
|
7
|
-
config.environment =
|
8
|
-
config.config_directory = File.join(Dir.pwd,
|
9
|
+
config.environment = 'test'
|
10
|
+
config.config_directory = File.join(Dir.pwd, 'spec/files')
|
9
11
|
end
|
10
12
|
end
|
11
13
|
|
12
|
-
describe
|
13
|
-
subject{ described_class.environment }
|
14
|
+
describe '.environment' do
|
15
|
+
subject { described_class.environment }
|
14
16
|
|
15
|
-
it{ is_expected.to eq(
|
17
|
+
it { is_expected.to eq('test') }
|
16
18
|
|
17
|
-
context
|
18
|
-
before{ described_class.environment = nil }
|
19
|
+
context 'when undefined' do
|
20
|
+
before { described_class.environment = nil }
|
19
21
|
|
20
|
-
it{ expect{ subject }.to raise_error(
|
22
|
+
it { expect { subject }.to raise_error('environment should be defined') }
|
21
23
|
end
|
22
24
|
end
|
23
25
|
|
24
|
-
describe
|
25
|
-
subject{ described_class.config_directory }
|
26
|
+
describe '.config_directory' do
|
27
|
+
subject { described_class.config_directory }
|
26
28
|
|
27
|
-
it{ is_expected.to eq(File.join(Dir.pwd,
|
29
|
+
it { is_expected.to eq(File.join(Dir.pwd, 'spec/files')) }
|
28
30
|
|
29
|
-
context
|
30
|
-
before{ described_class.config_directory = nil }
|
31
|
+
context 'when undefined' do
|
32
|
+
before { described_class.config_directory = nil }
|
31
33
|
|
32
|
-
it{ expect{ subject }.to raise_error(
|
34
|
+
it { expect { subject }.to raise_error('config_directory should be defined') }
|
33
35
|
end
|
34
36
|
end
|
35
37
|
|
36
|
-
describe
|
37
|
-
subject{ described_class.configuration }
|
38
|
+
describe '.configuration' do
|
39
|
+
subject { described_class.configuration }
|
38
40
|
|
39
|
-
it{ is_expected.to be_instance_of(Global::Configuration) }
|
41
|
+
it { is_expected.to be_instance_of(Global::Configuration) }
|
40
42
|
|
41
|
-
context
|
43
|
+
context 'when load from directory' do
|
42
44
|
describe '#rspec_config' do
|
43
45
|
subject { super().rspec_config }
|
44
46
|
describe '#to_hash' do
|
45
47
|
subject { super().to_hash }
|
46
|
-
it { is_expected.to eq(
|
48
|
+
it { is_expected.to eq('default_value' => 'default value', 'test_value' => 'test value') }
|
47
49
|
end
|
48
50
|
end
|
49
51
|
end
|
50
52
|
|
51
|
-
context
|
52
|
-
before{ described_class.config_directory = File.join(Dir.pwd,
|
53
|
+
context 'when load from file' do
|
54
|
+
before { described_class.config_directory = File.join(Dir.pwd, 'spec/files/rspec_config') }
|
53
55
|
|
54
56
|
describe '#rspec_config' do
|
55
57
|
subject { super().rspec_config }
|
56
58
|
describe '#to_hash' do
|
57
59
|
subject { super().to_hash }
|
58
|
-
it { is_expected.to eq(
|
60
|
+
it { is_expected.to eq('default_value' => 'default value', 'test_value' => 'test value') }
|
59
61
|
end
|
60
62
|
end
|
61
63
|
end
|
62
64
|
|
63
|
-
context
|
64
|
-
it{ expect(subject.rspec[
|
65
|
+
context 'when nested directories' do
|
66
|
+
it { expect(subject.rspec['config'].to_hash).to eq('default_value' => 'default nested value', 'test_value' => 'test nested value') }
|
67
|
+
end
|
68
|
+
|
69
|
+
context 'when boolean' do
|
70
|
+
it { expect(subject.bool_config.works).to eq(true) }
|
71
|
+
it { expect(subject.bool_config.works?).to eq(true) }
|
65
72
|
end
|
66
73
|
|
67
|
-
context
|
68
|
-
it{ expect(subject.
|
69
|
-
it{ expect(subject.
|
74
|
+
context 'environment file' do
|
75
|
+
it { expect(subject.aws.activated).to eq(true) }
|
76
|
+
it { expect(subject.aws.api_key).to eq('some api key') }
|
77
|
+
it { expect(subject.aws.api_secret).to eq('some secret') }
|
78
|
+
end
|
79
|
+
|
80
|
+
context 'skip files with dots in name' do
|
81
|
+
it { expect(subject['aws.test']).to eq(nil) }
|
82
|
+
it { expect { subject.fetch('aws.test') }.to raise_error(KeyError, /key not found/) }
|
70
83
|
end
|
71
84
|
end
|
72
85
|
|
73
|
-
context
|
74
|
-
subject{ described_class.reload! }
|
86
|
+
context '.reload!' do
|
87
|
+
subject { described_class.reload! }
|
75
88
|
|
76
89
|
before do
|
77
90
|
described_class.configuration
|
78
|
-
described_class.environment =
|
91
|
+
described_class.environment = 'development'
|
79
92
|
end
|
80
93
|
|
81
94
|
after do
|
82
|
-
described_class.environment =
|
95
|
+
described_class.environment = 'test'
|
83
96
|
described_class.reload!
|
84
97
|
end
|
85
98
|
|
86
|
-
it{ is_expected.to be_instance_of(Global::Configuration) }
|
99
|
+
it { is_expected.to be_instance_of(Global::Configuration) }
|
87
100
|
|
88
101
|
describe '#rspec_config' do
|
89
102
|
subject { super().rspec_config }
|
90
103
|
describe '#to_hash' do
|
91
104
|
subject { super().to_hash }
|
92
|
-
it { is_expected.to eq(
|
105
|
+
it { is_expected.to eq('default_value' => 'default value', 'test_value' => 'development value') }
|
93
106
|
end
|
94
107
|
end
|
95
108
|
end
|
96
|
-
|
97
|
-
describe ".respond_to_missing?" do
|
98
|
-
context "when file exists" do
|
99
|
-
subject{ described_class.respond_to?(:rspec_config) }
|
100
109
|
|
101
|
-
|
110
|
+
describe '.respond_to_missing?' do
|
111
|
+
context 'when file exists' do
|
112
|
+
subject { described_class.respond_to?(:rspec_config) }
|
113
|
+
|
114
|
+
it { is_expected.to be_truthy }
|
102
115
|
end
|
103
116
|
|
104
|
-
context
|
105
|
-
subject{ described_class.respond_to?(:some_file) }
|
117
|
+
context 'when file does not exist' do
|
118
|
+
subject { described_class.respond_to?(:some_file) }
|
106
119
|
|
107
|
-
it{ is_expected.to be_falsey }
|
120
|
+
it { is_expected.to be_falsey }
|
108
121
|
end
|
109
122
|
end
|
110
123
|
|
111
|
-
describe
|
112
|
-
context
|
113
|
-
subject{ described_class.rspec_config }
|
124
|
+
describe '.method_missing' do
|
125
|
+
context 'when file exists' do
|
126
|
+
subject { described_class.rspec_config }
|
114
127
|
|
115
|
-
it{ is_expected.to
|
128
|
+
it { is_expected.to be_kind_of(Global::Configuration) }
|
116
129
|
end
|
117
130
|
|
118
|
-
context
|
119
|
-
subject{ described_class.some_file }
|
131
|
+
context 'when file does not exist' do
|
132
|
+
subject { described_class.some_file }
|
120
133
|
|
121
|
-
it{ expect{ subject }.to raise_error(NoMethodError) }
|
134
|
+
it { expect { subject }.to raise_error(NoMethodError) }
|
122
135
|
end
|
123
136
|
|
124
|
-
context
|
125
|
-
subject{ described_class.nested_config }
|
137
|
+
context 'when file with nested hash' do
|
138
|
+
subject { described_class.nested_config }
|
126
139
|
|
127
|
-
it{ is_expected.to be_kind_of(Global::Configuration) }
|
140
|
+
it { is_expected.to be_kind_of(Global::Configuration) }
|
128
141
|
end
|
129
142
|
|
130
143
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
|
3
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
4
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
5
5
|
require 'rspec'
|
6
6
|
require 'global'
|
7
7
|
require 'simplecov'
|
@@ -40,4 +40,4 @@ RSpec.configure do |config|
|
|
40
40
|
|
41
41
|
config.order = 'random'
|
42
42
|
config.include JavascriptHelper
|
43
|
-
end
|
43
|
+
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
if defined?(JRUBY_VERSION)
|
2
4
|
require 'rhino'
|
3
5
|
JS_LIB_CLASS = Rhino
|
@@ -7,6 +9,7 @@ else
|
|
7
9
|
end
|
8
10
|
|
9
11
|
module JavascriptHelper
|
12
|
+
|
10
13
|
def evaljs(string, force = false)
|
11
14
|
jscontext(force).eval(string)
|
12
15
|
end
|
@@ -21,4 +24,4 @@ module JavascriptHelper
|
|
21
24
|
end
|
22
25
|
end
|
23
26
|
|
24
|
-
end
|
27
|
+
end
|
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: global
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Railsware LLC
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-06-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rake
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 12.3.1
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 12.3.1
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: rspec
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -25,33 +39,33 @@ dependencies:
|
|
25
39
|
- !ruby/object:Gem::Version
|
26
40
|
version: '3.0'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
42
|
+
name: rubocop
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
30
44
|
requirements:
|
31
45
|
- - "~>"
|
32
46
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.
|
47
|
+
version: '0.57'
|
34
48
|
type: :development
|
35
49
|
prerelease: false
|
36
50
|
version_requirements: !ruby/object:Gem::Requirement
|
37
51
|
requirements:
|
38
52
|
- - "~>"
|
39
53
|
- !ruby/object:Gem::Version
|
40
|
-
version: 0.
|
54
|
+
version: '0.57'
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
56
|
+
name: simplecov
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
44
58
|
requirements:
|
45
59
|
- - "~>"
|
46
60
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
61
|
+
version: 0.16.1
|
48
62
|
type: :development
|
49
63
|
prerelease: false
|
50
64
|
version_requirements: !ruby/object:Gem::Requirement
|
51
65
|
requirements:
|
52
66
|
- - "~>"
|
53
67
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
68
|
+
version: 0.16.1
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: therubyracer
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -88,6 +102,7 @@ extra_rdoc_files: []
|
|
88
102
|
files:
|
89
103
|
- ".gitignore"
|
90
104
|
- ".rspec"
|
105
|
+
- ".rubocop.yml"
|
91
106
|
- ".ruby-version"
|
92
107
|
- ".travis.yml"
|
93
108
|
- Gemfile
|
@@ -101,6 +116,8 @@ files:
|
|
101
116
|
- lib/global/configuration.rb
|
102
117
|
- lib/global/engine.rb
|
103
118
|
- lib/global/version.rb
|
119
|
+
- spec/files/aws.test.yml
|
120
|
+
- spec/files/aws.yml
|
104
121
|
- spec/files/bool_config.yml
|
105
122
|
- spec/files/nested_config.yml
|
106
123
|
- spec/files/rspec/config.yml
|
@@ -135,6 +152,8 @@ signing_key:
|
|
135
152
|
specification_version: 4
|
136
153
|
summary: Simple way to load your configs from yaml
|
137
154
|
test_files:
|
155
|
+
- spec/files/aws.test.yml
|
156
|
+
- spec/files/aws.yml
|
138
157
|
- spec/files/bool_config.yml
|
139
158
|
- spec/files/nested_config.yml
|
140
159
|
- spec/files/rspec/config.yml
|