module Ninja

Constants

DEFAULT_NINJA_FILENAME

Public Class Methods

Build(rule, target, explicit, implicit=nil) click to toggle source
# File lib/ninja.rb, line 169
def self.Build(rule, target, explicit, implicit=nil)
  Ninja::Build.new(rule, target, explicit, implicit)
end
Explicitly(*xs) click to toggle source
# File lib/ninja.rb, line 177
def self.Explicitly(*xs)
  Ninja::Explicitly.new(xs)
end
Implicitly(*xs) click to toggle source
# File lib/ninja.rb, line 181
def self.Implicitly(*xs)
  Ninja::Implicitly.new(xs)
end
Rule(rule, depfile="") click to toggle source

Facade To Hide the implementation

# File lib/ninja.rb, line 165
def self.Rule(rule, depfile="") 
  Ninja::Rule.new(rule, depfile)
end
Target(*xs) click to toggle source
# File lib/ninja.rb, line 173
def self.Target(*xs)
  Ninja::Target.new(xs)
end
__to_ninja_format(xs) click to toggle source
# File lib/ninja.rb, line 109
def self.__to_ninja_format(xs)
  xs.map{ |x| x.to_ninja_format }.join "\n\n"
end
create_UUID() click to toggle source
# File lib/ninja.rb, line 8
def self.create_UUID
  UUIDTools::UUID.random_create
end
create_ninja_file(ninjas) click to toggle source
# File lib/ninja.rb, line 123
def self.create_ninja_file(ninjas)
  namespace :ninja do
    desc("generate ninja file if ninja.rake is changed")
    file DEFAULT_NINJA_FILENAME => "ninja.rake" do 
      puts "--- REGENERATING THE NINJA FILE NOW ---"
      f = File.new(DEFAULT_NINJA_FILENAME, "w")
      txt = to_ninja_format(ninjas)
      f.write(txt)
      f.close
    end
  end
end
end_of_ninja(*ninjas) click to toggle source
# File lib/ninja.rb, line 153
def self.end_of_ninja(*ninjas)
  create_ninja_file(ninjas.flatten)

  ninjas.each do |ninja|
    ninja.get_target_object.to_a.each do |target|
      make_ninja_task(target)
    end
  end
end
make_ninja_task(target) click to toggle source
# File lib/ninja.rb, line 136
def self.make_ninja_task(target) 
  namespace :ninja do
    namespace :build do
      task target =>  DEFAULT_NINJA_FILENAME do 
        sh "ninja #{target}"
      end
      task :all => target
    end
    namespace :clean do
      task target => DEFAULT_NINJA_FILENAME do
        sh "ninja -t clean #{target}"
      end
      task :all => target
    end 
  end
end
rules(ninjas) click to toggle source
# File lib/ninja.rb, line 113
def self.rules(ninjas)
  __rules = ninjas.map{ |x| x.get_rule_object } 
  Set.new(__rules).to_a
end
to_ninja_format(ninjas) click to toggle source
# File lib/ninja.rb, line 118
def self.to_ninja_format(ninjas)
  xs = (rules(ninjas) + ninjas).flatten
  __to_ninja_format(xs)
end