Class: Gluey::Glues::Script

Inherits:
Base
  • Object
show all
Defined in:
lib/gluey/glues/script.rb

Direct Known Subclasses

JsScript

Constant Summary collapse

PREFIXES =
['//'].map{|p| Regexp.escape(p)}
DIRECTIVES_REGEXP =
Regexp.compile "\\A(?:\\s*#{PREFIXES.map{|p| "(?:#{p}=.*\\n?)+"}.join '|'})+"

Instance Method Summary collapse

Methods inherited from Base

#initialize, #read_base_file

Constructor Details

This class inherits a constructor from Gluey::Glues::Base

Instance Method Details

#pre_append(args) ⇒ Object



29
30
31
32
33
34
# File 'lib/gluey/glues/script.rb', line 29

def pre_append(args)
  file = find_nested_file(args.first)
  cached_file, deps = get_nested_piece file
  @dependencies.concat deps
  @script = "#{@script}#{File.read cached_file}"
end

#pre_depend_on(args) ⇒ Object



36
37
38
39
# File 'lib/gluey/glues/script.rb', line 36

def pre_depend_on(args)
  file = find_nested_file(args[1])
  @dependencies << ::Gluey::Dependencies::SingleFile.new(file).actualize
end

#pre_prepend(args) ⇒ Object



22
23
24
25
26
27
# File 'lib/gluey/glues/script.rb', line 22

def pre_prepend(args)
  file = find_nested_file(args.first)
  cached_file, deps = get_nested_piece file
  @dependencies.concat deps
  @script = "#{File.read cached_file}#{@script}"
end

#process(base_file, deps) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/gluey/glues/script.rb', line 9

def process(base_file, deps)
  @script, @directives = strip_directives read_base_file(base_file)
  return @script unless @directives
  @dependencies = deps
  @output = ''
  @base_file = base_file
  @marks = {append_self: ->{ @output += @script }}
  @directives.each{|args| directive args, :pre }
  @marks[:append_self].call if @marks[:append_self]
  @directives.each{|args| directive args, :post }
  @output
end