p4ruby 1.0.10 → 1.0.11
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.
- data/CHANGES +4 -15
- data/README +0 -19
- data/Rakefile +107 -9
- data/install.rb +7 -11
- data/p4ruby.gemspec +4 -4
- metadata +17 -7
    
        data/CHANGES
    CHANGED
    
    | @@ -1,24 +1,13 @@ | |
| 1 1 |  | 
| 2 2 | 
             
            = p4ruby
         | 
| 3 3 |  | 
| 4 | 
            -
            == version 1.0. | 
| 5 | 
            -
             | 
| 6 | 
            -
            **** NOTE ****
         | 
| 7 | 
            -
             | 
| 8 | 
            -
            This is a temporary fork of the p4ruby gem which works around an
         | 
| 9 | 
            -
            ongoing problem of missing files on the Perforce server.
         | 
| 4 | 
            +
            == version 1.0.11
         | 
| 10 5 |  | 
| 11 | 
            -
             | 
| 6 | 
            +
            * remove previous workaround; now uses list of hosed versions to avoid
         | 
| 12 7 |  | 
| 13 | 
            -
             | 
| 14 | 
            -
            Since these issues are ongoing and beyond my control, I have
         | 
| 15 | 
            -
            transferred ownership of the gem to Perforce, who may or may not
         | 
| 16 | 
            -
            resolve the matter. Please send bug reports to them.
         | 
| 17 | 
            -
             | 
| 18 | 
            -
            Sincerely,
         | 
| 19 | 
            -
            James M. Lawrence
         | 
| 8 | 
            +
            == version 1.0.10
         | 
| 20 9 |  | 
| 21 | 
            -
             | 
| 10 | 
            +
            * perforce ftp site has hosed 11.1 directory -- workaround hardcoded for 10.2
         | 
| 22 11 |  | 
| 23 12 | 
             
            == version 1.0.9
         | 
| 24 13 |  | 
    
        data/README
    CHANGED
    
    | @@ -1,23 +1,4 @@ | |
| 1 1 |  | 
| 2 | 
            -
            **** NOTE ****
         | 
| 3 | 
            -
             | 
| 4 | 
            -
            This is a temporary fork of the p4ruby gem which works around an
         | 
| 5 | 
            -
            ongoing problem of missing files on the Perforce server.
         | 
| 6 | 
            -
             | 
| 7 | 
            -
            This fork is hard-coded to download version r10.2 only.
         | 
| 8 | 
            -
             | 
| 9 | 
            -
            In the past Perforce has ignored such problems with their ftp server.
         | 
| 10 | 
            -
            Since these issues are ongoing and beyond my control, I have
         | 
| 11 | 
            -
            transferred ownership of the gem to Perforce, who may or may not
         | 
| 12 | 
            -
            resolve the matter. Please send bug reports to them.
         | 
| 13 | 
            -
             | 
| 14 | 
            -
            Sincerely,
         | 
| 15 | 
            -
            James M. Lawrence
         | 
| 16 | 
            -
             | 
| 17 | 
            -
            **** NOTE ****
         | 
| 18 | 
            -
             | 
| 19 | 
            -
            =============================================================
         | 
| 20 | 
            -
             | 
| 21 2 | 
             
            = P4Ruby -- Ruby interface to the Perforce API
         | 
| 22 3 |  | 
| 23 4 | 
             
            This is only an installer for the P4Ruby package by Perforce Software.
         | 
    
        data/Rakefile
    CHANGED
    
    | @@ -1,11 +1,109 @@ | |
| 1 1 |  | 
| 2 | 
            -
             | 
| 3 | 
            -
             | 
| 4 | 
            -
             | 
| 5 | 
            -
             | 
| 6 | 
            -
             | 
| 7 | 
            -
             | 
| 8 | 
            -
             | 
| 9 | 
            -
             | 
| 10 | 
            -
             | 
| 2 | 
            +
            begin
         | 
| 3 | 
            +
              require 'rubygems'
         | 
| 4 | 
            +
              gem 'rdoc'
         | 
| 5 | 
            +
            rescue LoadError
         | 
| 6 | 
            +
            end
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            require 'rubygems/package_task'
         | 
| 9 | 
            +
            require 'rdoc/task'
         | 
| 10 | 
            +
            require 'rake/contrib/rubyforgepublisher'
         | 
| 11 | 
            +
            require 'fileutils'
         | 
| 12 | 
            +
             | 
| 13 | 
            +
            include FileUtils
         | 
| 14 | 
            +
             | 
| 15 | 
            +
            README = "README"
         | 
| 16 | 
            +
            GEMSPEC = eval(File.read("p4ruby.gemspec"))
         | 
| 17 | 
            +
            RAKEFILE = "Rakefile"
         | 
| 18 | 
            +
            RAKEFILE_ORIG = "Rakefile.orig"
         | 
| 19 | 
            +
             | 
| 20 | 
            +
            default_task_definition = %{
         | 
| 21 | 
            +
              INSTALLER = './install.rb'
         | 
| 22 | 
            +
             | 
| 23 | 
            +
              #
         | 
| 24 | 
            +
              # default task compiles for the gem
         | 
| 25 | 
            +
              #
         | 
| 26 | 
            +
              task :default do
         | 
| 27 | 
            +
                ARGV.clear
         | 
| 28 | 
            +
                ARGV.push "--gem"
         | 
| 29 | 
            +
                load INSTALLER
         | 
| 30 | 
            +
              end
         | 
| 31 | 
            +
            }
         | 
| 32 | 
            +
             | 
| 33 | 
            +
            eval(default_task_definition)
         | 
| 34 | 
            +
             | 
| 35 | 
            +
            task :clean => :clobber do
         | 
| 36 | 
            +
              rm_rf ["work", "lib", "ext"]
         | 
| 37 | 
            +
            end
         | 
| 38 | 
            +
             | 
| 39 | 
            +
            task :update_docs do
         | 
| 40 | 
            +
              ruby_path = File.join(
         | 
| 41 | 
            +
                Config::CONFIG["bindir"],
         | 
| 42 | 
            +
                Config::CONFIG["RUBY_INSTALL_NAME"])
         | 
| 43 | 
            +
             | 
| 44 | 
            +
              help = "--help"
         | 
| 45 | 
            +
              command = "ruby #{File.basename(INSTALLER)} #{help}"
         | 
| 46 | 
            +
              output = `#{ruby_path} #{INSTALLER} #{help}`
         | 
| 47 | 
            +
             | 
| 48 | 
            +
              # insert help output into README
         | 
| 49 | 
            +
              replace_file(README) { |contents|
         | 
| 50 | 
            +
                contents.sub(%r!#{command}.*?==!m) {
         | 
| 51 | 
            +
                  command + "\n\n  " +
         | 
| 52 | 
            +
                  output + "\n=="
         | 
| 53 | 
            +
                }
         | 
| 54 | 
            +
              }
         | 
| 55 | 
            +
            end
         | 
| 56 | 
            +
             | 
| 57 | 
            +
            task :doc => :update_docs
         | 
| 58 | 
            +
            task :doc => :rdoc
         | 
| 59 | 
            +
             | 
| 60 | 
            +
            task :package => [:clean, :doc]
         | 
| 61 | 
            +
            task :gem => :clean
         | 
| 62 | 
            +
             | 
| 63 | 
            +
            RDoc::Task.new { |t|
         | 
| 64 | 
            +
              t.main = README
         | 
| 65 | 
            +
              t.rdoc_files.include([README])
         | 
| 66 | 
            +
              t.rdoc_dir = "html"
         | 
| 67 | 
            +
              t.title = "P4Ruby: #{GEMSPEC.summary}"
         | 
| 68 | 
            +
            }
         | 
| 69 | 
            +
             | 
| 70 | 
            +
            Gem::PackageTask.new(GEMSPEC) { |t| 
         | 
| 71 | 
            +
              t.need_tar = true 
         | 
| 72 | 
            +
            } 
         | 
| 73 | 
            +
             | 
| 74 | 
            +
            task :publish => :doc do
         | 
| 75 | 
            +
              Rake::RubyForgePublisher.new('p4ruby', 'quix').upload
         | 
| 76 | 
            +
            end
         | 
| 77 | 
            +
             | 
| 78 | 
            +
            task :release do
         | 
| 79 | 
            +
              mv(RAKEFILE, RAKEFILE_ORIG)
         | 
| 80 | 
            +
              begin
         | 
| 81 | 
            +
                File.open(RAKEFILE, "w") { |out|
         | 
| 82 | 
            +
                  out.puts default_task_definition.gsub(%r!^  !m, "")
         | 
| 83 | 
            +
                }
         | 
| 84 | 
            +
                Rake::Task[:package].invoke
         | 
| 85 | 
            +
              ensure
         | 
| 86 | 
            +
                mv(RAKEFILE_ORIG, RAKEFILE)
         | 
| 87 | 
            +
              end
         | 
| 88 | 
            +
            end
         | 
| 89 | 
            +
             | 
| 90 | 
            +
            ##################################################
         | 
| 91 | 
            +
            # util
         | 
| 92 | 
            +
             | 
| 93 | 
            +
            unless respond_to? :tap
         | 
| 94 | 
            +
              module Kernel
         | 
| 95 | 
            +
                def tap
         | 
| 96 | 
            +
                  yield self
         | 
| 97 | 
            +
                  self
         | 
| 98 | 
            +
                end
         | 
| 99 | 
            +
              end
         | 
| 100 | 
            +
            end
         | 
| 101 | 
            +
             | 
| 102 | 
            +
            def replace_file(file)
         | 
| 103 | 
            +
              old_contents = File.read(file)
         | 
| 104 | 
            +
              yield(old_contents).tap { |new_contents|
         | 
| 105 | 
            +
                File.open(file, "w") { |output|
         | 
| 106 | 
            +
                  output.print(new_contents)
         | 
| 107 | 
            +
                }
         | 
| 108 | 
            +
              }
         | 
| 11 109 | 
             
            end
         | 
    
        data/install.rb
    CHANGED
    
    | @@ -9,10 +9,6 @@ require 'fileutils' | |
| 9 9 | 
             
            require 'optparse'
         | 
| 10 10 | 
             
            require 'pathname'
         | 
| 11 11 |  | 
| 12 | 
            -
            def main
         | 
| 13 | 
            -
              Installer.new.run
         | 
| 14 | 
            -
            end
         | 
| 15 | 
            -
             | 
| 16 12 | 
             
            class Installer
         | 
| 17 13 | 
             
              include FileUtils
         | 
| 18 14 |  | 
| @@ -35,6 +31,9 @@ class Installer | |
| 35 31 | 
             
              SERVER = "ftp.perforce.com"
         | 
| 36 32 | 
             
              SERVER_TOP_DIR = Pathname.new "perforce"
         | 
| 37 33 |  | 
| 34 | 
            +
              # Mysterious "ghost" releases which lack files
         | 
| 35 | 
            +
              HOSED_VERSIONS = %w[09.3 11.1]
         | 
| 36 | 
            +
             | 
| 38 37 | 
             
              P4API_REMOTE_BASENAME = Pathname.new "p4api.tgz"
         | 
| 39 38 | 
             
              P4RUBY_REMOTE_BASENAME = Pathname.new "p4ruby.tgz"
         | 
| 40 39 |  | 
| @@ -141,12 +140,7 @@ class Installer | |
| 141 140 | 
             
                end
         | 
| 142 141 |  | 
| 143 142 | 
             
                @s.attribute(:version_dir) {
         | 
| 144 | 
            -
                  #
         | 
| 145 | 
            -
                  # **** NOTE ****
         | 
| 146 | 
            -
                  #
         | 
| 147 | 
            -
                  # TODO: remove this workaround for missing files on the server
         | 
| 148 | 
            -
                  #
         | 
| 149 | 
            -
                  SERVER_TOP_DIR + "r10.2" # "r#{@s.version}"
         | 
| 143 | 
            +
                  SERVER_TOP_DIR + "r#{@s.version}"
         | 
| 150 144 | 
             
                }
         | 
| 151 145 |  | 
| 152 146 | 
             
                @s.p4api.attribute(:remote) {
         | 
| @@ -299,6 +293,8 @@ class Installer | |
| 299 293 | 
             
              def versions
         | 
| 300 294 | 
             
                remote_files_matching(SERVER_TOP_DIR, %r!r([0-8]\d\.\d)!) { |match|
         | 
| 301 295 | 
             
                  match.captures.first
         | 
| 296 | 
            +
                }.reject { |version|
         | 
| 297 | 
            +
                  HOSED_VERSIONS.include? version
         | 
| 302 298 | 
             
                }.sort
         | 
| 303 299 | 
             
              end
         | 
| 304 300 |  | 
| @@ -480,4 +476,4 @@ module Kernel | |
| 480 476 | 
             
              end
         | 
| 481 477 | 
             
            end
         | 
| 482 478 |  | 
| 483 | 
            -
             | 
| 479 | 
            +
            Installer.new.run
         | 
    
        data/p4ruby.gemspec
    CHANGED
    
    | @@ -1,10 +1,11 @@ | |
| 1 1 |  | 
| 2 2 | 
             
            Gem::Specification.new { |t| 
         | 
| 3 3 | 
             
              t.name = "p4ruby"
         | 
| 4 | 
            -
              t.version = "1.0. | 
| 4 | 
            +
              t.version = "1.0.11"
         | 
| 5 5 | 
             
              t.summary = "Ruby interface to the Perforce API"
         | 
| 6 | 
            -
              t. | 
| 7 | 
            -
              t. | 
| 6 | 
            +
              t.description = t.summary + "."
         | 
| 7 | 
            +
              t.author = "Perforce Software (ruby gem by James M. Lawrence)"
         | 
| 8 | 
            +
              t.email = "quixoticsycophant@gmail.com"
         | 
| 8 9 | 
             
              t.homepage = "http://p4ruby.rubyforge.org"
         | 
| 9 10 | 
             
              t.rubyforge_project = "p4ruby"
         | 
| 10 11 | 
             
              t.extensions << "Rakefile"
         | 
| @@ -19,7 +20,6 @@ Gem::Specification.new { |t| | |
| 19 20 | 
             
                p4ruby.gemspec
         | 
| 20 21 | 
             
              ]
         | 
| 21 22 |  | 
| 22 | 
            -
              t.has_rdoc = true
         | 
| 23 23 | 
             
              t.extra_rdoc_files = ["README"]
         | 
| 24 24 | 
             
              rdoc_exclude = t.files - t.extra_rdoc_files
         | 
| 25 25 | 
             
              t.rdoc_options +=
         | 
    
        metadata
    CHANGED
    
    | @@ -1,16 +1,20 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification 
         | 
| 2 2 | 
             
            name: p4ruby
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version 
         | 
| 4 | 
            -
              prerelease: 
         | 
| 5 | 
            -
               | 
| 4 | 
            +
              prerelease: false
         | 
| 5 | 
            +
              segments: 
         | 
| 6 | 
            +
              - 1
         | 
| 7 | 
            +
              - 0
         | 
| 8 | 
            +
              - 11
         | 
| 9 | 
            +
              version: 1.0.11
         | 
| 6 10 | 
             
            platform: ruby
         | 
| 7 11 | 
             
            authors: 
         | 
| 8 | 
            -
            - Perforce Software
         | 
| 12 | 
            +
            - Perforce Software (ruby gem by James M. Lawrence)
         | 
| 9 13 | 
             
            autorequire: 
         | 
| 10 14 | 
             
            bindir: bin
         | 
| 11 15 | 
             
            cert_chain: []
         | 
| 12 16 |  | 
| 13 | 
            -
            date: 2011- | 
| 17 | 
            +
            date: 2011-08-02 00:00:00 -04:00
         | 
| 14 18 | 
             
            default_executable: 
         | 
| 15 19 | 
             
            dependencies: 
         | 
| 16 20 | 
             
            - !ruby/object:Gem::Dependency 
         | 
| @@ -21,11 +25,13 @@ dependencies: | |
| 21 25 | 
             
                requirements: 
         | 
| 22 26 | 
             
                - - ">="
         | 
| 23 27 | 
             
                  - !ruby/object:Gem::Version 
         | 
| 28 | 
            +
                    segments: 
         | 
| 29 | 
            +
                    - 0
         | 
| 24 30 | 
             
                    version: "0"
         | 
| 25 31 | 
             
              type: :runtime
         | 
| 26 32 | 
             
              version_requirements: *id001
         | 
| 27 | 
            -
            description: 
         | 
| 28 | 
            -
            email:  | 
| 33 | 
            +
            description: Ruby interface to the Perforce API.
         | 
| 34 | 
            +
            email: quixoticsycophant@gmail.com
         | 
| 29 35 | 
             
            executables: []
         | 
| 30 36 |  | 
| 31 37 | 
             
            extensions: 
         | 
| @@ -64,17 +70,21 @@ required_ruby_version: !ruby/object:Gem::Requirement | |
| 64 70 | 
             
              requirements: 
         | 
| 65 71 | 
             
              - - ">="
         | 
| 66 72 | 
             
                - !ruby/object:Gem::Version 
         | 
| 73 | 
            +
                  segments: 
         | 
| 74 | 
            +
                  - 0
         | 
| 67 75 | 
             
                  version: "0"
         | 
| 68 76 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement 
         | 
| 69 77 | 
             
              none: false
         | 
| 70 78 | 
             
              requirements: 
         | 
| 71 79 | 
             
              - - ">="
         | 
| 72 80 | 
             
                - !ruby/object:Gem::Version 
         | 
| 81 | 
            +
                  segments: 
         | 
| 82 | 
            +
                  - 0
         | 
| 73 83 | 
             
                  version: "0"
         | 
| 74 84 | 
             
            requirements: []
         | 
| 75 85 |  | 
| 76 86 | 
             
            rubyforge_project: p4ruby
         | 
| 77 | 
            -
            rubygems_version: 1. | 
| 87 | 
            +
            rubygems_version: 1.3.7
         | 
| 78 88 | 
             
            signing_key: 
         | 
| 79 89 | 
             
            specification_version: 3
         | 
| 80 90 | 
             
            summary: Ruby interface to the Perforce API
         |