reap 0.6.1 → 3.01

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 (143) hide show
  1. data/{ANN-0.6.1 → ANN} +0 -0
  2. data/ChangeLog +19 -8
  3. data/ProjectInfo +25 -0
  4. data/README +76 -11
  5. data/Rakefile +139 -17
  6. data/bin/reap +159 -0
  7. data/lib/reap/{announce-task.rb → announce_task.rb} +43 -41
  8. data/lib/reap/{chmod-task.rb → filemod_task.rb} +24 -20
  9. data/lib/reap/info_task.rb +29 -0
  10. data/lib/reap/noop_task.rb +35 -0
  11. data/lib/reap/{package-task.rb → package_task.rb} +63 -43
  12. data/lib/reap/projectinfo.rb +40 -0
  13. data/lib/reap/{publish-task.rb → publish_task.rb} +21 -17
  14. data/lib/reap/{rdoc-task.rb → rdoc_task.rb} +24 -19
  15. data/lib/reap/ready_made.rb +12 -0
  16. data/lib/reap/task.rb +89 -162
  17. data/lib/reap/tasks.rb +9 -0
  18. data/lib/reap/{test-task.rb → test_task.rb} +35 -15
  19. data/lib/reap/web_publish_task.rb +49 -0
  20. data/pub/grape.jpg +0 -0
  21. data/pub/www/index.html +61 -21
  22. data/pub/www/rdoc/classes/ProjectInfo.html +207 -0
  23. data/pub/www/rdoc/classes/ProjectInfo.src/M000055.html +18 -0
  24. data/pub/www/rdoc/classes/ProjectInfo.src/M000056.html +23 -0
  25. data/pub/www/rdoc/classes/ProjectInfo.src/M000057.html +18 -0
  26. data/pub/www/rdoc/classes/ProjectInfo.src/M000058.html +21 -0
  27. data/pub/www/rdoc/classes/ProjectInfo.src/M000059.html +18 -0
  28. data/pub/www/rdoc/classes/RakeTask.html +182 -0
  29. data/pub/www/rdoc/classes/RakeTask.src/M000051.html +18 -0
  30. data/pub/www/rdoc/classes/RakeTask.src/M000052.html +18 -0
  31. data/pub/www/rdoc/classes/RakeTask.src/M000053.html +18 -0
  32. data/pub/www/rdoc/classes/RakeTask.src/M000054.html +18 -0
  33. data/pub/www/rdoc/classes/Reap.html +57 -4
  34. data/pub/www/rdoc/classes/Reap/AnnounceTask.html +140 -14
  35. data/pub/www/rdoc/classes/Reap/AnnounceTask.src/M000039.html +16 -0
  36. data/pub/www/rdoc/classes/Reap/{TemplateTask.src/M000021.html → AnnounceTask.src/M000040.html} +4 -4
  37. data/pub/www/rdoc/classes/Reap/AnnounceTask.src/{M000031.html → M000041.html} +34 -34
  38. data/pub/www/rdoc/classes/Reap/AnnounceTask.src/{M000032.html → M000042.html} +1 -1
  39. data/pub/www/rdoc/classes/Reap/FilemodTask.html +254 -0
  40. data/pub/www/rdoc/classes/Reap/FilemodTask.src/M000027.html +16 -0
  41. data/pub/www/rdoc/classes/Reap/FilemodTask.src/M000028.html +18 -0
  42. data/pub/www/rdoc/classes/Reap/FilemodTask.src/M000029.html +21 -0
  43. data/pub/www/rdoc/classes/Reap/{ChmodTask.src/M000017.html → FilemodTask.src/M000030.html} +3 -3
  44. data/pub/www/rdoc/classes/Reap/{ChmodTask.src/M000018.html → FilemodTask.src/M000031.html} +2 -2
  45. data/pub/www/rdoc/classes/Reap/FilemodTask.src/M000032.html +18 -0
  46. data/pub/www/rdoc/classes/Reap/{TemplateTask.html → InfoTask.html} +46 -34
  47. data/pub/www/rdoc/classes/Reap/InfoTask.src/M000047.html +16 -0
  48. data/pub/www/rdoc/classes/Reap/{Task.src/M000026.html → InfoTask.src/M000048.html} +4 -4
  49. data/pub/www/rdoc/classes/Reap/{Task.src/M000025.html → InfoTask.src/M000049.html} +2 -3
  50. data/pub/www/rdoc/classes/Reap/InfoTask.src/M000050.html +18 -0
  51. data/pub/www/rdoc/classes/Reap/NoopTask.html +210 -0
  52. data/pub/www/rdoc/classes/Reap/NoopTask.src/M000043.html +16 -0
  53. data/pub/www/rdoc/classes/Reap/NoopTask.src/M000044.html +18 -0
  54. data/pub/www/rdoc/classes/Reap/{Task.src/M000028.html → NoopTask.src/M000045.html} +4 -3
  55. data/pub/www/rdoc/classes/Reap/NoopTask.src/M000046.html +18 -0
  56. data/pub/www/rdoc/classes/Reap/PackageTask.html +179 -22
  57. data/pub/www/rdoc/classes/Reap/PackageTask.src/M000005.html +16 -0
  58. data/pub/www/rdoc/classes/Reap/PackageTask.src/M000006.html +24 -0
  59. data/pub/www/rdoc/classes/Reap/PackageTask.src/M000007.html +53 -0
  60. data/pub/www/rdoc/classes/Reap/PackageTask.src/{M000002.html → M000008.html} +3 -4
  61. data/pub/www/rdoc/classes/Reap/PackageTask.src/{M000003.html → M000009.html} +1 -1
  62. data/pub/www/rdoc/classes/Reap/PublishTask.html +85 -14
  63. data/pub/www/rdoc/classes/Reap/PublishTask.src/M000023.html +16 -0
  64. data/pub/www/rdoc/classes/Reap/PublishTask.src/M000024.html +18 -0
  65. data/pub/www/rdoc/classes/Reap/PublishTask.src/M000025.html +22 -0
  66. data/pub/www/rdoc/classes/Reap/PublishTask.src/{M000020.html → M000026.html} +2 -2
  67. data/pub/www/rdoc/classes/Reap/RDocTask.html +37 -21
  68. data/pub/www/rdoc/classes/Reap/RDocTask.src/M000001.html +16 -0
  69. data/pub/www/rdoc/classes/Reap/RDocTask.src/M000002.html +18 -0
  70. data/pub/www/rdoc/classes/Reap/RDocTask.src/M000003.html +25 -0
  71. data/pub/www/rdoc/classes/Reap/RDocTask.src/M000004.html +39 -10
  72. data/pub/www/rdoc/classes/Reap/Task.html +44 -124
  73. data/pub/www/rdoc/classes/Reap/Task.src/M000033.html +21 -0
  74. data/pub/www/rdoc/classes/Reap/Task.src/{M000030.html → M000034.html} +4 -5
  75. data/pub/www/rdoc/classes/Reap/Task.src/M000035.html +41 -0
  76. data/pub/www/rdoc/classes/Reap/Task.src/M000036.html +16 -0
  77. data/pub/www/rdoc/classes/Reap/Task.src/M000037.html +18 -0
  78. data/pub/www/rdoc/classes/Reap/Task.src/M000038.html +19 -0
  79. data/pub/www/rdoc/classes/Reap/TestTask.html +66 -32
  80. data/pub/www/rdoc/classes/Reap/TestTask.src/M000014.html +16 -0
  81. data/pub/www/rdoc/classes/Reap/TestTask.src/M000015.html +18 -0
  82. data/pub/www/rdoc/classes/Reap/TestTask.src/M000016.html +25 -0
  83. data/pub/www/rdoc/classes/Reap/TestTask.src/{M000009.html → M000017.html} +5 -5
  84. data/pub/www/rdoc/classes/Reap/TestTask.src/{M000010.html → M000018.html} +3 -3
  85. data/pub/www/rdoc/classes/Reap/TestTask.src/{M000011.html → M000019.html} +1 -1
  86. data/pub/www/rdoc/classes/Reap/TestTask/TestResults.html +17 -17
  87. data/pub/www/rdoc/classes/Reap/TestTask/TestResults.src/{M000012.html → M000020.html} +1 -1
  88. data/pub/www/rdoc/classes/Reap/TestTask/TestResults.src/{M000013.html → M000021.html} +1 -1
  89. data/pub/www/rdoc/classes/Reap/TestTask/TestResults.src/{M000014.html → M000022.html} +1 -1
  90. data/pub/www/rdoc/classes/Reap/{ChmodTask.html → WebPublishTask.html} +46 -35
  91. data/pub/www/rdoc/classes/Reap/WebPublishTask.src/M000010.html +16 -0
  92. data/pub/www/rdoc/classes/Reap/WebPublishTask.src/M000011.html +18 -0
  93. data/pub/www/rdoc/classes/Reap/WebPublishTask.src/M000012.html +21 -0
  94. data/pub/www/rdoc/classes/Reap/WebPublishTask.src/M000013.html +32 -0
  95. data/pub/www/rdoc/classes/ReapTask.html +287 -0
  96. data/pub/www/rdoc/classes/ReapTask.src/M000060.html +18 -0
  97. data/pub/www/rdoc/classes/ReapTask.src/M000061.html +18 -0
  98. data/pub/www/rdoc/classes/ReapTask.src/M000062.html +18 -0
  99. data/pub/www/rdoc/classes/ReapTask.src/M000063.html +18 -0
  100. data/pub/www/rdoc/classes/ReapTask.src/M000064.html +18 -0
  101. data/pub/www/rdoc/classes/ReapTask.src/M000065.html +18 -0
  102. data/pub/www/rdoc/classes/ReapTask.src/M000066.html +18 -0
  103. data/pub/www/rdoc/classes/ReapTask.src/M000067.html +18 -0
  104. data/pub/www/rdoc/classes/ReapTask.src/M000068.html +18 -0
  105. data/pub/www/rdoc/created.rid +1 -1
  106. data/pub/www/rdoc/files/{lib/reap2/publish-task_rb.html → LICENSE.html} +19 -7
  107. data/pub/www/rdoc/files/README.html +271 -0
  108. data/pub/www/rdoc/files/lib/{reap2/announce-task_rb.html → reap/announce_task_rb.html} +5 -4
  109. data/pub/www/rdoc/files/lib/{reap2/template-task_rb.html → reap/filemod_task_rb.html} +5 -5
  110. data/pub/www/rdoc/files/lib/{reap2/rdoc-task_rb.html → reap/info_task_rb.html} +5 -5
  111. data/pub/www/rdoc/files/lib/{reap2/chmod-task_rb.html → reap/noop_task_rb.html} +5 -5
  112. data/pub/www/rdoc/files/lib/{reap2/package-task_rb.html → reap/package_task_rb.html} +5 -4
  113. data/pub/www/rdoc/files/lib/reap/projectinfo_rb.html +111 -0
  114. data/pub/www/rdoc/files/lib/reap/publish_task_rb.html +108 -0
  115. data/pub/www/rdoc/files/lib/reap/rdoc_task_rb.html +108 -0
  116. data/pub/www/rdoc/files/lib/reap/ready_made_rb.html +115 -0
  117. data/pub/www/rdoc/files/lib/{reap2 → reap}/task_rb.html +5 -6
  118. data/pub/www/rdoc/files/lib/reap/tasks_rb.html +115 -0
  119. data/pub/www/rdoc/files/lib/{reap2/test-task_rb.html → reap/test_task_rb.html} +5 -10
  120. data/pub/www/rdoc/files/lib/reap/web_publish_task_rb.html +108 -0
  121. data/pub/www/rdoc/fr_class_index.html +7 -2
  122. data/pub/www/rdoc/fr_file_index.html +15 -9
  123. data/pub/www/rdoc/fr_method_index.html +68 -32
  124. data/pub/www/rdoc/index.html +1 -1
  125. data/test/tc_reap.rb +1 -1
  126. metadata +126 -58
  127. data/Reapfile +0 -99
  128. data/lib/reap/reap-all.rb +0 -15
  129. data/lib/reap/template-task.rb +0 -40
  130. data/pub/www/rdoc/classes/Reap/ChmodTask.src/M000015.html +0 -21
  131. data/pub/www/rdoc/classes/Reap/ChmodTask.src/M000016.html +0 -21
  132. data/pub/www/rdoc/classes/Reap/PackageTask.src/M000001.html +0 -49
  133. data/pub/www/rdoc/classes/Reap/PublishTask.src/M000019.html +0 -24
  134. data/pub/www/rdoc/classes/Reap/RDocTask.src/M000005.html +0 -21
  135. data/pub/www/rdoc/classes/Reap/RDocTask.src/M000006.html +0 -53
  136. data/pub/www/rdoc/classes/Reap/Task.src/M000024.html +0 -21
  137. data/pub/www/rdoc/classes/Reap/Task.src/M000027.html +0 -28
  138. data/pub/www/rdoc/classes/Reap/Task.src/M000029.html +0 -18
  139. data/pub/www/rdoc/classes/Reap/TemplateTask.src/M000022.html +0 -21
  140. data/pub/www/rdoc/classes/Reap/TemplateTask.src/M000023.html +0 -34
  141. data/pub/www/rdoc/classes/Reap/TestTask.src/M000007.html +0 -25
  142. data/pub/www/rdoc/classes/Reap/TestTask.src/M000008.html +0 -21
  143. data/pub/www/rdoc/files/lib/reap2/reap-all_rb.html +0 -110
data/{ANN-0.6.1 → ANN} RENAMED
File without changes
data/ChangeLog CHANGED
@@ -1,9 +1,20 @@
1
1
 
2
- v0.5:
3
- - Improved testing. Output is summarized and in YAML!
4
- - Improved configuration loading a bit.
5
- - Worte some basic docs on how to write a Reap task.
6
- - Adjusted for Nano upgrade (was Facets).
7
-
8
- v0.4:
9
- - Initial Toasting
2
+ = Reap ChangeLog
3
+
4
+ == 03
5
+
6
+ * Major overhaul. Reap is no longer an independent project.
7
+ Rather, it is now an extension of Rake. All Reap tasks are
8
+ now a subclass of Rake::TaskLib.
9
+
10
+ == 02
11
+
12
+ * Improved test task. Each test now runs in its own process.
13
+ Output is summarized and in YAML.
14
+ * Improved configuration loading a bit.
15
+ * Wrote some basic docs on how to write a Reap task.
16
+ * Adjusted for Nano upgrade (was Facets).
17
+
18
+ == 01
19
+
20
+ * Alpha Development
data/ProjectInfo ADDED
@@ -0,0 +1,25 @@
1
+ --- %YAML:1.0
2
+
3
+ TITLE : &title Reap
4
+ NAME : &pkg reap
5
+ VERSION : '3.01'
6
+ AUTHOR : Thomas Sawyer
7
+ EMAIL : &email transfire@gmail.com
8
+ HOMEPAGE : "http://reap.rubyforge.org"
9
+ SUMMARY : Rake extensions for project management assitance.
10
+
11
+ DESCRIPTION: >
12
+ The Reap extensions for Rake comprise a set of commonly
13
+ needed tasks for Ruby package developers/deployers.
14
+ Because of the commonality, Reap utilizes a YAML
15
+ configuration file to harvest project information,
16
+ significantly simplifying Rake usage. In fact,
17
+ when using Reap, it will not be uncommon to see a
18
+ Rakefile containinf nothing but require 'reap-all'.
19
+
20
+ DEPENDENCIES : &dep [ nano ]
21
+ EXECUTABLES : &exe []
22
+
23
+ RUBYFORGE:
24
+ PROJECT: reap
25
+ USERNAME: reap
data/README CHANGED
@@ -4,16 +4,16 @@ User Friendly Project Assitant for Ruby
4
4
 
5
5
  == What's This?
6
6
 
7
- Reap is a user friendly project assistant for Ruby developers.
8
- By organizing your project in a semi-formal manner (the same as setup.rb),
9
- Reap makes it easy to do the following tasks:
7
+ Reap is a user friendly project assistant for Ruby developers
8
+ built on top of Rake. By organizing your project in a semi-formal
9
+ manner (the same as setup.rb), Reap makes it easy to do the
10
+ following tasks:
10
11
 
11
12
  * Generate RDocs.
12
13
  * Run unit tests.
13
14
  * Create Ruby Gem packages.
14
- * Create standard .tar.gz, tar.bzip2 and/or .zip packages.
15
+ * Create standard .tgz, tbz (bzip2) and/or .zip packages.
15
16
  * Publish documents to Rubyforge or other web sites.
16
- * Preform a traditional install (calls setup.rb).
17
17
  * Announce a release to Ruby-talk or other mailing list.
18
18
  * Prepare files for distribution (i.e. chmod, tag, etc.).
19
19
  * Upload packages (coming soon!).
@@ -30,13 +30,11 @@ Install the ruby gem as you would any other:
30
30
 
31
31
  <tt>gem install reap</tt>
32
32
 
33
- Reap is part of the Ruby clibre project and requires
34
- supporting calibre libraries, Facets and Carats, so
35
- they will also be installed.
33
+ Reap requires Nano Methods.
36
34
 
37
35
  === Manual Install
38
36
 
39
- To install manually follw the usiusl setup.eb steps:
37
+ To install manually follow the usual setup.eb steps:
40
38
 
41
39
  1. Download the compressed package.
42
40
  2. Unpack it.
@@ -45,10 +43,78 @@ To install manually follw the usiusl setup.eb steps:
45
43
 
46
44
  You should be good to go.
47
45
 
46
+ == Usage
47
+
48
+ === Using a Reap Task
49
+
50
+ Reap makes it pretty easy to use it's built-in tasks.
51
+ Not only will it grab common data from a ProjectInfo
52
+ YAML file if available, but it defines convenience methods
53
+ to make writing Rakefiles easier. For instance, to create
54
+ a "package" target all you generally need in your Rakefile is:
55
+
56
+ require 'reap/tasks'
57
+
58
+ include ReapTask
59
+
60
+ package_task :package
61
+
62
+ The reaon this can be so simple, is b/c Reap extrapolates the
63
+ information it needs from a comon ProjectInfo file. You will
64
+ of course need to create this file in you projects main directory.
65
+ A template is provided and a command line tool to copy it to your
66
+ current directory. Simply type:
67
+
68
+ > reap template
69
+
70
+ Then edit the ProjectInfo file. The fields are fairly self
71
+ explanitiory. Apart from Reap such a file is nice to have on
72
+ it's own merits too.
73
+
74
+ === Building a Reap Task
75
+
76
+ Building a Reap task differs from building a Rake task
77
+ by two important factors. First there is only one target
78
+ per task (this may change) Second, task blocks are yeilded
79
+ _prior_ to the #init routine being exectuted. So your #init
80
+ routine should expect data to already be present in
81
+ the tasks attribute and take that into account (usually that
82
+ means using ++||=++)
83
+
84
+ Here's an, oh so simple, example:
85
+
86
+ class MyOhSoSimpleTask < Reap::Task
87
+
88
+ # This creates the convenience method
89
+ register 'my_oh_so_simple'
90
+
91
+ default_desc 'this is a custom reap task'
92
+
93
+ attr_accessor :message
94
+
95
+ def init
96
+ @message ||= master['default'] || 'None Found!'
97
+ end
98
+
99
+ # run the target task
100
+ def run
101
+ puts @message
102
+ end
103
+
104
+ end
105
+
106
+ The corresponding settings in the ProjectInfo file (master) will then be:
107
+
108
+ default: Default text, if any.
109
+
110
+ And to use it in your Rake file:
111
+
112
+ ReapTask::my_oh_so_simple_task :mytarget
113
+
48
114
  == Status
49
115
 
50
116
  Reap is currently Usable Beta. Most of the tasks
51
- work very well. Refinement are still coomon though,
117
+ work very well. Refinements are still common though,
52
118
  and a few important tasks are still being planned.
53
119
 
54
120
  == Legal
@@ -56,4 +122,3 @@ and a few important tasks are still being planned.
56
122
  Reap
57
123
  Copyright(c)2004-2005 Thomas Sawyer
58
124
  Ruby License
59
-
data/Rakefile CHANGED
@@ -1,19 +1,141 @@
1
1
 
2
- require 'reap/reap-all'
3
-
4
- #require 'reap/template-task'
5
- #require 'reap/chmod-task'
6
- #require 'reap/test-task'
7
- #require 'reap/rdoc-task'
8
- #require 'reap/announce-task'
9
- #require 'reap/publish-task'
10
- #require 'reap/package-task'
11
-
12
- #Reap::TemplateTask.new
13
- #Reap::ChmodTask.new
14
- #Reap::TestTask.new
15
- #Reap::RDocTask.new
16
- #Reap::AnnounceTask.new
17
- #Reap::PublishTask.new
18
- #Reap::PackageTask.new
2
+ require 'reap/tasks'
19
3
 
4
+ # Traditionally, a prebuilt rake task is utilized like this:
5
+ #
6
+ # Reap::PublishTask.new :mypublisher do |s|
7
+ # s.type = 'web'
8
+ # s.host = 'rubyforge.org'
9
+ # s.username = 'transami'
10
+ # s.dir = 'pub/www'
11
+ # end
12
+ #
13
+ # Reap provides a way to use YAML and specilize methods to make
14
+ # this even cleaner.
15
+ #
16
+ # publish_task( :mypublisher ) {"
17
+ # type : web
18
+ # host : rubyforge.org
19
+ # username : transami
20
+ # dir : pub/www
21
+ # "}
22
+ #
23
+ # Of course, one can still use a traditional block with the
24
+ # special methods.
25
+ #
26
+ # publish_task :mypublisher do |s|
27
+ # s.type = 'web'
28
+ # s.host = 'rubyforge.org'
29
+ # s.username = 'transami'
30
+ # s.dir = 'pub/www'
31
+ # end
32
+ #
33
+ # But there is an additional advantage to the YAML approach. Reap prepends
34
+ # the task YAML with the YAML in the ProjectInfo file. This way it is easy
35
+ # to reuse master information in indivial tasks. For exmaple you might have
36
+ # an# &author anchor defined in ProjectInfo.
37
+ #
38
+ # publish_task( :mypublisher ) {"
39
+ # type : web
40
+ # host : rubyforge.org
41
+ # username : *author
42
+ # dir : pub/www
43
+ # "}
44
+ #
45
+ # This special method notation actually works for some prebuilt rake tasks too.
46
+ # But do not expect the YAML to work /w them.
47
+ #
48
+
49
+ # template_task
50
+
51
+ include ReapTask
52
+
53
+ info_task( :info )
54
+
55
+ publish_task :publish do"
56
+ type : web
57
+ host : rubyforge.org
58
+ username : transami
59
+ dir : www
60
+ "end
61
+
62
+ announce_task :announce do"
63
+ to : transfire@gmail.com # ruby-talk@ruby-lang.org
64
+ from : *email
65
+ domain : reap.rubyforge.org
66
+ server : smtp.gmail.com
67
+ port : 587
68
+ account : *email # transfire@gmail.com
69
+ authtype : login # cram_md5, plain
70
+ sectype : tls # ~, tls, ssl (not working yet)
71
+ file : ANN # which file contains announcement
72
+ slogan : REAP THE REWARDS!
73
+ links :
74
+ - http://reap.rubyforge.org
75
+ - http://rake.rubyforge.org
76
+ "end
77
+
78
+ filemod_task :filemod do"
79
+ filemod: 644
80
+ dirmod: 755
81
+ user: trans
82
+ group: users
83
+ "end
84
+
85
+ test_task :test do"
86
+ files:
87
+ - 'test/**/tc*.rb'
88
+ - 'test/**/test*.rb'
89
+ - 'test/**/*test.rb'
90
+ options: ~ # not used yet
91
+ "end
92
+
93
+ rdoc_task :rdoc do"
94
+ title: *title
95
+ dir: 'pub/www/rdoc'
96
+ template: html
97
+ options: ['--merge', '--all']
98
+ main: README
99
+ include:
100
+ - 'README*'
101
+ - 'LICEN*'
102
+ - 'COPY*'
103
+ - 'lib/**/*.rb'
104
+ - 'bin/**/*.rb'
105
+ exclude: []
106
+ "end
107
+
108
+ package_task :package do"
109
+ dir: pkg
110
+ include:
111
+ - 'lib/**/*'
112
+ - 'data/**/*'
113
+ - 'ext/**/*'
114
+ - 'bin/**/*'
115
+ - 'bench/**/*'
116
+ - 'test/**/*'
117
+ - 'doc/**/*'
118
+ - 'rdoc/**/*'
119
+ - 'pub/**/*'
120
+ - 'www/**/*'
121
+ - 'demo/**/*'
122
+ - 'samples/**/*'
123
+ - 'examples/**/*'
124
+ - 'bench/**/*'
125
+ - 'setup.rb'
126
+ - '[A-Z]*'
127
+ exclude:
128
+ - InstalledFiles
129
+ autorequire: ~
130
+ requirements: []
131
+ dependencies: *dep #[]
132
+ executables: *exe #[]
133
+ gem: true
134
+ zip: true
135
+ gzip: true
136
+ bzip2: true
137
+ "end
138
+
139
+ noop_task :noop do"
140
+ message: 'Hello, World!'
141
+ "end
data/bin/reap ADDED
@@ -0,0 +1,159 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'getoptlong'
4
+ require 'rbconfig'
5
+ require 'reap/tasks'
6
+
7
+ HELP1 = <<-HERE
8
+
9
+ reap v#{::Reap::VERSION}
10
+
11
+ USAGE: reap [options...] <command> [arguments...]
12
+
13
+ COMMANDS:
14
+
15
+ help
16
+ Displays this help information.
17
+
18
+ template
19
+ Copies the ProjectInfo template into the current
20
+ directory, if it doesn't already exist.
21
+
22
+ HERE
23
+
24
+ HELP2 = <<-HERE
25
+ OPTIONS:
26
+
27
+ -v --verbose
28
+ Provides extra verbose processing information.
29
+
30
+ -u --use <file>
31
+ Use the specified configuration file rather than
32
+ the default 'ProjectInfo'.
33
+
34
+ -p --pretend (NOT YET IMPLEMENTED)
35
+ Pretend, just to see what would happen, but don't
36
+ actually do anything.
37
+
38
+ --version
39
+ Display the current version.
40
+
41
+ --help
42
+ Display this help information.
43
+ HERE
44
+
45
+
46
+ module Commands
47
+ extend self
48
+
49
+ DATA_DIR = 'site_ruby/reap'
50
+ FILE_NAME = 'ProjectInfo'
51
+
52
+ def version
53
+ puts "%.2f" % [ Reap::Version ]
54
+ end
55
+
56
+ def help
57
+ puts HELP1
58
+
59
+ #Reap::Task.registry.each do |t|
60
+ # puts " #{t.task_name}"
61
+ # puts " #{t.task_desc}\n\n"
62
+ #end
63
+
64
+ puts HELP2
65
+ end
66
+
67
+ def tasks
68
+ puts
69
+ #Reap::Task.registry.each do |t|
70
+ # puts " #{t.task_name}".ljust(20) + "#{t.task_desc}"
71
+ #end
72
+ puts
73
+ end
74
+
75
+ def template( file_name = ProjectInfo )
76
+ #dir = File.dirname(File.dirname(__FILE__))
77
+ dir = File.join( ::Config::CONFIG['datadir'], DATA_DIR )
78
+
79
+ tmpf = File.join( dir, 'template.yaml' )
80
+ unless File.file?( tmpf )
81
+ puts tmpf
82
+ raise "Tempfile is missing."
83
+ end
84
+
85
+ if File.directory?(filename)
86
+ puts "#{filename} a directory. Cannot comply."
87
+ return
88
+ elsif File.file?(filename)
89
+ puts "#{filename} already exists."
90
+ return
91
+ end
92
+ # copy tmpf to Reapfile
93
+ FileUtils.cp( tmpf, filename )
94
+ puts "#{filename} created. You'll need to fill it out."
95
+ end
96
+
97
+ end
98
+
99
+
100
+ # main
101
+
102
+ cmd = nil
103
+
104
+ opts = GetoptLong.new(
105
+ [ "-v", "--verbose", GetoptLong::NO_ARGUMENT ],
106
+ [ "-p", "--pretend", GetoptLong::NO_ARGUMENT ],
107
+ [ "-d", "--debug", GetoptLong::NO_ARGUMENT ],
108
+ [ "-u", "--use", GetoptLong::REQUIRED_ARGUMENT ],
109
+ [ "--version", GetoptLong::NO_ARGUMENT ],
110
+ [ "--help", GetoptLong::NO_ARGUMENT ]
111
+ )
112
+
113
+ opts.each do |o, a|
114
+ case o
115
+ when '-v'
116
+ $VERBOSE = true
117
+ when '-p'
118
+ $PRETEND = true
119
+ when '-u'
120
+ config = a
121
+ when '-d'
122
+ $DEBUG = true
123
+ when '--help'
124
+ cmd = 'help'
125
+ when '--version'
126
+ cmd = 'version'
127
+ end
128
+ end
129
+
130
+ cmd = cmd || ARGV[0]
131
+ args = ARGV[1..-1]
132
+ config = nil
133
+
134
+ cmd = cmd.downcase if cmd
135
+
136
+ case cmd
137
+ when nil,'help'
138
+ Commands.help
139
+ exit 0
140
+ when 'tasks'
141
+ Commands.tasks
142
+ exit 0
143
+ when 'version'
144
+ Commands.version
145
+ exit 0
146
+ when 'template'
147
+ Commands.template
148
+ end
149
+
150
+ # Quick-build and run a task.
151
+
152
+ c = cmd.downcase.to_s
153
+ if ReapTask.respond_to?( "#{c}_task" )
154
+ rt = ReapTask.send("#{c}_task") { ARGV.slice(1..-1).join(' ') }
155
+ rt.run
156
+ else
157
+ puts "Unknown command. Try 'reap help' for assitance."
158
+ exit 0
159
+ end