Class: XSpec::Compiler

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

Instance Method Summary collapse

Instance Method Details

#compile(xspec_path) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
# File 'lib/xspec.rb', line 14

def compile(xspec_path)
  xspec_path = Pathname.new(xspec_path)
  begin
    SpecFile.new(processor, xspec_path, transformer(xspec_path))
  rescue Exception => e
    puts "Problem compiling XSpec file #{xspec_path}"
    puts e
    puts e.backtrace
    nil
  end
end

#compiled_xml(xspec_path) ⇒ Object



30
31
32
# File 'lib/xspec.rb', line 30

def compiled_xml(xspec_path)
  compiler.transform(processor.XML(xspec_path.open('r:utf-8')))
end

#processorObject



10
11
12
# File 'lib/xspec.rb', line 10

def processor
  @processor ||= SaxonProcessorFactory.processor
end

#transformer(xspec_path) ⇒ Object



26
27
28
# File 'lib/xspec.rb', line 26

def transformer(xspec_path)
  Saxon::XSLT::Stylesheet.new(compiled_xml(xspec_path))
end