roku_builder 4.2.3 → 4.3.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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b0772c12ebdcd69b9302ca440d1f2e5051940d4d
|
4
|
+
data.tar.gz: b13067ec43f38578d3393bfad7c8ba6e30d4a3b3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 44f6adf44331e86cc7b26abd5675a192982a27e4cd7c2d10c75f5ed6abfa432f7a7f736841ed614b337a8b1e1d9390b65a97e939bbead151bf67590ec2f2039d
|
7
|
+
data.tar.gz: '090622268bdabcbd3806c5dfa7e8687227048f730db1542a334419ba87e3cbfedc28c3fb45dd7b1fb4150a2ea921bb44b436e149c56d54bec1c52d223436df86'
|
data/CHANGELOG
CHANGED
data/lib/roku_builder/config.rb
CHANGED
@@ -84,19 +84,20 @@ module RokuBuilder
|
|
84
84
|
@config = {parent_config: @options[:config]}
|
85
85
|
depth = 1
|
86
86
|
while @config[:parent_config]
|
87
|
-
parent_config_hash =
|
87
|
+
parent_config_hash = read_config(parent_io)
|
88
88
|
@config[:child_config] = @config[:parent_config]
|
89
89
|
@config.delete(:parent_config)
|
90
90
|
@config.merge!(parent_config_hash) {|_key, v1, _v2| v1}
|
91
91
|
depth += 1
|
92
92
|
raise InvalidConfig, "Parent Configs Too Deep." if depth > 10
|
93
93
|
end
|
94
|
+
merge_local_config
|
94
95
|
fix_config_symbol_values
|
95
96
|
end
|
96
97
|
|
97
|
-
def
|
98
|
+
def read_config(io)
|
98
99
|
begin
|
99
|
-
JSON.parse(
|
100
|
+
JSON.parse(io.read, {symbolize_names: true})
|
100
101
|
rescue JSON::ParserError
|
101
102
|
raise InvalidConfig, "Config file is not valid JSON"
|
102
103
|
end
|
@@ -115,6 +116,14 @@ module RokuBuilder
|
|
115
116
|
end
|
116
117
|
end
|
117
118
|
|
119
|
+
def merge_local_config
|
120
|
+
local_config_path = "./.roku_config.json"
|
121
|
+
if File.exist?(local_config_path)
|
122
|
+
local_config_hash = read_config(File.open(local_config_path))
|
123
|
+
@config = @config.deep_merge(local_config_hash)
|
124
|
+
end
|
125
|
+
end
|
126
|
+
|
118
127
|
def fix_config_symbol_values
|
119
128
|
if @config[:devices]
|
120
129
|
@config[:devices][:default] = @config[:devices][:default].to_sym
|
data/lib/roku_builder/version.rb
CHANGED
@@ -77,6 +77,32 @@ module RokuBuilder
|
|
77
77
|
assert_equal "app", config.raw[:projects][:p1][:app_name]
|
78
78
|
end
|
79
79
|
|
80
|
+
def test_config_read_local
|
81
|
+
options = build_options({config: File.join(test_files_path(ConfigTest), "config.json"), validate: true})
|
82
|
+
config = Config.new(options: options)
|
83
|
+
|
84
|
+
mock = Minitest::Mock.new
|
85
|
+
io = proc { |path|
|
86
|
+
if path == './.roku_config.json'
|
87
|
+
mock
|
88
|
+
else
|
89
|
+
IO.new(IO.sysopen(path))
|
90
|
+
end
|
91
|
+
}
|
92
|
+
local_config_content = IO.read(File.join(test_files_path(ConfigTest), "local.json"))
|
93
|
+
mock.expect(:read, local_config_content)
|
94
|
+
|
95
|
+
File.stub(:exist?, true) do
|
96
|
+
File.stub(:open, io) do
|
97
|
+
config.load
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
mock.verify
|
102
|
+
refute_nil config.raw[:projects][:p2]
|
103
|
+
assert_equal "app2", config.raw[:projects][:p2][:app_name]
|
104
|
+
end
|
105
|
+
|
80
106
|
def test_config_edit
|
81
107
|
orginal = File.join(test_files_path(ConfigTest), "config.json")
|
82
108
|
tmp = File.join(test_files_path(ConfigTest), "tmpconfig.json")
|
@@ -0,0 +1,20 @@
|
|
1
|
+
{
|
2
|
+
"projects": {
|
3
|
+
"p2": {
|
4
|
+
"directory": "/tmp",
|
5
|
+
"folders": ["resources","source"],
|
6
|
+
"files": ["manifest"],
|
7
|
+
"app_name": "app2",
|
8
|
+
"stage_method": "git",
|
9
|
+
"stages":{
|
10
|
+
"production": {
|
11
|
+
"branch": "master",
|
12
|
+
"key": {
|
13
|
+
"keyed_pkg": "/tmp/package.pkg",
|
14
|
+
"password": "password"
|
15
|
+
}
|
16
|
+
}
|
17
|
+
}
|
18
|
+
}
|
19
|
+
}
|
20
|
+
}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: roku_builder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- greeneca
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-12-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rubyzip
|
@@ -503,6 +503,7 @@ files:
|
|
503
503
|
- test/roku_builder/test_files/config_test/bad.json
|
504
504
|
- test/roku_builder/test_files/config_test/child.json
|
505
505
|
- test/roku_builder/test_files/config_test/config.json
|
506
|
+
- test/roku_builder/test_files/config_test/local.json
|
506
507
|
- test/roku_builder/test_files/config_test/non_json.json
|
507
508
|
- test/roku_builder/test_files/config_test/parent.json
|
508
509
|
- test/roku_builder/test_files/config_test/parent_projects.json
|
@@ -596,6 +597,7 @@ test_files:
|
|
596
597
|
- test/roku_builder/test_files/config_test/bad.json
|
597
598
|
- test/roku_builder/test_files/config_test/child.json
|
598
599
|
- test/roku_builder/test_files/config_test/config.json
|
600
|
+
- test/roku_builder/test_files/config_test/local.json
|
599
601
|
- test/roku_builder/test_files/config_test/non_json.json
|
600
602
|
- test/roku_builder/test_files/config_test/parent.json
|
601
603
|
- test/roku_builder/test_files/config_test/parent_projects.json
|