elliottcable-echoe 3.1.1

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 (114) hide show
  1. data/CHANGELOG +69 -0
  2. data/LICENSE +184 -0
  3. data/MIT-LICENSE +21 -0
  4. data/Manifest +113 -0
  5. data/README +114 -0
  6. data/Rakefile +15 -0
  7. data/TODO +4 -0
  8. data/echoe.gemspec +37 -0
  9. data/lib/echoe/client.rb +25 -0
  10. data/lib/echoe/extensions.rb +57 -0
  11. data/lib/echoe/platform.rb +36 -0
  12. data/lib/echoe/rubygems.rb +41 -0
  13. data/lib/echoe.rb +717 -0
  14. data/vendor/rake/CHANGES +400 -0
  15. data/vendor/rake/MIT-LICENSE +21 -0
  16. data/vendor/rake/README +285 -0
  17. data/vendor/rake/Rakefile +418 -0
  18. data/vendor/rake/TODO +20 -0
  19. data/vendor/rake/bin/rake +31 -0
  20. data/vendor/rake/doc/example/Rakefile1 +38 -0
  21. data/vendor/rake/doc/example/Rakefile2 +35 -0
  22. data/vendor/rake/doc/example/a.c +6 -0
  23. data/vendor/rake/doc/example/b.c +6 -0
  24. data/vendor/rake/doc/example/main.c +11 -0
  25. data/vendor/rake/doc/glossary.rdoc +51 -0
  26. data/vendor/rake/doc/jamis.rb +591 -0
  27. data/vendor/rake/doc/proto_rake.rdoc +127 -0
  28. data/vendor/rake/doc/rake.1.gz +0 -0
  29. data/vendor/rake/doc/rakefile.rdoc +534 -0
  30. data/vendor/rake/doc/rational.rdoc +151 -0
  31. data/vendor/rake/doc/release_notes/rake-0.4.14.rdoc +23 -0
  32. data/vendor/rake/doc/release_notes/rake-0.4.15.rdoc +35 -0
  33. data/vendor/rake/doc/release_notes/rake-0.5.0.rdoc +53 -0
  34. data/vendor/rake/doc/release_notes/rake-0.5.3.rdoc +78 -0
  35. data/vendor/rake/doc/release_notes/rake-0.5.4.rdoc +46 -0
  36. data/vendor/rake/doc/release_notes/rake-0.6.0.rdoc +141 -0
  37. data/vendor/rake/doc/release_notes/rake-0.7.0.rdoc +119 -0
  38. data/vendor/rake/doc/release_notes/rake-0.7.1.rdoc +59 -0
  39. data/vendor/rake/doc/release_notes/rake-0.7.2.rdoc +121 -0
  40. data/vendor/rake/doc/release_notes/rake-0.7.3.rdoc +47 -0
  41. data/vendor/rake/doc/release_notes/rake-0.8.0.rdoc +114 -0
  42. data/vendor/rake/doc/release_notes/rake-0.8.2.rdoc +165 -0
  43. data/vendor/rake/doc/release_notes/rake-0.8.3.rdoc +112 -0
  44. data/vendor/rake/install.rb +88 -0
  45. data/vendor/rake/lib/rake/classic_namespace.rb +8 -0
  46. data/vendor/rake/lib/rake/clean.rb +33 -0
  47. data/vendor/rake/lib/rake/contrib/compositepublisher.rb +24 -0
  48. data/vendor/rake/lib/rake/contrib/ftptools.rb +153 -0
  49. data/vendor/rake/lib/rake/contrib/publisher.rb +75 -0
  50. data/vendor/rake/lib/rake/contrib/rubyforgepublisher.rb +18 -0
  51. data/vendor/rake/lib/rake/contrib/sshpublisher.rb +47 -0
  52. data/vendor/rake/lib/rake/contrib/sys.rb +209 -0
  53. data/vendor/rake/lib/rake/gempackagetask.rb +103 -0
  54. data/vendor/rake/lib/rake/loaders/makefile.rb +35 -0
  55. data/vendor/rake/lib/rake/packagetask.rb +185 -0
  56. data/vendor/rake/lib/rake/rake_test_loader.rb +5 -0
  57. data/vendor/rake/lib/rake/rdoctask.rb +147 -0
  58. data/vendor/rake/lib/rake/ruby182_test_unit_fix.rb +23 -0
  59. data/vendor/rake/lib/rake/runtest.rb +23 -0
  60. data/vendor/rake/lib/rake/tasklib.rb +23 -0
  61. data/vendor/rake/lib/rake/testtask.rb +161 -0
  62. data/vendor/rake/lib/rake/win32.rb +54 -0
  63. data/vendor/rake/lib/rake.rb +2468 -0
  64. data/vendor/rake/test/capture_stdout.rb +26 -0
  65. data/vendor/rake/test/check_expansion.rb +5 -0
  66. data/vendor/rake/test/contrib/test_sys.rb +47 -0
  67. data/vendor/rake/test/data/chains/Rakefile +15 -0
  68. data/vendor/rake/test/data/default/Rakefile +19 -0
  69. data/vendor/rake/test/data/dryrun/Rakefile +22 -0
  70. data/vendor/rake/test/data/file_creation_task/Rakefile +33 -0
  71. data/vendor/rake/test/data/imports/Rakefile +19 -0
  72. data/vendor/rake/test/data/imports/deps.mf +1 -0
  73. data/vendor/rake/test/data/multidesc/Rakefile +17 -0
  74. data/vendor/rake/test/data/namespace/Rakefile +57 -0
  75. data/vendor/rake/test/data/rakelib/test1.rb +3 -0
  76. data/vendor/rake/test/data/rbext/rakefile.rb +3 -0
  77. data/vendor/rake/test/data/sample.mf +12 -0
  78. data/vendor/rake/test/data/statusreturn/Rakefile +8 -0
  79. data/vendor/rake/test/data/unittest/Rakefile +1 -0
  80. data/vendor/rake/test/filecreation.rb +32 -0
  81. data/vendor/rake/test/functional.rb +15 -0
  82. data/vendor/rake/test/in_environment.rb +30 -0
  83. data/vendor/rake/test/rake_test_setup.rb +10 -0
  84. data/vendor/rake/test/reqfile.rb +3 -0
  85. data/vendor/rake/test/reqfile2.rb +3 -0
  86. data/vendor/rake/test/session_functional.rb +337 -0
  87. data/vendor/rake/test/shellcommand.rb +3 -0
  88. data/vendor/rake/test/test_application.rb +694 -0
  89. data/vendor/rake/test/test_clean.rb +14 -0
  90. data/vendor/rake/test/test_definitions.rb +82 -0
  91. data/vendor/rake/test/test_earlytime.rb +35 -0
  92. data/vendor/rake/test/test_extension.rb +63 -0
  93. data/vendor/rake/test/test_file_creation_task.rb +62 -0
  94. data/vendor/rake/test/test_file_task.rb +139 -0
  95. data/vendor/rake/test/test_filelist.rb +618 -0
  96. data/vendor/rake/test/test_fileutils.rb +250 -0
  97. data/vendor/rake/test/test_ftp.rb +59 -0
  98. data/vendor/rake/test/test_invocation_chain.rb +75 -0
  99. data/vendor/rake/test/test_makefile_loader.rb +25 -0
  100. data/vendor/rake/test/test_multitask.rb +45 -0
  101. data/vendor/rake/test/test_namespace.rb +36 -0
  102. data/vendor/rake/test/test_package_task.rb +116 -0
  103. data/vendor/rake/test/test_pathmap.rb +209 -0
  104. data/vendor/rake/test/test_rake.rb +41 -0
  105. data/vendor/rake/test/test_require.rb +33 -0
  106. data/vendor/rake/test/test_rules.rb +347 -0
  107. data/vendor/rake/test/test_task_arguments.rb +89 -0
  108. data/vendor/rake/test/test_task_manager.rb +170 -0
  109. data/vendor/rake/test/test_tasklib.rb +12 -0
  110. data/vendor/rake/test/test_tasks.rb +371 -0
  111. data/vendor/rake/test/test_test_task.rb +75 -0
  112. data/vendor/rake/test/test_top_level_functions.rb +84 -0
  113. data/vendor/rake/test/test_win32.rb +57 -0
  114. metadata +195 -0
@@ -0,0 +1,47 @@
1
+ = Rake 0.7.3 Released
2
+
3
+ Rake version 0.7.3 is a minor release that includes some refactoring to better
4
+ support custom Rake applications.
5
+
6
+ == Changes
7
+
8
+ === New Features in Version 0.7.3
9
+
10
+ * Added the +init+ and +top_level+ methods to make the creation of custom Rake applications a bit easier. E.g.
11
+
12
+ gem 'rake', ">= 0.7.3"
13
+ require 'rake'
14
+
15
+ Rake.application.init('myrake')
16
+
17
+ task :default do
18
+ something_interesting
19
+ end
20
+
21
+ Rake.application.top_level
22
+
23
+ == What is Rake
24
+
25
+ Rake is a build tool similar to the make program in many ways. But instead of
26
+ cryptic make recipes, Rake uses standard Ruby code to declare tasks and
27
+ dependencies. You have the full power of a modern scripting language built
28
+ right into your build tool.
29
+
30
+ == Availability
31
+
32
+ The easiest way to get and install rake is via RubyGems ...
33
+
34
+ gem install rake (you may need root/admin privileges)
35
+
36
+ Otherwise, you can get it from the more traditional places:
37
+
38
+ Home Page:: http://rake.rubyforge.org/
39
+ Download:: http://rubyforge.org/project/showfiles.php?group_id=50
40
+
41
+ == Thanks
42
+
43
+ As usual, it was input from users that drove a alot of these changes. The
44
+ following people either contributed patches, made suggestions or made
45
+ otherwise helpful comments. Thanks to ...
46
+
47
+ -- Jim Weirich
@@ -0,0 +1,114 @@
1
+ = Rake 0.8.0/0.8.1 Released
2
+
3
+ Rake version 0.8.0 is a new release of rake that includes serveral new
4
+ features.
5
+
6
+ == Changes
7
+
8
+ === New Features in Version 0.8.0
9
+
10
+ * Tasks can now receive command line parameters. See the examples
11
+ below for more details.
12
+
13
+ * Comments are limited to 80 columns on output, but full comments can
14
+ be seen by using the -D parameter. (feature suggested by Jamis
15
+ Buck).
16
+
17
+ * Explicit exit(n) calls will now set the exit status to n. (patch
18
+ provided by Stephen Touset).
19
+
20
+ * Rake is now compatible with Ruby 1.9.
21
+
22
+ Version 0.8.1 is a minor update that includes additional Ruby 1.9
23
+ compatibility fixes.
24
+
25
+ == What is Rake
26
+
27
+ Rake is a build tool similar to the make program in many ways. But
28
+ instead of cryptic make recipes, Rake uses standard Ruby code to
29
+ declare tasks and dependencies. You have the full power of a modern
30
+ scripting language built right into your build tool.
31
+
32
+ == Availability
33
+
34
+ The easiest way to get and install rake is via RubyGems ...
35
+
36
+ gem install rake (you may need root/admin privileges)
37
+
38
+ Otherwise, you can get it from the more traditional places:
39
+
40
+ Home Page:: http://rake.rubyforge.org/
41
+ Download:: http://rubyforge.org/project/showfiles.php?group_id=50
42
+
43
+ == Task Argument Examples
44
+
45
+ Prior to version 0.8.0, rake was only able to handle command line
46
+ arguments of the form NAME=VALUE that were passed into Rake via the
47
+ ENV hash. Many folks had asked for some kind of simple command line
48
+ arguments, perhaps using "--" to separate regular task names from
49
+ argument values on the command line. The problem is that there was no
50
+ easy way to associate positional arguments on the command line with
51
+ different tasks. Suppose both tasks :a and :b expect a command line
52
+ argument: does the first value go with :a? What if :b is run first?
53
+ Should it then get the first command line argument.
54
+
55
+ Rake 0.8.0 solves this problem by explicitly passing values directly
56
+ to the tasks that need them. For example, if I had a release task
57
+ that required a version number, I could say:
58
+
59
+ rake release[0.8.0]
60
+
61
+ And the string "0.8.0" will be passed to the :release task. Multiple
62
+ arguments can be passed by separating them with a comma, for example:
63
+
64
+ rake name[john,doe]
65
+
66
+ Just a few words of caution. The rake task name and its arguments
67
+ need to be a single command line argument to rake. This generally
68
+ means no spaces. If spaces are needed, then the entire rake +
69
+ argument string should be quoted. Something like this:
70
+
71
+ rake "name[billy bob, smith]"
72
+
73
+ (Quoting rules vary between operating systems and shells, so make sure
74
+ you consult the proper docs for your OS/shell).
75
+
76
+ === Tasks that Expect Parameters
77
+
78
+ Parameters are only given to tasks that are setup to expect them. In
79
+ order to handle named parameters, the task declaration syntax for
80
+ tasks has been extended slightly.
81
+
82
+ For example, a task that needs a first name and last name might be
83
+ declared as:
84
+
85
+ task :name, :first_name, :last_name
86
+
87
+ The first argument is still the name of the task (:name in this case).
88
+ The next to argumements are the names of the parameters expected by
89
+ :name (:first_name and :last_name in the example).
90
+
91
+ To access the values of the paramters, the block defining the task
92
+ behaviour can now accept a second parameter:
93
+
94
+ task :name, :first_name, :last_name do |t, args|
95
+ puts "First name is #{args.first_name}"
96
+ puts "Last name is #{args.last_name}"
97
+ end
98
+
99
+ The first argument of the block "t" is always bound to the current
100
+ task object. The second argument "args" is an open-struct like object
101
+ that allows access to the task arguments. Extra command line
102
+ arguments to a task are ignored. Missing command line arguments are
103
+ given the nil value.
104
+
105
+ == Thanks
106
+
107
+ As usual, it was input from users that drove a alot of these changes. The
108
+ following people either contributed patches, made suggestions or made
109
+ otherwise helpful comments. Thanks to ...
110
+
111
+ * Jamis Buck (for comment formatting suggestions)
112
+ * Stephen Touset (for exit status patch).
113
+
114
+ -- Jim Weirich
@@ -0,0 +1,165 @@
1
+ = Rake 0.8.2 Released
2
+
3
+ Rake version 0.8.2 is a new release of rake that includes a number of
4
+ new features and numerous bug fixes.
5
+
6
+ == Changes
7
+
8
+ === New Features in Version 0.8.2
9
+
10
+ * Switched from getoptlong to optparse (patches supplied by Edwin
11
+ Pratomo).
12
+
13
+ * The -T option will now attempt to dynamically sense the size of the
14
+ terminal. The -T output will only self-truncate if the output is a
15
+ tty. However, if RAKE_COLUMNS is explicitly set, it will be honored
16
+ in any case. (Patch provided by Gavin Stark).
17
+
18
+ * The following public methods have been added to rake task objects:
19
+
20
+ * task.clear -- Clear both the prerequisites and actions of the
21
+ target rake task.
22
+ * task.clear_prerequisites -- Clear all the existing prerequisites
23
+ from the target rake task.
24
+ * task.clear_actions -- Clear all the existing actions from the
25
+ target rake task.
26
+ * task.reenable -- Re-enable a task, allowing its actions to be
27
+ executed again if the task is invoked.
28
+
29
+ * Changed RDoc test task to have no default template. This makes it
30
+ easier for the tempate to pick up the template from the environment.
31
+
32
+ * Default values for task arguments can easily be specified with the
33
+ :with_defaults method. (Idea for default argument merging supplied
34
+ by (Adam Q. Salter)
35
+
36
+ === Bug Fixes in Version 0.8.2
37
+
38
+ * Fixed bug in package task so that it will include the subdir
39
+ directory in the package for testing. (Bug found by Adam Majer)
40
+
41
+ * Fixed filename dependency order bug in test_inspect_pending and
42
+ test_to_s_pending. (Bug found by Adam Majer)
43
+
44
+ * Fixed check for file utils options to make them immune to the
45
+ symbol/string differences. (Patch supplied by Edwin Pratomo)
46
+
47
+ * Fixed bug with rules involving multiple source, where only the first
48
+ dependency of a rule has any effect (Patch supplied by Emanuel
49
+ Inderm�hle)
50
+
51
+ * FileList#clone and FileList#dup have better sematics w.r.t. taint
52
+ and freeze.
53
+
54
+ * Changed from using Mutex to Monitor. Evidently Mutex causes thread
55
+ join errors when Ruby is compiled with -disable-pthreads. (Patch
56
+ supplied by Ittay Dror)
57
+
58
+ * Fixed bug in makefile parser that had problems with extra spaces in
59
+ file task names. (Patch supplied by Ittay Dror)
60
+
61
+ == Other changes in Version 0.8.2
62
+
63
+ * Added ENV var to rake's own Rakefile to prevent OS X from including
64
+ extended attribute junk in the rake package tar file. (Bug found by
65
+ Adam Majer)
66
+
67
+ * Added a performance patch for reading large makefile dependency
68
+ files. (Patch supplied by Ittay Dror)
69
+
70
+ == What is Rake
71
+
72
+ Rake is a build tool similar to the make program in many ways. But
73
+ instead of cryptic make recipes, Rake uses standard Ruby code to
74
+ declare tasks and dependencies. You have the full power of a modern
75
+ scripting language built right into your build tool.
76
+
77
+ == Availability
78
+
79
+ The easiest way to get and install rake is via RubyGems ...
80
+
81
+ gem install rake (you may need root/admin privileges)
82
+
83
+ Otherwise, you can get it from the more traditional places:
84
+
85
+ Home Page:: http://rake.rubyforge.org/
86
+ Download:: http://rubyforge.org/project/showfiles.php?group_id=50
87
+
88
+ == Task Argument Examples
89
+
90
+ Prior to version 0.8.0, rake was only able to handle command line
91
+ arguments of the form NAME=VALUE that were passed into Rake via the
92
+ ENV hash. Many folks had asked for some kind of simple command line
93
+ arguments, perhaps using "--" to separate regular task names from
94
+ argument values on the command line. The problem is that there was no
95
+ easy way to associate positional arguments on the command line with
96
+ different tasks. Suppose both tasks :a and :b expect a command line
97
+ argument: does the first value go with :a? What if :b is run first?
98
+ Should it then get the first command line argument.
99
+
100
+ Rake 0.8.0 solves this problem by explicitly passing values directly
101
+ to the tasks that need them. For example, if I had a release task
102
+ that required a version number, I could say:
103
+
104
+ rake release[0.8.2]
105
+
106
+ And the string "0.8.2" will be passed to the :release task. Multiple
107
+ arguments can be passed by separating them with a comma, for example:
108
+
109
+ rake name[john,doe]
110
+
111
+ Just a few words of caution. The rake task name and its arguments
112
+ need to be a single command line argument to rake. This generally
113
+ means no spaces. If spaces are needed, then the entire rake +
114
+ argument string should be quoted. Something like this:
115
+
116
+ rake "name[billy bob, smith]"
117
+
118
+ (Quoting rules vary between operating systems and shells, so make sure
119
+ you consult the proper docs for your OS/shell).
120
+
121
+ === Tasks that Expect Parameters
122
+
123
+ Parameters are only given to tasks that are setup to expect them. In
124
+ order to handle named parameters, the task declaration syntax for
125
+ tasks has been extended slightly.
126
+
127
+ For example, a task that needs a first name and last name might be
128
+ declared as:
129
+
130
+ task :name, :first_name, :last_name
131
+
132
+ The first argument is still the name of the task (:name in this case).
133
+ The next to argumements are the names of the parameters expected by
134
+ :name (:first_name and :last_name in the example).
135
+
136
+ To access the values of the paramters, the block defining the task
137
+ behaviour can now accept a second parameter:
138
+
139
+ task :name, :first_name, :last_name do |t, args|
140
+ puts "First name is #{args.first_name}"
141
+ puts "Last name is #{args.last_name}"
142
+ end
143
+
144
+ The first argument of the block "t" is always bound to the current
145
+ task object. The second argument "args" is an open-struct like object
146
+ that allows access to the task arguments. Extra command line
147
+ arguments to a task are ignored. Missing command line arguments are
148
+ given the nil value.
149
+
150
+ == Thanks
151
+
152
+ As usual, it was input from users that drove a alot of these changes. The
153
+ following people either contributed patches, made suggestions or made
154
+ otherwise helpful comments. Thanks to ...
155
+
156
+ * Edwin Pratomo
157
+ * Gavin Stark
158
+ * Adam Q. Salter
159
+ * Adam Majer
160
+ * Emanuel Inderm�hle
161
+ * Ittay Dror
162
+ * Bheeshmar Redheendran (for spending an afternoon with me debugging
163
+ windows issues)
164
+
165
+ -- Jim Weirich
@@ -0,0 +1,112 @@
1
+ = Rake 0.8.3 Released
2
+
3
+ Rake version 0.8.3 is a bug-fix release of rake.
4
+
5
+ == Changes
6
+
7
+ === Bug Fixes in Version 0.8.3
8
+
9
+ * Enhanced the system directory detection in windows. We now check
10
+ HOMEDRIVE/HOMEPATH and USERPROFILE if APPDATA isn't found. (Patch
11
+ supplied by James Tucker). Rake no long aborts if it can't find the
12
+ directory.
13
+
14
+ * Added fix to handle ruby installations in directories with spaces in
15
+ their name.
16
+
17
+ == What is Rake
18
+
19
+ Rake is a build tool similar to the make program in many ways. But
20
+ instead of cryptic make recipes, Rake uses standard Ruby code to
21
+ declare tasks and dependencies. You have the full power of a modern
22
+ scripting language built right into your build tool.
23
+
24
+ == Availability
25
+
26
+ The easiest way to get and install rake is via RubyGems ...
27
+
28
+ gem install rake (you may need root/admin privileges)
29
+
30
+ Otherwise, you can get it from the more traditional places:
31
+
32
+ Home Page:: http://rake.rubyforge.org/
33
+ Download:: http://rubyforge.org/project/showfiles.php?group_id=50
34
+
35
+ == Task Argument Examples
36
+
37
+ Prior to version 0.8.0, rake was only able to handle command line
38
+ arguments of the form NAME=VALUE that were passed into Rake via the
39
+ ENV hash. Many folks had asked for some kind of simple command line
40
+ arguments, perhaps using "--" to separate regular task names from
41
+ argument values on the command line. The problem is that there was no
42
+ easy way to associate positional arguments on the command line with
43
+ different tasks. Suppose both tasks :a and :b expect a command line
44
+ argument: does the first value go with :a? What if :b is run first?
45
+ Should it then get the first command line argument.
46
+
47
+ Rake 0.8.0 solves this problem by explicitly passing values directly
48
+ to the tasks that need them. For example, if I had a release task
49
+ that required a version number, I could say:
50
+
51
+ rake release[0.8.3]
52
+
53
+ And the string "0.8.3" will be passed to the :release task. Multiple
54
+ arguments can be passed by separating them with a comma, for example:
55
+
56
+ rake name[john,doe]
57
+
58
+ Just a few words of caution. The rake task name and its arguments
59
+ need to be a single command line argument to rake. This generally
60
+ means no spaces. If spaces are needed, then the entire rake +
61
+ argument string should be quoted. Something like this:
62
+
63
+ rake "name[billy bob, smith]"
64
+
65
+ (Quoting rules vary between operating systems and shells, so make sure
66
+ you consult the proper docs for your OS/shell).
67
+
68
+ === Tasks that Expect Parameters
69
+
70
+ Parameters are only given to tasks that are setup to expect them. In
71
+ order to handle named parameters, the task declaration syntax for
72
+ tasks has been extended slightly.
73
+
74
+ For example, a task that needs a first name and last name might be
75
+ declared as:
76
+
77
+ task :name, :first_name, :last_name
78
+
79
+ The first argument is still the name of the task (:name in this case).
80
+ The next to argumements are the names of the parameters expected by
81
+ :name (:first_name and :last_name in the example).
82
+
83
+ To access the values of the paramters, the block defining the task
84
+ behaviour can now accept a second parameter:
85
+
86
+ task :name, :first_name, :last_name do |t, args|
87
+ puts "First name is #{args.first_name}"
88
+ puts "Last name is #{args.last_name}"
89
+ end
90
+
91
+ The first argument of the block "t" is always bound to the current
92
+ task object. The second argument "args" is an open-struct like object
93
+ that allows access to the task arguments. Extra command line
94
+ arguments to a task are ignored. Missing command line arguments are
95
+ given the nil value.
96
+
97
+ == Thanks
98
+
99
+ As usual, it was input from users that drove a alot of these changes. The
100
+ following people either contributed patches, made suggestions or made
101
+ otherwise helpful comments. Thanks to ...
102
+
103
+ * Edwin Pratomo
104
+ * Gavin Stark
105
+ * Adam Q. Salter
106
+ * Adam Majer
107
+ * Emanuel Inderm�hle
108
+ * Ittay Dror
109
+ * Bheeshmar Redheendran (for spending an afternoon with me debugging
110
+ windows issues)
111
+
112
+ -- Jim Weirich
@@ -0,0 +1,88 @@
1
+ require 'rbconfig'
2
+ require 'find'
3
+ require 'ftools'
4
+
5
+ include Config
6
+
7
+ $ruby = CONFIG['ruby_install_name']
8
+
9
+ ##
10
+ # Install a binary file. We patch in on the way through to
11
+ # insert a #! line. If this is a Unix install, we name
12
+ # the command (for example) 'rake' and let the shebang line
13
+ # handle running it. Under windows, we add a '.rb' extension
14
+ # and let file associations to their stuff
15
+ #
16
+
17
+ def installBIN(from, opfile)
18
+
19
+ tmp_dir = nil
20
+ for t in [".", "/tmp", "c:/temp", $bindir]
21
+ stat = File.stat(t) rescue next
22
+ if stat.directory? and stat.writable?
23
+ tmp_dir = t
24
+ break
25
+ end
26
+ end
27
+
28
+ fail "Cannot find a temporary directory" unless tmp_dir
29
+ tmp_file = File.join(tmp_dir, "_tmp")
30
+
31
+ File.open(from) do |ip|
32
+ File.open(tmp_file, "w") do |op|
33
+ ruby = File.join($realbindir, $ruby)
34
+ op.puts "#!#{ruby} -w"
35
+ op.write ip.read
36
+ end
37
+ end
38
+
39
+ opfile += ".rb" if CONFIG["target_os"] =~ /mswin/i
40
+ File::install(tmp_file, File.join($bindir, opfile), 0755, true)
41
+ File::unlink(tmp_file)
42
+ end
43
+
44
+ $sitedir = CONFIG["sitelibdir"]
45
+ unless $sitedir
46
+ version = CONFIG["MAJOR"]+"."+CONFIG["MINOR"]
47
+ $libdir = File.join(CONFIG["libdir"], "ruby", version)
48
+ $sitedir = $:.find {|x| x =~ /site_ruby/}
49
+ if !$sitedir
50
+ $sitedir = File.join($libdir, "site_ruby")
51
+ elsif $sitedir !~ Regexp.quote(version)
52
+ $sitedir = File.join($sitedir, version)
53
+ end
54
+ end
55
+
56
+ $bindir = CONFIG["bindir"]
57
+
58
+ $realbindir = $bindir
59
+
60
+ bindir = CONFIG["bindir"]
61
+ if (destdir = ENV['DESTDIR'])
62
+ $bindir = destdir + $bindir
63
+ $sitedir = destdir + $sitedir
64
+
65
+ File::makedirs($bindir)
66
+ File::makedirs($sitedir)
67
+ end
68
+
69
+ rake_dest = File.join($sitedir, "rake")
70
+ File::makedirs(rake_dest, true)
71
+ File::chmod(0755, rake_dest)
72
+
73
+ # The library files
74
+
75
+ files = Dir.chdir('lib') { Dir['**/*.rb'] }
76
+
77
+ for fn in files
78
+ fn_dir = File.dirname(fn)
79
+ target_dir = File.join($sitedir, fn_dir)
80
+ if ! File.exist?(target_dir)
81
+ File.makedirs(target_dir)
82
+ end
83
+ File::install(File.join('lib', fn), File.join($sitedir, fn), 0644, true)
84
+ end
85
+
86
+ # and the executable
87
+
88
+ installBIN("bin/rake", "rake")
@@ -0,0 +1,8 @@
1
+ # The following classes used to be in the top level namespace.
2
+ # Loading this file enables compatibility with older Rakefile that
3
+ # referenced Task from the top level.
4
+
5
+ Task = Rake::Task
6
+ FileTask = Rake::FileTask
7
+ FileCreationTask = Rake::FileCreationTask
8
+ RakeApp = Rake::Application
@@ -0,0 +1,33 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # The 'rake/clean' file defines two file lists (CLEAN and CLOBBER) and
4
+ # two rake tasks (:clean and :clobber).
5
+ #
6
+ # [:clean] Clean up the project by deleting scratch files and backup
7
+ # files. Add files to the CLEAN file list to have the :clean
8
+ # target handle them.
9
+ #
10
+ # [:clobber] Clobber all generated and non-source files in a project.
11
+ # The task depends on :clean, so all the clean files will
12
+ # be deleted as well as files in the CLOBBER file list.
13
+ # The intent of this task is to return a project to its
14
+ # pristine, just unpacked state.
15
+
16
+ require 'rake'
17
+
18
+ CLEAN = Rake::FileList["**/*~", "**/*.bak", "**/core"]
19
+ CLEAN.clear_exclude.exclude { |fn|
20
+ fn.pathmap("%f") == 'core' && File.directory?(fn)
21
+ }
22
+
23
+ desc "Remove any temporary products."
24
+ task :clean do
25
+ CLEAN.each { |fn| rm_r fn rescue nil }
26
+ end
27
+
28
+ CLOBBER = Rake::FileList.new
29
+
30
+ desc "Remove any generated file."
31
+ task :clobber => [:clean] do
32
+ CLOBBER.each { |fn| rm_r fn rescue nil }
33
+ end
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ module Rake
4
+
5
+ # Manage several publishers as a single entity.
6
+ class CompositePublisher
7
+ def initialize
8
+ @publishers = []
9
+ end
10
+
11
+ # Add a publisher to the composite.
12
+ def add(pub)
13
+ @publishers << pub
14
+ end
15
+
16
+ # Upload all the individual publishers.
17
+ def upload
18
+ @publishers.each { |p| p.upload }
19
+ end
20
+ end
21
+
22
+ end
23
+
24
+