Class: Skipjack::FSharpCompiler

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(*args) {|_self| ... } ⇒ FSharpCompiler

Returns a new instance of FSharpCompiler.

Yields:

  • (_self)

Yield Parameters:



6
7
8
9
# File 'lib/skipjack/fsharp.rb', line 6

def initialize *args
  @args = *args
  yield self if block_given?
end

Instance Attribute Details

#referencesObject



24
25
26
# File 'lib/skipjack/fsharp.rb', line 24

def references
  @references ||= []
end

#targetObject

Returns the value of attribute target.



3
4
5
# File 'lib/skipjack/fsharp.rb', line 3

def target
  @target
end

Instance Method Details

#create_file_task(*args) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/skipjack/fsharp.rb', line 28

def create_file_task *args
  dependencies = source_files
  file_task = Rake::FileTask::define_task *args do |t|
    if t.application.windows?
      compiler = "fsc"
    else
      compiler = "fsharpc"
    end

    out = "--out:#{t.name}"
    src = source_files.join(" ")
    refs = references.each {|r| r.prepend("--reference:") }
    refs = refs.join(" ")
    cmd = "#{compiler} #{refs} #{out} --target:#{target.to_s} #{src}"
    raise "Error executing command" unless Kernel.system cmd
  end
  file_task.enhance dependencies
end

#create_taskObject



47
48
49
# File 'lib/skipjack/fsharp.rb', line 47

def create_task
  create_file_task *@args
end

#source_filesObject



20
21
22
# File 'lib/skipjack/fsharp.rb', line 20

def source_files
  @source_files ||= []
end

#source_files=(val) ⇒ Object



16
17
18
# File 'lib/skipjack/fsharp.rb', line 16

def source_files=(val)
  @source_files = val
end