roku_builder 4.21.3 → 4.22.1

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
  SHA256:
3
- metadata.gz: 6a91edfcf033f846e9d9e1e3f0fc37afe4cfc3c58ec4b2062275dbfd683744fb
4
- data.tar.gz: bc90febc52b08f211ef0d48346a4652798a433b2532af98d801d41cf505e2989
3
+ metadata.gz: 4e254e28ba3fddc22a7578a793813f98038f8f6436c44f909900ea71028f233e
4
+ data.tar.gz: 40b2d0b27529a797a34b567354a859d870d496e3fe63b17612c5af1d38342347
5
5
  SHA512:
6
- metadata.gz: a77a6044775302eca3b344497cfe2815d3b550dad7d289c629d04e0c2193bf4d4c6563ec9b28a4158712fdbbef8e354ca48747266499fdd5e9fd6028f3a63a59
7
- data.tar.gz: 741fee309f4e65e99757b1ddfb964f39f1a9391b56abd1f42d09507c1255ef040bd8ae990e821edf4b0453870065c11cfa6c99f60c9f48eabcae0a2b53904ab4
6
+ metadata.gz: 15a804bfc305022817923fcd6dcb643a2d6d080a8d39d1697ceb51f559669d443255d82c9d187cf17603b7a4083d430612870b70de8e42c052c0a3ec0999ca49
7
+ data.tar.gz: 36bef8ba56d9a908ea4e01e6202f7f5d5b734321cf4b640f52c3c1e129b1e1b85067359a5a8e353932f6c51298a7296a02e18a2094c835581dca20b8a5efb2a5
data/.travis.yml CHANGED
@@ -1,5 +1,5 @@
1
1
  language: ruby
2
2
  rvm:
3
- - "2.4.1"
3
+ - "2.6.0"
4
4
  before_install:
5
5
  - gem install bundler
data/lib/roku_builder.rb CHANGED
@@ -200,7 +200,7 @@ module RokuBuilder
200
200
  stager.stage
201
201
  end
202
202
  instance = plugin.new(config: @@config)
203
- instance.send(@@options.command, {options: @@options})
203
+ instance.send(@@options.command, **{options: @@options})
204
204
  stager.unstage if stager
205
205
  end
206
206
  end
@@ -224,7 +224,7 @@ module RokuBuilder
224
224
  def self.process_hook(hook:, params:)
225
225
  @@plugins.each do |plugin|
226
226
  if plugin.respond_to?("#{hook}_hook".to_sym)
227
- plugin.send("#{hook}_hook", params)
227
+ plugin.send("#{hook}_hook", **params)
228
228
  end
229
229
  end
230
230
  end
@@ -89,7 +89,7 @@ module RokuBuilder
89
89
  attrs = {}
90
90
  attrs[section_singular] = content
91
91
  method = "validate_#{section_singular}".to_sym
92
- send(method, attrs)
92
+ send(method, **attrs)
93
93
  end
94
94
 
95
95
  def singularize(section:)
@@ -30,6 +30,7 @@ module RokuBuilder
30
30
  def analyze(options:, quiet: false)
31
31
  @options = options
32
32
  @warnings = []
33
+ @sca_warning = {}
33
34
  performance_config = get_config("performance_config.json")
34
35
  linter_config = get_config(".roku_builder_linter.json", true)
35
36
  linter_config ||= {is_ssai: false}
@@ -13,38 +13,57 @@ module RokuBuilder
13
13
  File.open(file_path) do |file|
14
14
  in_xml_comment = false
15
15
  indent_inspector = IndentationInspector.new(rules: @indent_config, path: file_path) if @indent_config
16
+ full_file = []
17
+ file_no_comments = []
18
+ lines_to_ignore = []
16
19
  file.readlines.each_with_index do |line, line_number|
17
20
  full_line = line.dup
18
- line = line.partition("'").first if file_path.end_with?(".brs")
21
+ line.gsub!(/'.*/, "") if file_path.end_with?(".brs")
19
22
  if file_path.end_with?(".xml")
20
23
  if in_xml_comment
21
24
  if line.gsub!(/.*-->/, "")
22
25
  in_xml_comment = false
23
26
  else
24
- line = ""
27
+ line = "\n"
25
28
  end
26
29
  end
27
30
  line.gsub!(/<!--.*-->/, "")
28
31
  in_xml_comment = true if line.gsub!(/<!--.*/, "")
29
32
  end
30
33
  indent_inspector.check_line(line: full_line, number: line_number, comment: in_xml_comment) if indent_inspector
31
- @inspector_config.each do |line_inspector|
32
- line_to_check = line
33
- line_to_check = full_line if line_inspector[:include_comments]
34
+ if /'.*ignore-warning/i.match(full_line)
35
+ lines_to_ignore.push line_number
36
+ end
37
+ full_file.push(full_line)
38
+ file_no_comments.push(line)
39
+ end
40
+ @warnings += indent_inspector.warnings if indent_inspector
41
+ no_comments = file_no_comments.join("")
42
+ file = full_file.join("")
43
+ @inspector_config.each do |line_inspector|
44
+ unless line_inspector[:disabled]
45
+ to_check = no_comments
46
+ to_check = file if line_inspector[:include_comments]
34
47
  match = nil
35
- if line_inspector[:case_sensitive]
36
- match = /#{line_inspector[:regex]}/.match(line_to_check)
37
- else
38
- match = /#{line_inspector[:regex]}/i.match(line_to_check)
39
- end
40
- if match
41
- unless /'.*ignore-warning/i.match(full_line)
42
- add_warning(inspector: line_inspector, file: file_path, line: line_number, match: match)
48
+ start = 0
49
+ loop do
50
+ if line_inspector[:case_sensitive]
51
+ match = /#{line_inspector[:regex]}/.match(to_check, start)
52
+ else
53
+ match = /#{line_inspector[:regex]}/i.match(to_check, start)
54
+ end
55
+ if match
56
+ start = match.end(0)
57
+ line_number = to_check[0..match.begin(0)].split("\n", -1).count - 1
58
+ unless lines_to_ignore.include?(line_number)
59
+ add_warning(inspector: line_inspector, file: file_path, line: line_number, match: match)
60
+ end
61
+ else
62
+ break
43
63
  end
44
64
  end
45
65
  end
46
66
  end
47
- @warnings += indent_inspector.warnings if indent_inspector
48
67
  end
49
68
  @warnings
50
69
  end
@@ -7,7 +7,7 @@ module RokuBuilder
7
7
  extend Plugin
8
8
 
9
9
  def init
10
- @warningFileSize = 250 * 1024
10
+ @warningFileSize = 500 * 1024
11
11
  end
12
12
 
13
13
  def self.commands
@@ -37,6 +37,9 @@ module RokuBuilder
37
37
  parser.on("-x", "--exclude", "Apply exclude config to sideload") do
38
38
  options[:exclude] = true
39
39
  end
40
+ parser.on("--remote-debug", "Sideload will enable remote debug") do
41
+ options[:remoteDebug] = true
42
+ end
40
43
  end
41
44
 
42
45
  def self.dependencies
@@ -52,7 +55,7 @@ module RokuBuilder
52
55
  build(options: options)
53
56
  end
54
57
  keep_build_file = is_build_command(options) and options[:out]
55
- upload
58
+ upload(options)
56
59
  # Cleanup
57
60
  File.delete(file_path(:in)) if did_build and not keep_build_file
58
61
  end
@@ -99,11 +102,12 @@ module RokuBuilder
99
102
  [:sideload, :build].include? options.command
100
103
  end
101
104
 
102
- def upload
105
+ def upload(options)
103
106
  payload = {
104
107
  mysubmit: "Replace",
105
- archive: Faraday::UploadIO.new(file_path(:in), 'application/zip')
108
+ archive: Faraday::UploadIO.new(file_path(:in), 'application/zip'),
106
109
  }
110
+ payload["remotedebug"] = "1" if options[:remoteDebug]
107
111
  response = multipart_connection.post "/plugin_install", payload
108
112
  @logger.debug("Status: #{response.status}, Body: #{response.body}")
109
113
  if response.status==200 and response.body=~/Identical to previous version/
@@ -10,7 +10,7 @@
10
10
  "message": "Found DoesExist check. Try using invalid check on dot reference"
11
11
  },
12
12
  {
13
- "regex": "[^\\s]+\\[\"[^\"]+\"\\]",
13
+ "regex": "\\w+\\[\"[^\"]+\"\\]",
14
14
  "severity": "warning",
15
15
  "message": "Found AA String reference. Try switching to dot reference"
16
16
  },
@@ -7,7 +7,7 @@
7
7
  # you may not use this file except in compliance with the License.
8
8
  # You may obtain a copy of the License at
9
9
  #
10
- # http://www.apache.org/licenses/LICENSE-2.0
10
+ # https://www.apache.org/licenses/LICENSE-2.0
11
11
  #
12
12
  # Unless required by applicable law or agreed to in writing, software
13
13
  # distributed under the License is distributed on an "AS IS" BASIS,
@@ -80,7 +80,8 @@ case "`uname`" in
80
80
  ;;
81
81
  esac
82
82
 
83
- CLASSPATH=$APP_HOME/lib/sca-cmd.jar
83
+ CLASSPATH=$APP_HOME/lib/sca-cmd.jar:$APP_HOME/lib/sca-library.jar:$APP_HOME/lib/commons-cli-1.4.jar:$APP_HOME/lib/jackson-module-jaxb-annotations-2.12.2.jar:$APP_HOME/lib/jackson-databind-2.12.2.jar:$APP_HOME/lib/jackson-annotations-2.12.2.jar:$APP_HOME/lib/jackson-core-2.12.2.jar:$APP_HOME/lib/jackson-dataformat-xml-2.12.2.jar:$APP_HOME/lib/commons-io-2.8.0.jar:$APP_HOME/lib/commons-lang3-3.12.0.jar:$APP_HOME/lib/commons-compress-1.20.jar:$APP_HOME/lib/woodstox-core-6.2.4.jar:$APP_HOME/lib/stax2-api-4.2.1.jar:$APP_HOME/lib/jakarta.xml.bind-api-2.3.2.jar:$APP_HOME/lib/jakarta.activation-api-1.2.1.jar
84
+
84
85
 
85
86
  # Determine the Java command to use to start the JVM.
86
87
  if [ -n "$JAVA_HOME" ] ; then
@@ -125,10 +126,11 @@ if $darwin; then
125
126
  GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
126
127
  fi
127
128
 
128
- # For Cygwin, switch paths to Windows format before running java
129
- if $cygwin ; then
129
+ # For Cygwin or MSYS, switch paths to Windows format before running java
130
+ if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
130
131
  APP_HOME=`cygpath --path --mixed "$APP_HOME"`
131
132
  CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
133
+
132
134
  JAVACMD=`cygpath --unix "$JAVACMD"`
133
135
 
134
136
  # We build the pattern for arguments to be converted via cygpath
@@ -154,19 +156,19 @@ if $cygwin ; then
154
156
  else
155
157
  eval `echo args$i`="\"$arg\""
156
158
  fi
157
- i=$((i+1))
159
+ i=`expr $i + 1`
158
160
  done
159
161
  case $i in
160
- (0) set -- ;;
161
- (1) set -- "$args0" ;;
162
- (2) set -- "$args0" "$args1" ;;
163
- (3) set -- "$args0" "$args1" "$args2" ;;
164
- (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
165
- (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
166
- (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
167
- (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
168
- (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
169
- (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
162
+ 0) set -- ;;
163
+ 1) set -- "$args0" ;;
164
+ 2) set -- "$args0" "$args1" ;;
165
+ 3) set -- "$args0" "$args1" "$args2" ;;
166
+ 4) set -- "$args0" "$args1" "$args2" "$args3" ;;
167
+ 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
168
+ 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
169
+ 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
170
+ 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
171
+ 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
170
172
  esac
171
173
  fi
172
174
 
@@ -175,14 +177,9 @@ save () {
175
177
  for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
176
178
  echo " "
177
179
  }
178
- APP_ARGS=$(save "$@")
180
+ APP_ARGS=`save "$@"`
179
181
 
180
182
  # Collect all arguments for the java command, following the shell quoting and substitution rules
181
183
  eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $SCA_CMD_OPTS -classpath "\"$CLASSPATH\"" com.roku.sca.cmd.CommandLineInterface "$APP_ARGS"
182
184
 
183
- # by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
184
- if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
185
- cd "$(dirname "$0")"
186
- fi
187
-
188
185
  exec "$JAVACMD" "$@"
@@ -5,7 +5,7 @@
5
5
  @rem you may not use this file except in compliance with the License.
6
6
  @rem You may obtain a copy of the License at
7
7
  @rem
8
- @rem http://www.apache.org/licenses/LICENSE-2.0
8
+ @rem https://www.apache.org/licenses/LICENSE-2.0
9
9
  @rem
10
10
  @rem Unless required by applicable law or agreed to in writing, software
11
11
  @rem distributed under the License is distributed on an "AS IS" BASIS,
@@ -29,6 +29,9 @@ if "%DIRNAME%" == "" set DIRNAME=.
29
29
  set APP_BASE_NAME=%~n0
30
30
  set APP_HOME=%DIRNAME%..
31
31
 
32
+ @rem Resolve any "." and ".." in APP_HOME to make it shorter.
33
+ for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
34
+
32
35
  @rem Add default JVM options here. You can also use JAVA_OPTS and SCA_CMD_OPTS to pass JVM options to this script.
33
36
  set DEFAULT_JVM_OPTS=
34
37
 
@@ -37,7 +40,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome
37
40
 
38
41
  set JAVA_EXE=java.exe
39
42
  %JAVA_EXE% -version >NUL 2>&1
40
- if "%ERRORLEVEL%" == "0" goto init
43
+ if "%ERRORLEVEL%" == "0" goto execute
41
44
 
42
45
  echo.
43
46
  echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
@@ -51,7 +54,7 @@ goto fail
51
54
  set JAVA_HOME=%JAVA_HOME:"=%
52
55
  set JAVA_EXE=%JAVA_HOME%/bin/java.exe
53
56
 
54
- if exist "%JAVA_EXE%" goto init
57
+ if exist "%JAVA_EXE%" goto execute
55
58
 
56
59
  echo.
57
60
  echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
@@ -61,28 +64,14 @@ echo location of your Java installation.
61
64
 
62
65
  goto fail
63
66
 
64
- :init
65
- @rem Get command-line arguments, handling Windows variants
66
-
67
- if not "%OS%" == "Windows_NT" goto win9xME_args
68
-
69
- :win9xME_args
70
- @rem Slurp the command line arguments.
71
- set CMD_LINE_ARGS=
72
- set _SKIP=2
73
-
74
- :win9xME_args_slurp
75
- if "x%~1" == "x" goto execute
76
-
77
- set CMD_LINE_ARGS=%*
78
-
79
67
  :execute
80
68
  @rem Setup the command line
81
69
 
82
- set CLASSPATH=%APP_HOME%\lib\sca-cmd.jar
70
+ set CLASSPATH=%APP_HOME%\lib\sca-cmd.jar;%APP_HOME%\lib\sca-library.jar;%APP_HOME%\lib\commons-cli-1.4.jar;%APP_HOME%\lib\jackson-module-jaxb-annotations-2.12.2.jar;%APP_HOME%\lib\jackson-databind-2.12.2.jar;%APP_HOME%\lib\jackson-annotations-2.12.2.jar;%APP_HOME%\lib\jackson-core-2.12.2.jar;%APP_HOME%\lib\jackson-dataformat-xml-2.12.2.jar;%APP_HOME%\lib\commons-io-2.8.0.jar;%APP_HOME%\lib\commons-lang3-3.12.0.jar;%APP_HOME%\lib\commons-compress-1.20.jar;%APP_HOME%\lib\woodstox-core-6.2.4.jar;%APP_HOME%\lib\stax2-api-4.2.1.jar;%APP_HOME%\lib\jakarta.xml.bind-api-2.3.2.jar;%APP_HOME%\lib\jakarta.activation-api-1.2.1.jar
71
+
83
72
 
84
73
  @rem Execute sca-cmd
85
- "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %SCA_CMD_OPTS% -classpath "%CLASSPATH%" com.roku.sca.cmd.CommandLineInterface %CMD_LINE_ARGS%
74
+ "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %SCA_CMD_OPTS% -classpath "%CLASSPATH%" com.roku.sca.cmd.CommandLineInterface %*
86
75
 
87
76
  :end
88
77
  @rem End local scope for the variables with windows NT shell
@@ -2,5 +2,5 @@
2
2
 
3
3
  module RokuBuilder
4
4
  # Version of the RokuBuilder Gem
5
- VERSION = "4.21.3"
5
+ VERSION = "4.22.1"
6
6
  end
@@ -106,7 +106,7 @@ module RokuBuilder
106
106
  warnings = test_file(text: "function test() as String 'IGNORE-WARNING\n? \"test\"\nend function")
107
107
  assert_equal 0, warnings.count
108
108
  end
109
- def test_performance_for_loop_title_case
109
+ def test_performance_for_each_loop_title_case
110
110
  warnings = test_file(text: "For each button in buttons\n ? button\nEND FOR")
111
111
  assert_equal 0, warnings.count
112
112
  end
@@ -148,6 +148,7 @@ module RokuBuilder
148
148
  end
149
149
 
150
150
  logger.verify
151
+ warnings
151
152
  end
152
153
 
153
154
  def test(quiet=true)
@@ -32,7 +32,8 @@ module RokuBuilder
32
32
  end
33
33
  count = 0
34
34
  read_stub = Proc.new do |size|
35
- raise SystemExit if count = 2
35
+ shouldExit = (count = 2)
36
+ raise SystemExit if shouldExit
36
37
  count += 1
37
38
  end
38
39
  connection = Minitest::Mock.new
@@ -32,14 +32,13 @@ module RokuBuilder
32
32
  end
33
33
  def test_options_parse
34
34
  parser = Minitest::Mock.new()
35
- options_hash = {}
36
35
  options = Options.allocate
37
36
  parser.expect(:banner=, nil, [String])
38
37
  parser.expect(:parse!, nil)
39
38
  OptionParser.stub(:new, parser) do
40
39
  options.stub(:add_plugin_options, nil) do
41
40
  options.stub(:validate_parser, nil) do
42
- options_hash = options.send(:parse)
41
+ options.send(:parse)
43
42
  end
44
43
  end
45
44
  end
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.21.3
4
+ version: 4.22.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - greeneca
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-01-06 00:00:00.000000000 Z
11
+ date: 2021-04-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubyzip
@@ -616,7 +616,7 @@ homepage: ''
616
616
  licenses:
617
617
  - Apache-2.0
618
618
  metadata: {}
619
- post_install_message:
619
+ post_install_message:
620
620
  rdoc_options: []
621
621
  require_paths:
622
622
  - lib
@@ -631,8 +631,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
631
631
  - !ruby/object:Gem::Version
632
632
  version: '0'
633
633
  requirements: []
634
- rubygems_version: 3.1.1
635
- signing_key:
634
+ rubygems_version: 3.0.8
635
+ signing_key:
636
636
  specification_version: 4
637
637
  summary: Build Tool for Roku Apps
638
638
  test_files: