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.
Files changed (6) hide show
  1. data/CHANGES +4 -15
  2. data/README +0 -19
  3. data/Rakefile +107 -9
  4. data/install.rb +7 -11
  5. data/p4ruby.gemspec +4 -4
  6. metadata +17 -7
data/CHANGES CHANGED
@@ -1,24 +1,13 @@
1
1
 
2
2
  = p4ruby
3
3
 
4
- == version 1.0.10
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
- This fork is hard-coded to download version r10.2 only.
6
+ * remove previous workaround; now uses list of hosed versions to avoid
12
7
 
13
- In the past Perforce has ignored such problems with their ftp server.
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
- **** NOTE ****
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
- INSTALLER = './install.rb'
3
-
4
- #
5
- # default task compiles for the gem
6
- #
7
- task :default do
8
- ARGV.clear
9
- ARGV.push "--gem"
10
- load INSTALLER
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
- main
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.10"
4
+ t.version = "1.0.11"
5
5
  t.summary = "Ruby interface to the Perforce API"
6
- t.author = "Perforce Software"
7
- t.email = "support@perforce.com"
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
- version: 1.0.10
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-04-01 00:00:00 -04:00
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: support@perforce.com
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.6.2
87
+ rubygems_version: 1.3.7
78
88
  signing_key:
79
89
  specification_version: 3
80
90
  summary: Ruby interface to the Perforce API