roku_builder 4.10.1 → 4.11.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG +4 -0
- data/lib/roku_builder/plugins/linker.rb +27 -15
- data/lib/roku_builder/plugins/packager.rb +1 -1
- data/lib/roku_builder/version.rb +1 -1
- data/lib/roku_builder.rb +1 -0
- data/test/roku_builder/plugins/test_linker.rb +34 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 74fa60531d4c42c06f388863fcd9fc574c6baa8f
|
4
|
+
data.tar.gz: e0d23f7e93e5e9c9674f4dda343605ab5b6a71c0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ec3b3d0e804b33326f07d577574cd229bf974f00afc42f43717a86a89195ed449dc1182de433fc3f884c373d354c357e520631273101956127e89e99fa41d10c
|
7
|
+
data.tar.gz: 87b428ec4501d3329acf31bafb39d7684df33b20eaf91ec58a156d2fb7786e4a8cebf546d5173ac2d1081652142b54d2a8317c003de1046f440873b071c712f1
|
data/CHANGELOG
CHANGED
@@ -9,15 +9,19 @@ module RokuBuilder
|
|
9
9
|
def self.commands
|
10
10
|
{
|
11
11
|
deeplink: {device: true, stage: true},
|
12
|
+
input: {device: true},
|
12
13
|
applist: {device: true}
|
13
14
|
}
|
14
15
|
end
|
15
16
|
|
16
17
|
def self.parse_options(parser:, options:)
|
17
18
|
parser.separator "Commands:"
|
18
|
-
parser.on("-o", "--deeplink OPTIONS", "Deeplink into app. Define options as keypairs. (eg. a:b, c:d,e:f)") do |o|
|
19
|
+
parser.on("-o", "--deeplink OPTIONS", "Launch and Deeplink into app. Define options as keypairs. (eg. a:b, c:d,e:f)") do |o|
|
19
20
|
options[:deeplink] = o
|
20
21
|
end
|
22
|
+
parser.on("-i", "--input OPTIONS", "Deeplink into app. Define options as keypairs. (eg. a:b, c:d,e:f)") do |o|
|
23
|
+
options[:input] = o
|
24
|
+
end
|
21
25
|
parser.on("-A", "--app-list", "List currently installed apps") do
|
22
26
|
options[:applist] = true
|
23
27
|
end
|
@@ -39,21 +43,11 @@ module RokuBuilder
|
|
39
43
|
app_id = options[:app_id]
|
40
44
|
app_id ||= "dev"
|
41
45
|
path = "/launch/#{app_id}"
|
42
|
-
|
43
|
-
|
44
|
-
unless payload.keys.count > 0
|
45
|
-
@logger.warn "No options sent to launched app"
|
46
|
-
else
|
47
|
-
payload = parameterize(payload)
|
48
|
-
path = "#{path}?#{payload}"
|
49
|
-
@logger.info "Deeplink:"
|
50
|
-
@logger.info payload
|
51
|
-
@logger.info "CURL:"
|
52
|
-
@logger.info "curl -d '' '#{@url}:8060#{path}'"
|
53
|
-
end
|
46
|
+
send_options(path: path, options: options[:deeplink])
|
47
|
+
end
|
54
48
|
|
55
|
-
|
56
|
-
|
49
|
+
def input(options:)
|
50
|
+
send_options(path: "/input", options: options[:input])
|
57
51
|
end
|
58
52
|
|
59
53
|
# List currently installed apps
|
@@ -76,6 +70,24 @@ module RokuBuilder
|
|
76
70
|
|
77
71
|
private
|
78
72
|
|
73
|
+
def send_options(path:, options:)
|
74
|
+
payload = RokuBuilder.options_parse(options: options)
|
75
|
+
|
76
|
+
unless payload.keys.count > 0
|
77
|
+
@logger.warn "No options sent to launched app"
|
78
|
+
else
|
79
|
+
payload = parameterize(payload)
|
80
|
+
path = "#{path}?#{payload}"
|
81
|
+
@logger.info "Deeplink:"
|
82
|
+
@logger.info payload
|
83
|
+
@logger.info "CURL:"
|
84
|
+
@logger.info "curl -d '' '#{@url}:8060#{path}'"
|
85
|
+
end
|
86
|
+
|
87
|
+
response = multipart_connection(port: 8060).post path
|
88
|
+
@logger.fatal("Failed Deeplinking") unless response.success?
|
89
|
+
end
|
90
|
+
|
79
91
|
# Parameterize options to be sent to the app
|
80
92
|
# @param params [Hash] Parameters to be sent
|
81
93
|
# @return [String] Parameters as a string, URI escaped
|
@@ -25,7 +25,7 @@ module RokuBuilder
|
|
25
25
|
options[:genkey] = true
|
26
26
|
end
|
27
27
|
parser.separator "Options:"
|
28
|
-
parser.on("
|
28
|
+
parser.on("--inspect-package", "Inspect package after packaging") do
|
29
29
|
options[:inspect_package] = true
|
30
30
|
end
|
31
31
|
end
|
data/lib/roku_builder/version.rb
CHANGED
data/lib/roku_builder.rb
CHANGED
@@ -95,6 +95,40 @@ module RokuBuilder
|
|
95
95
|
linker = Linker.new(config: config)
|
96
96
|
linker.deeplink(options: options)
|
97
97
|
end
|
98
|
+
def test_linker_link_sideload_input
|
99
|
+
@requests.push(stub_request(:post, "http://192.168.0.100:8060/input?a=A&b=B:C&d=a%5Cb").
|
100
|
+
to_return(status: 200, body: "", headers: {}))
|
101
|
+
@requests.push(stub_request(:post, "http://192.168.0.100:8060/keypress/Home").
|
102
|
+
to_return(status: 200, body: "", headers: {}))
|
103
|
+
@requests.push(stub_request(:post, "http://192.168.0.100/plugin_install").
|
104
|
+
to_return(status: 200, body: "Install Success", headers: {}))
|
105
|
+
|
106
|
+
options = {input: 'a:A, b:B:C, d:a\b', working: true}
|
107
|
+
config, options = build_config_options_objects(LinkerTest, options, false)
|
108
|
+
|
109
|
+
linker = Linker.new(config: config)
|
110
|
+
linker.input(options: options)
|
111
|
+
end
|
112
|
+
def test_linker_link_app_input
|
113
|
+
@requests.push(stub_request(:post, "http://192.168.0.100:8060/input?a=A&b=B:C&d=a%5Cb").
|
114
|
+
to_return(status: 200, body: "", headers: {}))
|
115
|
+
|
116
|
+
options = {input: 'a:A, b:B:C, d:a\b', app_id: "1234"}
|
117
|
+
config, options = build_config_options_objects(LinkerTest, options, false)
|
118
|
+
|
119
|
+
linker = Linker.new(config: config)
|
120
|
+
linker.input(options: options)
|
121
|
+
end
|
122
|
+
def test_linker_link_nothing_input
|
123
|
+
@requests.push(stub_request(:post, "http://192.168.0.100:8060/input").
|
124
|
+
to_return(status: 200, body: "", headers: {}))
|
125
|
+
|
126
|
+
options = {input: ''}
|
127
|
+
config, options = build_config_options_objects(LinkerTest, options, false)
|
128
|
+
|
129
|
+
linker = Linker.new(config: config)
|
130
|
+
linker.input(options: options)
|
131
|
+
end
|
98
132
|
|
99
133
|
def test_linker_list
|
100
134
|
body = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<apps>\n\t
|
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.11.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- greeneca
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-12-
|
11
|
+
date: 2018-12-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rubyzip
|