Class: Opal::CliRunners::Firefox
- Inherits:
-
Object
- Object
- Opal::CliRunners::Firefox
- Defined in:
- lib/opal/cli_runners/firefox.rb
Constant Summary collapse
- SCRIPT_PATH =
File.('firefox_cdp_interface.rb', __dir__).freeze
- DEFAULT_CHROME_HOST =
'localhost'
- DEFAULT_CHROME_PORT =
makes sure it doesn't accidentally connect to a lingering chrome
9333
Instance Attribute Summary collapse
-
#builder ⇒ Object
readonly
Returns the value of attribute builder.
-
#exit_status ⇒ Object
readonly
Returns the value of attribute exit_status.
-
#output ⇒ Object
readonly
Returns the value of attribute output.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(data) ⇒ Firefox
constructor
A new instance of Firefox.
- #run ⇒ Object
Constructor Details
#initialize(data) ⇒ Firefox
Returns a new instance of Firefox.
26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/opal/cli_runners/firefox.rb', line 26 def initialize(data) builder = data[:builder].call = data[:options] argv = data[:argv] if argv && argv.any? warn "warning: ARGV is not supported by the Firefox runner #{argv.inspect}" end @output = .fetch(:output, $stdout) @builder = builder end |
Instance Attribute Details
#builder ⇒ Object (readonly)
Returns the value of attribute builder.
39 40 41 |
# File 'lib/opal/cli_runners/firefox.rb', line 39 def builder @builder end |
#exit_status ⇒ Object (readonly)
Returns the value of attribute exit_status.
39 40 41 |
# File 'lib/opal/cli_runners/firefox.rb', line 39 def exit_status @exit_status end |
#output ⇒ Object (readonly)
Returns the value of attribute output.
39 40 41 |
# File 'lib/opal/cli_runners/firefox.rb', line 39 def output @output end |
Class Method Details
.call(data) ⇒ Object
21 22 23 24 |
# File 'lib/opal/cli_runners/firefox.rb', line 21 def self.call(data) runner = new(data) runner.run end |
Instance Method Details
#run ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/opal/cli_runners/firefox.rb', line 41 def run mktmpdir do |dir| with_firefox_server do prepare_files_in(dir) env = { 'CHROME_HOST' => chrome_host, 'CHROME_PORT' => chrome_port.to_s, 'NODE_PATH' => File.join(__dir__, 'node_modules') } env['OPAL_CDP_EXT'] = builder.output_extension cmd = [ RbConfig.ruby, "#{__dir__}/../../../exe/opal", '--no-exit', '-I', __dir__, '-r', 'source-map-support-node', SCRIPT_PATH, dir ] Kernel.exec(env, *cmd) end end end |