rack-cgi 0.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +6 -0
- data/Gemfile +4 -0
- data/README.md +60 -0
- data/Rakefile +6 -0
- data/bin/console +14 -0
- data/bin/setup +7 -0
- data/lib/rack/cgi/version.rb +5 -0
- data/rack-cgi.gemspec +35 -12
- metadata +88 -19
- data/test/cgi/error +0 -6
- data/test/cgi/export +0 -7
- data/test/cgi/file +0 -1
- data/test/cgi/index.cgi +0 -6
- data/test/cgi/redirect +0 -6
- data/test/cgi/test.php +0 -3
- data/test/cgi/without_header +0 -2
- data/test/config.ru +0 -5
    
        checksums.yaml
    ADDED
    
    | @@ -0,0 +1,7 @@ | |
| 1 | 
            +
            ---
         | 
| 2 | 
            +
            SHA1:
         | 
| 3 | 
            +
              metadata.gz: e729e9b2542873a943dbb1deae047c6a54540d4d
         | 
| 4 | 
            +
              data.tar.gz: a80866ebad4baa9c9aeb93c96fc3f093481c7ace
         | 
| 5 | 
            +
            SHA512:
         | 
| 6 | 
            +
              metadata.gz: d5583c12e8c56d9c220eac7382df3effbeff7cde637221cf4ce1fed1d64ffb3f9e6430bda2073265e36e504a5b2a70525c5f055b5debd9b73298a62904a0ed27
         | 
| 7 | 
            +
              data.tar.gz: 6bb2fb2471284598cf0ec1945541aaba4d1dfbdf20fb2fe23814264bea42c2fb825b1a9e1832dfd57ed44c3da523fab9e43aa0acd9bdf30221a3532f7123b6d7
         | 
    
        data/Gemfile
    ADDED
    
    
    
        data/README.md
    ADDED
    
    | @@ -0,0 +1,60 @@ | |
| 1 | 
            +
            Rack::CGI
         | 
| 2 | 
            +
            =========
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            Let you using CGI in your rack application.
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            Usage
         | 
| 7 | 
            +
            -----
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            Here is an example for using Rack::CGI
         | 
| 10 | 
            +
             | 
| 11 | 
            +
                # config.ru
         | 
| 12 | 
            +
             | 
| 13 | 
            +
                use Rack::CGI, cgi_path: 'cgi', index: 'index.cgi', Rack::CGI::Executable => '', /\.php$/ => '/usr/bin/php-cgi'
         | 
| 14 | 
            +
                use Rack::Static, urls: ['/'], root: 'cgi'
         | 
| 15 | 
            +
                run proc{ [404, {"CONTENT-TYPE" => "text/plain"}, ['404 Not Found']] }
         | 
| 16 | 
            +
             | 
| 17 | 
            +
            Howto
         | 
| 18 | 
            +
            -----
         | 
| 19 | 
            +
             | 
| 20 | 
            +
            ### Document Root
         | 
| 21 | 
            +
             | 
| 22 | 
            +
            In default, Rack::CGI will use Dir.pwd as document root, you can use `cgi_path: path` to change it.
         | 
| 23 | 
            +
             | 
| 24 | 
            +
            ### Index file
         | 
| 25 | 
            +
             | 
| 26 | 
            +
            When user access directory, Rack::CGI will use index script instand of.
         | 
| 27 | 
            +
             | 
| 28 | 
            +
            If you not special index, Rack::CGI will not have a default value, and it's not works.
         | 
| 29 | 
            +
             | 
| 30 | 
            +
            You can special index as follow:
         | 
| 31 | 
            +
             | 
| 32 | 
            +
                use Rack::CGI, index: 'index.php'
         | 
| 33 | 
            +
             | 
| 34 | 
            +
                # or special multiple, Rack::CGI will try each by order
         | 
| 35 | 
            +
                use Rack::CGI, index: ['index.php', 'index.cgi']
         | 
| 36 | 
            +
             | 
| 37 | 
            +
            ### Rules 
         | 
| 38 | 
            +
             | 
| 39 | 
            +
            When Rack::CGI found a script file in disk, it will try to find a rule to deal it.
         | 
| 40 | 
            +
             | 
| 41 | 
            +
            You can special multiple rules, in follow format:
         | 
| 42 | 
            +
             | 
| 43 | 
            +
                use Rack::CGI, match1 => deal1, match2 => deal2, match3 => deal3 ...
         | 
| 44 | 
            +
             | 
| 45 | 
            +
            `match` can not Rack::CGI::Executable or Regexp. 
         | 
| 46 | 
            +
            Rack::CGI::Executable means script file with '+x' property.
         | 
| 47 | 
            +
            Regexp will try to match scriptname.
         | 
| 48 | 
            +
             | 
| 49 | 
            +
            If none rules match, Rack::CGI will do nothing. Such as if you spacial Rack::CGI::Executable => "", 
         | 
| 50 | 
            +
            and your file do not have a '+x' property, Rack::CGI will not tell you file cannot executable, but just skiped.
         | 
| 51 | 
            +
             | 
| 52 | 
            +
            `deal` can be `nil`, "", `path_to_application`.  
         | 
| 53 | 
            +
            If you special `nil`, nothing will happened.  
         | 
| 54 | 
            +
            If you special "", script will be runned directly.  
         | 
| 55 | 
            +
            If you special `path_to_application`, application will be launched with script name.
         | 
| 56 | 
            +
             | 
| 57 | 
            +
            TODO
         | 
| 58 | 
            +
            ----
         | 
| 59 | 
            +
             | 
| 60 | 
            +
            POST Request support
         | 
    
        data/Rakefile
    ADDED
    
    
    
        data/bin/console
    ADDED
    
    | @@ -0,0 +1,14 @@ | |
| 1 | 
            +
            #!/usr/bin/env ruby
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require "bundler/setup"
         | 
| 4 | 
            +
            require "rack/cgi"
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            # You can add fixtures and/or initialization code here to make experimenting
         | 
| 7 | 
            +
            # with your gem easier. You can also use a different console, if you like.
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            # (If you use this, don't forget to add pry to your Gemfile!)
         | 
| 10 | 
            +
            # require "pry"
         | 
| 11 | 
            +
            # Pry.start
         | 
| 12 | 
            +
             | 
| 13 | 
            +
            require "irb"
         | 
| 14 | 
            +
            IRB.start
         | 
    
        data/bin/setup
    ADDED
    
    
    
        data/rack-cgi.gemspec
    CHANGED
    
    | @@ -1,13 +1,36 @@ | |
| 1 | 
            -
             | 
| 2 | 
            -
             | 
| 3 | 
            -
             | 
| 4 | 
            -
             | 
| 5 | 
            -
             | 
| 6 | 
            -
             | 
| 7 | 
            -
               | 
| 8 | 
            -
               | 
| 9 | 
            -
               | 
| 10 | 
            -
             | 
| 11 | 
            -
             | 
| 12 | 
            -
               | 
| 1 | 
            +
            # coding: utf-8
         | 
| 2 | 
            +
            lib = File.expand_path('../lib', __FILE__)
         | 
| 3 | 
            +
            $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
         | 
| 4 | 
            +
            require 'rack/cgi/version'
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            Gem::Specification.new do |spec|
         | 
| 7 | 
            +
              spec.name          = "rack-cgi"
         | 
| 8 | 
            +
              spec.version       = Rack::Cgi::VERSION
         | 
| 9 | 
            +
              spec.authors       = ["Chizhong Jin"]
         | 
| 10 | 
            +
              spec.email         = ["jinchizhong@kingsoft.com"]
         | 
| 11 | 
            +
             | 
| 12 | 
            +
              spec.summary       = 'A rack middleware that can call CGI in rack'
         | 
| 13 | 
            +
              spec.description   = 'A rack middleware that can call CGI in rack'
         | 
| 14 | 
            +
              spec.homepage      = 'http://rubygems.org/gems/rack-cgi'
         | 
| 15 | 
            +
              spec.license       = 'BSD'
         | 
| 16 | 
            +
             | 
| 17 | 
            +
              # Prevent pushing this gem to RubyGems.org by setting 'allowed_push_host', or
         | 
| 18 | 
            +
              # delete this section to allow pushing this gem to any host.
         | 
| 19 | 
            +
              if spec.respond_to?(:metadata)
         | 
| 20 | 
            +
                spec.metadata['allowed_push_host'] = "https://rubygems.org"
         | 
| 21 | 
            +
              else
         | 
| 22 | 
            +
                raise "RubyGems 2.0 or newer is required to protect against public gem pushes."
         | 
| 23 | 
            +
              end
         | 
| 24 | 
            +
             | 
| 25 | 
            +
              spec.files         = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
         | 
| 26 | 
            +
              spec.bindir        = "exe"
         | 
| 27 | 
            +
              spec.executables   = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
         | 
| 28 | 
            +
              spec.require_paths = ["lib"]
         | 
| 29 | 
            +
             | 
| 30 | 
            +
              spec.add_runtime_dependency 'rake'
         | 
| 31 | 
            +
              spec.add_runtime_dependency 'childprocess'
         | 
| 32 | 
            +
             | 
| 33 | 
            +
              spec.add_development_dependency "bundler", "~> 1.9"
         | 
| 34 | 
            +
              spec.add_development_dependency 'test-unit'
         | 
| 35 | 
            +
              spec.add_development_dependency 'rake-test'
         | 
| 13 36 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,56 +1,125 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: rack-cgi
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version:  | 
| 5 | 
            -
              prerelease: 
         | 
| 4 | 
            +
              version: 0.2.0
         | 
| 6 5 | 
             
            platform: ruby
         | 
| 7 6 | 
             
            authors:
         | 
| 8 7 | 
             
            - Chizhong Jin
         | 
| 9 8 | 
             
            autorequire: 
         | 
| 10 | 
            -
            bindir:  | 
| 9 | 
            +
            bindir: exe
         | 
| 11 10 | 
             
            cert_chain: []
         | 
| 12 11 | 
             
            date: 2015-05-17 00:00:00.000000000 Z
         | 
| 13 | 
            -
            dependencies: | 
| 12 | 
            +
            dependencies:
         | 
| 13 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 14 | 
            +
              name: rake
         | 
| 15 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 16 | 
            +
                requirements:
         | 
| 17 | 
            +
                - - ">="
         | 
| 18 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 19 | 
            +
                    version: '0'
         | 
| 20 | 
            +
              type: :runtime
         | 
| 21 | 
            +
              prerelease: false
         | 
| 22 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 23 | 
            +
                requirements:
         | 
| 24 | 
            +
                - - ">="
         | 
| 25 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 26 | 
            +
                    version: '0'
         | 
| 27 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 28 | 
            +
              name: childprocess
         | 
| 29 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 30 | 
            +
                requirements:
         | 
| 31 | 
            +
                - - ">="
         | 
| 32 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 33 | 
            +
                    version: '0'
         | 
| 34 | 
            +
              type: :runtime
         | 
| 35 | 
            +
              prerelease: false
         | 
| 36 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 37 | 
            +
                requirements:
         | 
| 38 | 
            +
                - - ">="
         | 
| 39 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 40 | 
            +
                    version: '0'
         | 
| 41 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 42 | 
            +
              name: bundler
         | 
| 43 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 44 | 
            +
                requirements:
         | 
| 45 | 
            +
                - - "~>"
         | 
| 46 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 47 | 
            +
                    version: '1.9'
         | 
| 48 | 
            +
              type: :development
         | 
| 49 | 
            +
              prerelease: false
         | 
| 50 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 51 | 
            +
                requirements:
         | 
| 52 | 
            +
                - - "~>"
         | 
| 53 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 54 | 
            +
                    version: '1.9'
         | 
| 55 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 56 | 
            +
              name: test-unit
         | 
| 57 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 58 | 
            +
                requirements:
         | 
| 59 | 
            +
                - - ">="
         | 
| 60 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 61 | 
            +
                    version: '0'
         | 
| 62 | 
            +
              type: :development
         | 
| 63 | 
            +
              prerelease: false
         | 
| 64 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 65 | 
            +
                requirements:
         | 
| 66 | 
            +
                - - ">="
         | 
| 67 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 68 | 
            +
                    version: '0'
         | 
| 69 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 70 | 
            +
              name: rake-test
         | 
| 71 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 72 | 
            +
                requirements:
         | 
| 73 | 
            +
                - - ">="
         | 
| 74 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 75 | 
            +
                    version: '0'
         | 
| 76 | 
            +
              type: :development
         | 
| 77 | 
            +
              prerelease: false
         | 
| 78 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 79 | 
            +
                requirements:
         | 
| 80 | 
            +
                - - ">="
         | 
| 81 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 82 | 
            +
                    version: '0'
         | 
| 14 83 | 
             
            description: A rack middleware that can call CGI in rack
         | 
| 15 | 
            -
            email: | 
| 84 | 
            +
            email:
         | 
| 85 | 
            +
            - jinchizhong@kingsoft.com
         | 
| 16 86 | 
             
            executables: []
         | 
| 17 87 | 
             
            extensions: []
         | 
| 18 88 | 
             
            extra_rdoc_files: []
         | 
| 19 89 | 
             
            files:
         | 
| 90 | 
            +
            - ".gitignore"
         | 
| 91 | 
            +
            - Gemfile
         | 
| 92 | 
            +
            - README.md
         | 
| 93 | 
            +
            - Rakefile
         | 
| 94 | 
            +
            - bin/console
         | 
| 95 | 
            +
            - bin/setup
         | 
| 20 96 | 
             
            - lib/rack-cgi.rb
         | 
| 21 97 | 
             
            - lib/rack/cgi.rb
         | 
| 22 | 
            -
            -  | 
| 23 | 
            -
            - test/cgi/redirect
         | 
| 24 | 
            -
            - test/cgi/error
         | 
| 25 | 
            -
            - test/cgi/export
         | 
| 26 | 
            -
            - test/cgi/test.php
         | 
| 27 | 
            -
            - test/cgi/without_header
         | 
| 28 | 
            -
            - test/cgi/index.cgi
         | 
| 29 | 
            -
            - test/cgi/file
         | 
| 98 | 
            +
            - lib/rack/cgi/version.rb
         | 
| 30 99 | 
             
            - rack-cgi.gemspec
         | 
| 31 100 | 
             
            homepage: http://rubygems.org/gems/rack-cgi
         | 
| 32 101 | 
             
            licenses:
         | 
| 33 102 | 
             
            - BSD
         | 
| 103 | 
            +
            metadata:
         | 
| 104 | 
            +
              allowed_push_host: https://rubygems.org
         | 
| 34 105 | 
             
            post_install_message: 
         | 
| 35 106 | 
             
            rdoc_options: []
         | 
| 36 107 | 
             
            require_paths:
         | 
| 37 108 | 
             
            - lib
         | 
| 38 109 | 
             
            required_ruby_version: !ruby/object:Gem::Requirement
         | 
| 39 | 
            -
              none: false
         | 
| 40 110 | 
             
              requirements:
         | 
| 41 | 
            -
              - -  | 
| 111 | 
            +
              - - ">="
         | 
| 42 112 | 
             
                - !ruby/object:Gem::Version
         | 
| 43 113 | 
             
                  version: '0'
         | 
| 44 114 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 45 | 
            -
              none: false
         | 
| 46 115 | 
             
              requirements:
         | 
| 47 | 
            -
              - -  | 
| 116 | 
            +
              - - ">="
         | 
| 48 117 | 
             
                - !ruby/object:Gem::Version
         | 
| 49 118 | 
             
                  version: '0'
         | 
| 50 119 | 
             
            requirements: []
         | 
| 51 120 | 
             
            rubyforge_project: 
         | 
| 52 | 
            -
            rubygems_version:  | 
| 121 | 
            +
            rubygems_version: 2.4.6
         | 
| 53 122 | 
             
            signing_key: 
         | 
| 54 | 
            -
            specification_version:  | 
| 123 | 
            +
            specification_version: 4
         | 
| 55 124 | 
             
            summary: A rack middleware that can call CGI in rack
         | 
| 56 125 | 
             
            test_files: []
         | 
    
        data/test/cgi/error
    DELETED
    
    
    
        data/test/cgi/export
    DELETED
    
    
    
        data/test/cgi/file
    DELETED
    
    | @@ -1 +0,0 @@ | |
| 1 | 
            -
            This is a test file for test
         | 
    
        data/test/cgi/index.cgi
    DELETED
    
    
    
        data/test/cgi/redirect
    DELETED
    
    
    
        data/test/cgi/test.php
    DELETED
    
    
    
        data/test/cgi/without_header
    DELETED
    
    
    
        data/test/config.ru
    DELETED