roku_builder 3.12.2 → 3.12.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2fb178e01cea210f0293002bfda3f18dfa08c525
4
- data.tar.gz: e18dfb21ea5fb2d3c4fdb646b50446a4adc3ed08
3
+ metadata.gz: a6465e57b5cb5dad5fb1606d51f9469d6334c39a
4
+ data.tar.gz: 8e0fbdbef24e1dd4d283b82a54313a8e6605aac8
5
5
  SHA512:
6
- metadata.gz: f5115c01940757881bf4a18ddbecae18fb6da21e727d698be7defad2ab4fd73f76c14e5fa88bc7f8580958aa9cec707cb0a6b35d188690b362c9fd47d15d23ea
7
- data.tar.gz: cecd6468a8e1b2e2c5b386555370175191d977b1141180373643911b769563d2b97c4c77269f65fbaca92ac224e3ddd50d5a7ab97da5eb0263539e28bbe347e1
6
+ metadata.gz: c3c26fb3b92fa5e9ef0e5655049a68aa3811f22a8807bb76087d70f355f299be662356340512deca359b0fdd04208ed6d9f7c495e729811ceb56dc3fa276a3dc
7
+ data.tar.gz: 1ed8966ed21dec4b74eccd1236649c375336977b8d422d35296059157bb4bb3adcb2d785018faac535d06f41fc855d3af2975c0dba95ad972e90e5d2de699a64
data/CHANGELOG CHANGED
@@ -1,3 +1,12 @@
1
+ = 3.12.4 =
2
+
3
+ - Add regexp option for filtering monitor logs
4
+
5
+ = 3.12.3 =
6
+
7
+ - Fix Monitor draw order on commands
8
+ - Dependancies update
9
+
1
10
  = 3.12.2 =
2
11
 
3
12
  - Fix bug with monitor not exiting
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- roku_builder (3.12.2)
4
+ roku_builder (3.12.4)
5
5
  faraday (~> 0.11)
6
6
  faraday-digestauth (~> 0.2)
7
7
  git (~> 1.3)
@@ -30,7 +30,7 @@ GEM
30
30
  ffi (1.9.17)
31
31
  formatador (0.2.5)
32
32
  git (1.3.0)
33
- guard (2.14.0)
33
+ guard (2.14.1)
34
34
  formatador (>= 0.2.4)
35
35
  listen (>= 2.7, < 4.0)
36
36
  lumberjack (~> 1.0)
@@ -49,6 +49,9 @@ GEM
49
49
  rb-inotify (~> 0.9, >= 0.9.7)
50
50
  ruby_dep (~> 1.2)
51
51
  lumberjack (1.0.11)
52
+ m (1.5.0)
53
+ method_source (>= 0.6.7)
54
+ rake (>= 0.9.2.2)
52
55
  method_source (0.8.2)
53
56
  mini_portile2 (2.1.0)
54
57
  minitest (5.10.1)
@@ -58,7 +61,7 @@ GEM
58
61
  minitest (~> 5.0)
59
62
  multipart-post (2.0.0)
60
63
  nenv (0.3.0)
61
- net-http-digest_auth (1.4)
64
+ net-http-digest_auth (1.4.1)
62
65
  net-ping (2.0.1)
63
66
  net-telnet (0.1.1)
64
67
  nokogiri (1.7.0.1)
@@ -75,7 +78,7 @@ GEM
75
78
  rb-inotify (0.9.8)
76
79
  ffi (>= 0.5.0)
77
80
  ruby_dep (1.5.0)
78
- rubyzip (1.2.0)
81
+ rubyzip (1.2.1)
79
82
  shellany (0.0.1)
80
83
  simplecov (0.12.0)
81
84
  docile (~> 1.1.0)
@@ -86,7 +89,7 @@ GEM
86
89
  term-ansicolor (1.4.0)
87
90
  tins (~> 1.0)
88
91
  thor (0.19.4)
89
- tins (1.13.0)
92
+ tins (1.13.2)
90
93
  yard (0.9.8)
91
94
 
92
95
  PLATFORMS
@@ -98,6 +101,7 @@ DEPENDENCIES
98
101
  coveralls (~> 0.8)
99
102
  guard (~> 2.14)
100
103
  guard-minitest (~> 2.4)
104
+ m (~> 1.5)
101
105
  minitest (~> 5.10)
102
106
  minitest-autotest (~> 1.0)
103
107
  minitest-server (~> 1.0)
data/bin/roku CHANGED
@@ -170,6 +170,10 @@ parser = OptionParser.new do |opts|
170
170
  options[:in] = i
171
171
  end
172
172
 
173
+ opts.on("-r", "--regexp REGEXP", "A regular expression used to filter monitor logs") do |r|
174
+ options[:regexp] = r
175
+ end
176
+
173
177
  opts.on("-x", "--exclude", "Apply exclude config to sideload") do
174
178
  options[:exclude] = true
175
179
  end
@@ -46,18 +46,8 @@ module RokuBuilder
46
46
  # @return [Hash] roku config object
47
47
  def self.get_config(config:, logger:)
48
48
  begin
49
- config = {parent_config: config}
50
- depth = 1
51
- while config[:parent_config]
52
- config_parent = JSON.parse(File.open(config[:parent_config]).read, {symbolize_names: true})
53
- config.delete(:parent_config)
54
- config.merge!(config_parent) {|key, v1, v2| v1}
55
- depth += 1
56
- if depth > 10
57
- logger.fatal "Parent configs too deep."
58
- return nil
59
- end
60
- end
49
+ config = build_config(config: config, logger: logger)
50
+ return nil unless config
61
51
  config[:devices][:default] = config[:devices][:default].to_sym
62
52
  config[:projects][:default] = config[:projects][:default].to_sym
63
53
  config[:projects].each_pair do |key,value|
@@ -83,6 +73,22 @@ module RokuBuilder
83
73
  end
84
74
  end
85
75
 
76
+ def self.build_config(config:, logger:)
77
+ config = {parent_config: config}
78
+ depth = 1
79
+ while config[:parent_config]
80
+ config_parent = JSON.parse(File.open(config[:parent_config]).read, {symbolize_names: true})
81
+ config.delete(:parent_config)
82
+ config.merge!(config_parent) {|_key, v1, _v2| v1}
83
+ depth += 1
84
+ if depth > 10
85
+ logger.fatal "Parent configs too deep."
86
+ return nil
87
+ end
88
+ end
89
+ config
90
+ end
91
+
86
92
 
87
93
  # Edit the roku config
88
94
  # @param config [String] path for the roku config
@@ -227,6 +227,9 @@ module RokuBuilder
227
227
  # Create Monitor Config
228
228
  if options[:monitor]
229
229
  configs[:monitor_config] = {type: options[:monitor].to_sym}
230
+ if options[:regexp]
231
+ configs[:monitor_config][:regexp] = /#{options[:regexp]}/
232
+ end
230
233
  end
231
234
  # Create Navigate Config
232
235
  mappings = {}
@@ -36,28 +36,21 @@ module RokuBuilder
36
36
  def self.validate_config(config:)
37
37
  codes = []
38
38
  validate_structure(codes: codes, config: config)
39
- if config[:devices]
40
- config[:devices].each {|device, device_config|
41
- next if device == :default
42
- validate_device(codes: codes, device: device_config)
43
- }
44
- end
45
- if config[:projects]
46
- config[:projects].each {|project,project_config|
47
- next if project == :default or project == :project_dir
48
- validate_project(codes: codes, project: project_config)
49
- if project_config[:stages]
50
- project_config[:stages].each {|_stage, stage_config|
51
- validate_stage(codes: codes, stage: stage_config, project: project_config, config: config)
52
- }
39
+ [:projects, :devices, :keys].each do |type|
40
+ if config[type]
41
+ config[type].each do |key, value|
42
+ next if [:default, :key_dir, :project_dir].include?(key)
43
+ method = "validate_#{type.to_s[0..-2]}".to_sym
44
+ attrs = {codes: codes}
45
+ attrs[type.to_s[0..-2].to_sym] = value
46
+ send(method, attrs)
47
+ if value[:stages]
48
+ value[:stages].each {|_stage, stage_config|
49
+ validate_stage(codes: codes, stage: stage_config, project: value, config: config)
50
+ }
51
+ end
53
52
  end
54
- }
55
- end
56
- if config[:keys]
57
- config[:keys].each {|key,key_config|
58
- next if key == :key_dir
59
- validate_key(codes: codes, key: key_config)
60
- }
53
+ end
61
54
  end
62
55
  if config[:input_mapping]
63
56
  config[:input_mapping].each_value {|info| validate_mapping(codes: codes, mapping: info) }
@@ -21,7 +21,8 @@ module RokuBuilder
21
21
 
22
22
  # Monitor a development log on the Roku device
23
23
  # @param type [Symbol] The log type to monitor
24
- def monitor(type:)
24
+ # @param regexp [Regexp] regular expression to filter text on
25
+ def monitor(type:, regexp: nil)
25
26
  telnet_config = { 'Host' => @roku_ip_address, 'Port' => @ports[type] }
26
27
  waitfor_config = { 'Match' => /./, 'Timeout' => false }
27
28
 
@@ -32,7 +33,7 @@ module RokuBuilder
32
33
  all_text = ""
33
34
  while true
34
35
  connection.waitfor(waitfor) do |txt|
35
- all_text = manage_text(all_text: all_text, txt: txt)
36
+ all_text = manage_text(all_text: all_text, txt: txt, regexp: regexp)
36
37
  end
37
38
  end
38
39
  }
@@ -87,6 +88,7 @@ module RokuBuilder
87
88
  running = false
88
89
  else
89
90
  thread[:connection].puts(command)
91
+ sleep(0.1)
90
92
  end
91
93
  rescue SystemExit, Interrupt
92
94
  thread[:connection].puts("\C-c")
@@ -97,11 +99,14 @@ module RokuBuilder
97
99
  # Handle text from telnet
98
100
  # @param all_text [String] remaining partial line text
99
101
  # @param txt [String] current string from telnet
102
+ # @param regexp [Regexp] regular expression to filter text on
100
103
  # @return [String] remaining partial line text
101
- def manage_text(all_text:, txt:)
104
+ def manage_text(all_text:, txt:, regexp: nil)
102
105
  all_text += txt
103
106
  while line = all_text.slice!(/^.*\n/) do
104
- puts line if !line.strip.empty?
107
+ if !line.strip.empty?
108
+ puts line if regexp.nil? or regexp.match(line)
109
+ end
105
110
  end
106
111
 
107
112
  if all_text.downcase == "BrightScript Debugger> ".downcase
@@ -2,5 +2,5 @@
2
2
 
3
3
  module RokuBuilder
4
4
  # Version of the RokuBuilder Gem
5
- VERSION = "3.12.2"
5
+ VERSION = "3.12.4"
6
6
  end
data/roku_builder.gemspec CHANGED
@@ -39,4 +39,5 @@ Gem::Specification.new do |spec|
39
39
  spec.add_development_dependency "yard", "~> 0.9"
40
40
  spec.add_development_dependency "guard", "~> 2.14"
41
41
  spec.add_development_dependency "guard-minitest", "~> 2.4"
42
+ spec.add_development_dependency "m", "~> 1.5"
42
43
  end
@@ -195,6 +195,17 @@ class ConfigParserTest < Minitest::Test
195
195
  RokuBuilder::ConfigParser.send(:setup_simple_configs, **args)
196
196
  end
197
197
 
198
+ def test_monitor_config
199
+ args = {
200
+ config: {},
201
+ configs: {project_config: {directory: "dir"}, init_params: {}, out: {}},
202
+ options: {monitor: "main", regexp: "^A$"},
203
+ }
204
+ RokuBuilder::ConfigParser.send(:setup_active_configs, **args)
205
+ refute_nil args[:configs][:monitor_config][:regexp]
206
+ assert args[:configs][:monitor_config][:regexp].match("A")
207
+ end
208
+
198
209
  def test_outfile_config
199
210
  configs = {}
200
211
  args = {
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: 3.12.2
4
+ version: 3.12.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - greeneca
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-02-07 00:00:00.000000000 Z
11
+ date: 2017-02-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubyzip
@@ -262,6 +262,20 @@ dependencies:
262
262
  - - "~>"
263
263
  - !ruby/object:Gem::Version
264
264
  version: '2.4'
265
+ - !ruby/object:Gem::Dependency
266
+ name: m
267
+ requirement: !ruby/object:Gem::Requirement
268
+ requirements:
269
+ - - "~>"
270
+ - !ruby/object:Gem::Version
271
+ version: '1.5'
272
+ type: :development
273
+ prerelease: false
274
+ version_requirements: !ruby/object:Gem::Requirement
275
+ requirements:
276
+ - - "~>"
277
+ - !ruby/object:Gem::Version
278
+ version: '1.5'
265
279
  description: Allows the user to easily sideload, package, deeplink, test, roku apps.
266
280
  email:
267
281
  - charles.greene@redspace.com