Sha256: fadb89e4d7426c35471b66aa0f07ec5e12b75274a2b5359357479c05b5f3f110

Contents?: true

Size: 1.55 KB

Versions: 3

Compression:

Stored size: 1.55 KB

Contents

# ::summary
# runs a task
#
# ::description
# 
############################
require 'cgi'
require "#{File.dirname(__FILE__)}/../vendor/url_encoded_pair_parser"

env = Tap::Env.instance

module Tap
  module Support
    module Server
      module_function
      
      def pair_parse(params)
        pairs = {}
        params.each_pair do |key, values|
          key = key.chomp("%w") if key =~ /%w$/

          slot = pairs[key] ||= []
          values.each do |value|
            value = value.respond_to?(:read) ? value.read : value
            if $~ 
              slot.concat(Shellwords.shellwords(value))
            else 
              slot << value
            end
          end
        end

        UrlEncodedPairParser.new(pairs).result   
      end
    end
  end
end

cgi = CGI.new("html3")  # add HTML generation methods
cgi.out() do
  case cgi.request_method
  when /GET/i
    env.render('run.erb', :env => env, :tascs => [] )
    
  when /POST/i
    action = cgi.params['action'][0]
    case action
    when 'add'
      index = cgi.params['index'][0].to_i - 1
      cgi.params['selected_tasks'].collect do |task|
        index += 1
        tasc = env.tasks.search(task).constantize
        env.render('run/task.erb', :tasc => tasc, :index => index )
      end.join("\n")
      
    when 'remove'
    when 'update'
    else
      cgi.pre do
        argh = Tap::Support::Server.pair_parse(cgi.params)
        Tap::Support::Schema.parse(argh['schema']).dump.to_yaml
      end
    end
  else 
    raise ArgumentError, "unhandled request method: #{cgi.request_method}"
  end
end

Version data entries

3 entries across 3 versions & 2 rubygems

Version Path
bahuvrihi-tap-0.10.8 cgi/run.rb
bahuvrihi-tap-0.11.0 cgi/run.rb
tap-0.11.0 cgi/run.rb