Class: Opal::Connect::RakeTask

Inherits:
Object
  • Object
show all
Includes:
Rake::DSL
Defined in:
lib/opal/connect/rake_task.rb

Instance Method Summary collapse

Constructor Details

#initialize(name = 'webpack', opts = {}) ⇒ RakeTask

Returns a new instance of RakeTask.



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/opal/connect/rake_task.rb', line 6

def initialize(name = 'webpack', opts = {})
  namespace name do
    desc "Start webpack"
    task :run do
      envs = initialize_connect
      exec(envs, 'webpack --progress --watch')
    end

    desc "Build webpack"
    task :build do
      envs = initialize_connect
      exec(envs, 'webpack --progress')
    end
  end
end

Instance Method Details

#initialize_connectObject



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/opal/connect/rake_task.rb', line 22

def initialize_connect
  return unless defined? Opal.append_path

  Opal::Connect.write_entry_file(self)

  code  = Opal::Connect::STUBS.map { |stub| "require '#{stub}'" }.join(";")
  stubs = Opal::Config.stubbed_files.to_a
  Opal::Connect.write_file(:opal, code, Opal::VERSION, stubs)

  ENV.to_h.merge({
    BUNDLE_BIN: true,
    CONNECT_STUBS: "#{Opal::Connect.stubbed_files.join(',')},opal-connect,opal-jquery,opal-rspec",
    OPAL_LOAD_PATH: Opal.paths.join(":"),
    OPAL_USE_BUNDLER: true
  }).inject({}) { |env, (k, v)| env[k.to_s] = v.to_s; env }
end