Class: QED::Script

Inherits:
Object
  • Object
show all
Defined in:
lib/qed/script.rb

Overview

Script

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(applique, file, scope = nil) ⇒ Script

New Script



23
24
25
26
27
28
29
30
# File 'lib/qed/script.rb', line 23

def initialize(applique, file, scope=nil)
  @applique = applique.dup # localize copy of applique
  @file     = file
  @scope    = scope || Scope.new(applique)
  @binding  = @scope.__binding__
  #@loadlist = []
  #apply_environment
end

Instance Attribute Details

#appliqueObject (readonly)

Returns the value of attribute applique.



14
15
16
# File 'lib/qed/script.rb', line 14

def applique
  @applique
end

#fileObject (readonly)

Demonstrandum file.



17
18
19
# File 'lib/qed/script.rb', line 17

def file
  @file
end

#scopeObject (readonly)

Returns the value of attribute scope.



20
21
22
# File 'lib/qed/script.rb', line 20

def scope
  @scope
end

Instance Method Details

#adviceObject



38
39
40
41
# File 'lib/qed/script.rb', line 38

def advice
  #@scope.__advice__
  @applique.__advice__
end

#bindingObject

One binding per script.



33
34
35
# File 'lib/qed/script.rb', line 33

def binding
  @binding #||= @scope.__binding__
end

#directoryObject

Expanded dirname of file.



44
45
46
# File 'lib/qed/script.rb', line 44

def directory
  @directory ||= File.expand_path(File.dirname(file))
end

#nameObject

File basename less extension.



49
50
51
# File 'lib/qed/script.rb', line 49

def name
  @name ||= File.basename(file).chomp(File.extname(file))
end

#parseObject

def source

@source ||= (
  #case file
  #when /^http/
  #  ext  = File.extname(file).sub('.','')
  #  open(file)
  #else
    File.read(file)
  #end
)

end



66
67
68
# File 'lib/qed/script.rb', line 66

def parse
  Parser.new(file).parse
end

#run(*observers) ⇒ Object



71
72
73
74
# File 'lib/qed/script.rb', line 71

def run(*observers)
  evaluator = Evaluator.new(self, *observers)
  evaluator.run
end