Class: OpalWebpackCompileServer::LoadPathManager

Inherits:
Object
  • Object
show all
Defined in:
lib/opal-webpack-compile-server/exe.rb

Class Method Summary collapse

Class Method Details

.get_load_path_entries(path) ⇒ Object



53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# File 'lib/opal-webpack-compile-server/exe.rb', line 53

def self.get_load_path_entries(path)
  path_entries = []
  dir_entries = Dir.entries(path)
  dir_entries.each do |entry|
    next if entry == '.'
    next if entry == '..'
    absolute_path = File.join(path, entry)
    if File.directory?(absolute_path)
      more_path_entries = get_load_path_entries(absolute_path)
      path_entries.push(*more_path_entries) if more_path_entries.size > 0
    elsif (absolute_path.end_with?('.rb') || absolute_path.end_with?('.js')) && File.file?(absolute_path)
      path_entries.push(absolute_path)
    end
  end
  path_entries
end

.get_load_pathsObject



70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# File 'lib/opal-webpack-compile-server/exe.rb', line 70

def self.get_load_paths
  load_paths = %x{
    bundle exec rails runner "puts (Rails.configuration.respond_to?(:assets) ? (Rails.configuration.assets.paths + Opal.paths).uniq : Opal.paths)"
  }
  if $? == 0
    load_path_lines = load_paths.split("\n")
    load_path_lines.pop if load_path_lines.last == ''

    load_path_entries = []

    load_path_lines.each do |path|
      more_path_entries = get_load_path_entries(path)
      load_path_entries.push(*more_path_entries) if more_path_entries.size > 0
    end
    cache_obj = { 'opal_load_paths' => load_path_lines, 'opal_load_path_entries' => load_path_entries }
    Dir.mkdir(OpalWebpackCompileServer::OWL_CACHE_DIR) unless Dir.exist?(OpalWebpackCompileServer::OWL_CACHE_DIR)
    File.write(OpalWebpackCompileServer::OWL_LP_CACHE, Oj.dump(cache_obj))
  else
    puts 'Error getting load paths!'
    exit(2)
  end
end