Sha256: 06066b52773a199de606944cf97458246696a19d710bb1e1ad5e4abc3821ff97

Contents?: true

Size: 1.17 KB

Versions: 11

Compression:

Stored size: 1.17 KB

Contents

require 'pathname'


namespace :cesium do

  desc 'fix relative to modular paths for requireJS'
  task :fix_requirejs_paths do

    Dir[File.join(Rake.original_dir, 'app', 'assets', 'javascripts', '**', '*.js')].each_with_index do |p, _|
      skip_if_folder = %w(ThirdParty)

      path = Pathname(p)
      dir = path.dirname
      dir_folder_name = dir.to_s.split('/').last

      #module_path = p.split('/javascripts/').last
      #puts "dir: #{dir}\nmodule: #{module_path}\n"

      unless skip_if_folder.include?(dir_folder_name)

        content = File.read p

        content.gsub!(/define\(\[([^\]]*)/ix) do |__|
          modules = $1.gsub(/\/\/\s*[^\n]*/ix, '').gsub(/\s/, '').gsub(/'|"/, '').split(',').collect! do |m|
            skip_if = %w(require exports '')
            m = m.strip
            if skip_if.include?(m)
              m
            else
              File.absolute_path(File.join(dir.to_s, m)).split('/javascripts/').last
            end
          end
          ret_str = modules.collect!{ |m| "'#{m}'" }.join(', ')
          "define([#{ret_str}"
        end

        File.open(p, 'w') do |file|
          file.write(content)
        end

      end
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
cesium-1.24.0 lib/tasks/cesium_tasks.rake
cesium-1.23.0 lib/tasks/cesium_tasks.rake
cesium-1.18.0 lib/tasks/cesium_tasks.rake
cesium-1.17.0 lib/tasks/cesium_tasks.rake
cesium-0.25.0 lib/tasks/cesium_tasks.rake
cesium-0.24.1 lib/tasks/cesium_tasks.rake
cesium-0.24.0 lib/tasks/cesium_tasks.rake
cesium-0.23.0 lib/tasks/cesium_tasks.rake
cesium-0.22.0 lib/tasks/cesium_tasks.rake
cesium-0.21.1 lib/tasks/cesium_tasks.rake
cesium-0.21 lib/tasks/cesium_tasks.rake