????JFIF??x?x????'
| Server IP : 172.67.174.47  /  Your IP : 216.73.216.113 Web Server : LiteSpeed System : Linux premium151.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64 User : tempvsty ( 647) PHP Version : 8.0.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /././././proc/thread-self/root/opt/alt/ruby32/share/gems/gems/rake-13.0.6/doc/ | 
| Upload File : | 
= Original Prototype Rake
This is the original 100 line prototype rake program.
---
 #!/opt/alt/ruby32/bin/ruby
 require 'ftools'
 class Task
   TASKS = Hash.new
   attr_reader :prerequisites
   def initialize(task_name)
     @name = task_name
     @prerequisites = []
     @actions = []
   end
   def enhance(deps=nil, &block)
     @prerequisites |= deps if deps
     @actions << block if block_given?
     self
   end
   def name
     @name.to_s
   end
   def invoke
     @prerequisites.each { |n| Task[n].invoke }
     execute if needed?
   end
   def execute
     return if @triggered
     @triggered = true
     @actions.collect { |act| result = act.call(self) }.last
   end
   def needed?
     true
   end
   def timestamp
     Time.now
   end
   class << self
     def [](task_name)
       TASKS[intern(task_name)] or fail "Don't know how to rake #{task_name}"
     end
     def define_task(args, &block)
       case args
       when Hash
 	fail "Too Many Target Names: #{args.keys.join(' ')}" if args.size > 1
 	fail "No Task Name Given" if args.size < 1
 	task_name = args.keys[0]
 	deps = args[task_name]
       else
 	task_name = args
 	deps = []
       end
       deps = deps.collect {|d| intern(d) }
       get(task_name).enhance(deps, &block)
     end
     def get(task_name)
       name = intern(task_name)
       TASKS[name] ||= self.new(name)
     end
     def intern(task_name)
       (Symbol === task_name) ? task_name : task_name.intern
     end
   end
 end
 class FileTask < Task
   def needed?
     return true unless File.exist?(name)
     latest_prereq = @prerequisites.collect{|n| Task[n].timestamp}.max
     return false if latest_prereq.nil?
     timestamp < latest_prereq
   end
   def timestamp
     File.new(name.to_s).mtime
   end
 end
 def task(args, &block)
   Task.define_task(args, &block)
 end
 def file(args, &block)
   FileTask.define_task(args, &block)
 end
 def sys(cmd)
   puts cmd
   system(cmd) or fail "Command Failed: [#{cmd}]"
 end
 def rake
   begin
     here = Dir.pwd
     while ! File.exist?("Rakefile")
       Dir.chdir("..")
       fail "No Rakefile found" if Dir.pwd == here
       here = Dir.pwd
     end
     puts "(in #{Dir.pwd})"
     load "./Rakefile"
     ARGV.push("default") if ARGV.size == 0
     ARGV.each { |task_name| Task[task_name].invoke }
   rescue Exception => ex
     puts "rake aborted ... #{ex.message}"
     puts ex.backtrace.find {|str| str =~ /Rakefile/ } || ""
   end
 end
 if __FILE__ == $0 then
   rake
 end