Class: PuppetHerald::Javascript

Inherits:
Object
  • Object
show all
Defined in:
lib/puppet-herald/javascript.rb

Constant Summary collapse

@@files =
nil
@@base =
'lib/puppet-herald/public'

Class Method Summary collapse

Class Method Details

.filesObject



11
12
13
14
15
16
17
18
19
20
21
# File 'lib/puppet-herald/javascript.rb', line 11

def self.files
  if PuppetHerald::is_in_dev?
    @@files = nil
  end
  if @@files.nil?
    public_dir = PuppetHerald::relative_dir(@@base)
    all = Dir.chdir(public_dir) { Dir.glob('**/*.js') }
    @@files = all.reverse.reject { |file| file.match(/_test\.js$/) }
  end
  return @@files
end

.uglify(mapname) ⇒ Object



23
24
25
26
27
28
29
30
31
32
# File 'lib/puppet-herald/javascript.rb', line 23

def self.uglify mapname
  sources = files.collect { |file| File.read("#{@@base}/#{file}") }
  source = sources.join "\n"
  uglifier = Uglifier.new(:source_map_url => mapname)
  uglified, source_map = uglifier.compile_with_map(source)
  return {
    'js'     => uglified,
    'js.map' => source_map
  }
end