Top Level Namespace
Defined Under Namespace
Modules: Delphi
Instance Method Summary collapse
- #_parse_args(args) ⇒ Object
- #delphi(*args) ⇒ Object
- #delphi_exe(sym) ⇒ Object
- #dunit(sym, prereqs) ⇒ Object
Instance Method Details
#_parse_args(args) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/delphi/dsl.rb', line 6 def _parse_args(args) args = (args.take(args.length - 1) + args.last.to_a).flatten if args.last.instance_of?(Hash) sym, dproj, platform, config, prereqs = args[0], args[1], nil, nil, [] case args.length when 5 platform = args[2] config = args[3] prereqs = args[4] when 4 platform = args[2] config = args[3] when 3 prereqs = args[2] end [sym, dproj, platform, config, prereqs] end |
#delphi(*args) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/delphi/dsl.rb', line 23 def delphi(*args) fail '<Symbol> and <Dproj file> are required arguments to the delphi compilation task' if args.length < 2 sym, dproj, platform, config, prereqs = _parse_args(args) proj = Delphi::Project.new(dproj) proj.platform = platform if platform proj.config = config if config task sym => prereqs do Rake::Task[proj.output].invoke end file proj.output do proj.compile yield proj if block_given? end Rake::Task[sym].sources = proj CLOBBER.include(proj.output) end |
#delphi_exe(sym) ⇒ Object
42 43 44 |
# File 'lib/delphi/dsl.rb', line 42 def delphi_exe(sym) Rake::Task[sym].sources.output end |
#dunit(sym, prereqs) ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/delphi/dsl.rb', line 46 def dunit(sym, prereqs) if prereqs.instance_of?(Hash) compile_sym = prereqs.keys[0] prereqs = prereqs[compile_sym] else compile_sym = prereqs prereqs = [] end prereqs = [prereqs, compile_sym].flatten task sym => prereqs do exe = delphi_exe(compile_sym) Dir.chdir(File.dirname(exe)) do system(File.basename(exe)) fail 'Unit tests failed' unless $CHILD_STATUS.to_i == 0 yield if block_given? end end end |