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