ratch 0.2.3 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (129) hide show
  1. data/bin/ratch +60 -47
  2. data/bin/ratch-find +21 -0
  3. data/demo/{README → XR} +0 -0
  4. data/demo/task/stats +0 -2
  5. data/doc/images/clipboard.jpg +0 -0
  6. data/doc/images/clipboard2.png +0 -0
  7. data/doc/images/milles-tn.jpg +0 -0
  8. data/doc/images/mints.png +0 -0
  9. data/doc/images/ratch2.png +0 -0
  10. data/doc/images/ruby-sm.png +0 -0
  11. data/doc/images/silver.gif +0 -0
  12. data/doc/images/toolbox.jpg +0 -0
  13. data/doc/index.html +181 -0
  14. data/doc/notes/original.rb +308 -0
  15. data/doc/rdoc/classes/Array.html +194 -0
  16. data/doc/rdoc/classes/Dir.html +317 -0
  17. data/doc/rdoc/classes/Hash.html +217 -0
  18. data/doc/rdoc/classes/Ratch.html +201 -0
  19. data/doc/rdoc/classes/Ratch/ArgvUtils.html +173 -0
  20. data/doc/rdoc/classes/Ratch/ArgvUtils/Ext.html +285 -0
  21. data/doc/rdoc/classes/Ratch/BatchFile.html +207 -0
  22. data/doc/rdoc/classes/Ratch/BatchManager.html +250 -0
  23. data/doc/rdoc/classes/Ratch/BatchScript.html +127 -0
  24. data/doc/rdoc/classes/Ratch/Batchable.html +373 -0
  25. data/doc/rdoc/classes/Ratch/Build.html +321 -0
  26. data/doc/rdoc/classes/Ratch/BuildManager.html +319 -0
  27. data/doc/rdoc/classes/Ratch/Buildable.html +202 -0
  28. data/doc/rdoc/classes/Ratch/ConfigUtils.html +281 -0
  29. data/doc/rdoc/classes/Ratch/ConsoleUtils.html +189 -0
  30. data/doc/rdoc/classes/Ratch/EmailUtils.html +209 -0
  31. data/doc/rdoc/classes/Ratch/FileUtils.html +674 -0
  32. data/doc/rdoc/classes/Ratch/GeneralOptions.html +430 -0
  33. data/doc/rdoc/classes/Ratch/Task.html +201 -0
  34. data/doc/rdoc/classes/Ratch/TaskManager.html +330 -0
  35. data/doc/rdoc/classes/Ratch/Taskable.html +231 -0
  36. data/doc/rdoc/classes/Ratch/UploadUtils.html +566 -0
  37. data/doc/rdoc/created.rid +1 -0
  38. data/doc/rdoc/files/COPYING.html +1003 -0
  39. data/{demo/doc → doc}/rdoc/files/README.html +36 -5
  40. data/doc/rdoc/files/lib/ratch/argvutils_rb.html +131 -0
  41. data/doc/rdoc/files/lib/ratch/batch_rb.html +155 -0
  42. data/doc/rdoc/files/lib/ratch/batchable_rb.html +131 -0
  43. data/doc/rdoc/files/lib/ratch/batchfile_rb.html +148 -0
  44. data/doc/rdoc/files/lib/ratch/buildable_rb.html +131 -0
  45. data/doc/rdoc/files/lib/ratch/consoleutils_rb.html +131 -0
  46. data/{demo/doc/rdoc/files/lib/foo/foo_rb.html → doc/rdoc/files/lib/ratch/emailutils_rb.html} +35 -41
  47. data/doc/rdoc/files/lib/ratch/facets/multiglob_rb.html +137 -0
  48. data/doc/rdoc/files/lib/ratch/fileutils_rb.html +139 -0
  49. data/doc/rdoc/files/lib/ratch/options_rb.html +131 -0
  50. data/doc/rdoc/files/lib/ratch/taskable_rb.html +131 -0
  51. data/doc/rdoc/files/lib/ratch/uploadutils_rb.html +150 -0
  52. data/doc/rdoc/fr_class_index.html +48 -0
  53. data/doc/rdoc/fr_file_index.html +41 -0
  54. data/doc/rdoc/fr_method_index.html +133 -0
  55. data/{demo/doc → doc}/rdoc/index.html +1 -1
  56. data/{demo/doc → doc}/rdoc/rdoc-style.css +0 -0
  57. data/doc/scrap/flexihead-flip.jpg +0 -0
  58. data/doc/scrap/flexihead.jpg +0 -0
  59. data/doc/scrap/head1.jpg +0 -0
  60. data/doc/scrap/ratch.jpg +0 -0
  61. data/doc/scrap/ratch1.png +0 -0
  62. data/doc/scrap/ratch2.jpg +0 -0
  63. data/doc/scrap/ratch3.png +0 -0
  64. data/doc/scrap/red-ratch.jpg +0 -0
  65. data/doc/scrap/redratchet.jpg +0 -0
  66. data/doc/scrap/ruby-kit/ruby.png +0 -0
  67. data/doc/scrap/scrap.red +256 -0
  68. data/doc/sitemap.yaml +10 -0
  69. data/doc/siteparts/index.red +100 -0
  70. data/doc/siteparts/layout.rhtml +56 -0
  71. data/doc/siteparts/tutorial.red +578 -0
  72. data/doc/style.css +112 -0
  73. data/doc/tutorial.html +722 -0
  74. data/lib/ratch/batch.rb +417 -30
  75. data/lib/ratch/{argvutils.rb → batch/argvutils.rb} +27 -19
  76. data/lib/ratch/batch/build.rb +95 -0
  77. data/lib/ratch/{consoleutils.rb → batch/consoleutils.rb} +0 -0
  78. data/lib/ratch/{emailutils.rb → batch/emailutils.rb} +0 -0
  79. data/lib/ratch/{fileutils.rb → batch/fileutils.rb} +32 -32
  80. data/lib/ratch/{options.rb → batch/options.rb} +0 -0
  81. data/lib/ratch/batch/task.rb +43 -0
  82. data/lib/ratch/manager.rb +34 -0
  83. data/lib/ratch/project/information.rb +257 -0
  84. data/lib/ratch/project/package.rb +82 -0
  85. data/lib/ratch/project/project.rb +531 -0
  86. data/lib/ratch/project/release.rb +112 -0
  87. data/lib/ratch/support/filetest.rb +29 -0
  88. data/lib/ratch/support/setuputils.rb +124 -0
  89. data/lib/ratch/support/signiture.rb +252 -0
  90. data/lib/ratch/support/stage.rb +292 -0
  91. data/lib/ratch/toolset/ruby/pack/gem +85 -0
  92. data/lib/ratch/toolset/ruby/pack/tgz +85 -0
  93. data/lib/ratch/toolset/ruby/{crosstest → test/crosstest} +0 -0
  94. data/lib/ratch/toolset/ruby/{extest → test/extest} +0 -0
  95. data/lib/ratch/toolset/ruby/{isotest → test/isotest} +0 -0
  96. data/lib/ratch/toolset/ruby/{load → test/load} +0 -0
  97. data/lib/ratch/toolset/ruby/{loadtest → test/loadtest} +0 -0
  98. data/lib/ratch/toolset/ruby/{syntax → test/syntax} +0 -0
  99. data/lib/ratch/toolset/ruby/{test → test/test} +0 -0
  100. data/log/{history.rd → history} +6 -0
  101. data/log/{todo.rd → todo} +0 -0
  102. data/meta/MANIFEST +52 -36
  103. data/meta/ROLLRC +2 -0
  104. data/meta/icli.yaml +16 -0
  105. data/meta/{ratch-0.2.3.roll → project.yaml} +1 -7
  106. data/task/release +12 -0
  107. data/{lib/ratch → work/old}/batchfile.rb +0 -0
  108. data/work/project-old.rb +67 -0
  109. data/work/scrap/install +89 -0
  110. data/work/scrap/install.0 +49 -0
  111. data/work/scrap/install.1 +63 -0
  112. data/work/scrap/ludo +25 -0
  113. data/work/scrap/oldtaskable.rb +573 -0
  114. data/work/scrap/ratch.man +39 -0
  115. data/work/scrap/taskable-simple.rb +42 -0
  116. data/work/scrap/taskable.rb +120 -0
  117. metadata +170 -72
  118. data/demo/doc/rdoc/created.rid +0 -1
  119. data/demo/doc/rdoc/fr_class_index.html +0 -26
  120. data/demo/doc/rdoc/fr_file_index.html +0 -28
  121. data/demo/doc/rdoc/fr_method_index.html +0 -27
  122. data/demo/task/config.yaml +0 -2
  123. data/lib/ratch/batchable.rb +0 -169
  124. data/lib/ratch/buildable.rb +0 -182
  125. data/lib/ratch/configutils.rb +0 -132
  126. data/lib/ratch/facets/multiglob.rb +0 -160
  127. data/lib/ratch/taskable.rb +0 -152
  128. data/log/recent.rd +0 -8
  129. data/task/config.yaml +0 -10
@@ -1,160 +0,0 @@
1
- # TITLE:
2
- #
3
- # Multiglob
4
- #
5
- # SUMMARY:
6
- #
7
- # Dir extensions for globbing multiple locations at once.
8
- #
9
- # COPYING:
10
- #
11
- # Copyright (c) 2007 Psi T Corp.
12
- #
13
- # This file is part of the ProUtils' Ratch program.
14
- #
15
- # Ratch is free software: you can redistribute it and/or modify
16
- # it under the terms of the GNU General Public License as published by
17
- # the Free Software Foundation, either version 3 of the License, or
18
- # (at your option) any later version.
19
- #
20
- # Ratch is distributed in the hope that it will be useful,
21
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
22
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23
- # GNU General Public License for more details.
24
- #
25
- # You should have received a copy of the GNU General Public License
26
- # along with Ratch. If not, see <http://www.gnu.org/licenses/>.
27
-
28
- #
29
- class Dir
30
-
31
- # Like +glob+ but can take multiple patterns.
32
- #
33
- # Dir.multiglob( '*.rb', '*.py' )
34
- #
35
- # Rather then constants for options multiglob accepts a trailing options
36
- # hash of symbol keys.
37
- #
38
- # :noescape File::FNM_NOESCAPE
39
- # :casefold File::FNM_CASEFOLD
40
- # :pathname File::FNM_PATHNAME
41
- # :dotmatch File::FNM_DOTMATCH
42
- # :strict File::FNM_PATHNAME && File::FNM_DOTMATCH
43
- #
44
- # It also has an option for recurse.
45
- #
46
- # :recurse Recurively include contents of directories.
47
- #
48
- # For example
49
- #
50
- # Dir.multiglob( '*', :recurse => true )
51
- #
52
- # would have the same result as
53
- #
54
- # Dir.multiglob('**/*')
55
- #
56
- # Multiglob also accepts '+' and '-' prefixes. Any entry that begins with a '-'
57
- # is treated as an exclusion glob and will be removed from the final result.
58
- # For example, to collect all files in the current directory, less ruby scripts:
59
- #
60
- # Dir.multiglob( '*', '-*.rb' )
61
- #
62
- # This is very useful in collecting files as specificed by a configuration
63
- # parameter.
64
-
65
- def self.multiglob( *patterns )
66
- options = (Hash === patterns.last ? patterns.pop : {})
67
-
68
- bitflags = 0
69
- bitflags |= File::FNM_NOESCAPE if options[:noescape]
70
- bitflags |= File::FNM_CASEFOLD if options[:casefold]
71
- bitflags |= File::FNM_PATHNAME if options[:pathname] or options[:strict]
72
- bitflags |= File::FNM_DOTMATCH if options[:dotmatch] or options[:strict]
73
-
74
- patterns = [patterns].flatten.compact
75
-
76
- patterns_include = patterns.select{ |f| f !~ /^[-]/ }
77
- patterns_exclude = patterns.select{ |f| f =~ /^[-]/ }
78
-
79
- patterns_include.collect!{ |f| f =~ /^[+]/ ? f[1..-1] : f }
80
- patterns_exclude.collect!{ |f| f =~ /^[-]/ ? f[1..-1] : f }
81
-
82
- if options[:recurse]
83
- patterns_include += patterns_include.collect{ |f| File.join(f, '**', '*') }
84
- patterns_exclude += patterns_exclude.collect{ |f| File.join(f, '**', '*') }
85
- end
86
-
87
- files = []
88
- files += patterns_include.collect{ |pattern| Dir.glob(pattern, bitflags) }.flatten.uniq
89
- files -= patterns_exclude.collect{ |pattern| Dir.glob(pattern, bitflags) }.flatten.uniq
90
-
91
- return files
92
- end
93
-
94
- # The same as +multiglob+, but recusively includes directories.
95
- #
96
- # Dir.multiglob_r( 'folder' )
97
- #
98
- # is equivalent to
99
- #
100
- # Dir.multiglob( 'folder', :recurse=>true )
101
- #
102
- # The effect of which is
103
- #
104
- # Dir.multiglob( 'folder', 'folder/**/*' )
105
-
106
- def self.multiglob_r( *patterns )
107
- options = (Hash === patterns.last ? patterns.pop : {})
108
- options[:recurse] = true
109
- patterns << options
110
- multiglob(*patterns)
111
- end
112
-
113
- # This is just like multiglob but handles a base pattern such that
114
- # if the +patterns+ list starts with a '+' or '-' entry, then the base
115
- # will be included in the result, otherwise it will be omitted.
116
- #
117
- # Dir.multiglob_with_default('*.yaml', '-*.rb') #=> [ 'foo.yaml' ]
118
- # Dir.multiglob_with_default('*.yaml', '+*.rb') #=> [ 'foo.yaml', 'foo.rb' ]
119
- # Dir.multiglob_with_default('*.yaml', '*.rb') #=> [ 'foo.rb' ]
120
- #
121
- # This is useful when a configuration option needs to supply a file list
122
- # that may include files, exclude files or append files to a default list.
123
- #
124
- # TODO Deprecate this and replace with :default option on regular multiglob.
125
-
126
- def self.multiglob_with_default(default, *patterns)
127
- default = [default].flatten.compact
128
- patterns = patterns.flatten.compact
129
-
130
- if patterns.empty?
131
- patterns = default
132
- elsif patterns.first =~ /^[+-]/
133
- patterns = default + patterns
134
- end
135
-
136
- multiglob(*patterns)
137
- end
138
-
139
- end
140
-
141
-
142
-
143
- # _____ _
144
- # |_ _|__ ___| |_
145
- # | |/ _ \/ __| __|
146
- # | | __/\__ \ |_
147
- # |_|\___||___/\__|
148
- #
149
-
150
- # TODO Need to mock file system.
151
-
152
- =begin #no test yet
153
-
154
- require 'test/unit'
155
-
156
- class TestDir < Test::Unit::TestCase
157
-
158
- end
159
-
160
- =end
@@ -1,152 +0,0 @@
1
- # TITLE:
2
- #
3
- # Taskable
4
- #
5
- # COPYING:
6
- #
7
- # Copyright (c) 2007 Psi T Corp.
8
- #
9
- # This file is part of the ProUtils' Ratch program.
10
- #
11
- # Ratch is free software: you can redistribute it and/or modify
12
- # it under the terms of the GNU General Public License as published by
13
- # the Free Software Foundation, either version 3 of the License, or
14
- # (at your option) any later version.
15
- #
16
- # Ratch is distributed in the hope that it will be useful,
17
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
18
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
- # GNU General Public License for more details.
20
- #
21
- # You should have received a copy of the GNU General Public License
22
- # along with Ratch. If not, see <http://www.gnu.org/licenses/>.
23
-
24
- module Ratch
25
-
26
- # = Taskable Mixin
27
- #
28
- module Taskable
29
-
30
- # Reference task manager.
31
- def task_manager
32
- @task_manager ||= TaskManager.new(self)
33
- end
34
-
35
- # Define a main task.
36
- def main(name, &block)
37
- name, deps, block = *parse_task_dependencies(name, &block)
38
- task_manager.define_main(name, *deps, &block)
39
- end
40
-
41
- # Define a task.
42
- def task(name, &block)
43
- name, deps, block = *parse_task_dependencies(name, &block)
44
- task_manager.define_task(name, *deps, &block)
45
- end
46
-
47
- # Run a task.
48
- def run(name)
49
- task_manager.call(name)
50
- end
51
-
52
- private
53
-
54
- #
55
- def parse_task_dependencies(name_deps, &block)
56
- if Hash===name_deps
57
- name = name_deps.keys[0]
58
- deps = name_deps.values[0]
59
- else
60
- name = name_deps
61
- deps = []
62
- end
63
- [name, deps, block]
64
- end
65
- end
66
-
67
- # = TaskManager Class
68
- #
69
- class TaskManager
70
- attr :main
71
- attr :tasks
72
- attr :runspace
73
-
74
- def initialize(runspace)
75
- @runspace = runspace
76
- @main = nil
77
- @tasks = {}
78
- end
79
-
80
- def define_main(name=nil, *depend, &block)
81
- @main = Task.new(name, *depend, &block)
82
- tasks[@main.name] = @main
83
- end
84
-
85
- def define_task(name, *depend, &block)
86
- task = Task.new(name, *depend, &block)
87
- tasks[task.name] = task
88
- end
89
-
90
- def call_main
91
- return unless @main
92
- call(@main.name)
93
- end
94
-
95
- # Call task.
96
- def call(name)
97
- plan(name).each{ |name| @tasks[name].call }
98
- #action_call
99
- end
100
-
101
- # Prepare plan, checking for circular dependencies.
102
- def plan(name, list=[])
103
- if list.include?(name)
104
- raise "Circular dependency #{name}."
105
- end
106
- if task = @tasks[name]
107
- task.needs.each do |need|
108
- need = need.to_s
109
- next if list.include?(need)
110
- #@tasks[need].plan(need, list)
111
- plan(need, list)
112
- end
113
- list << task.name
114
- else
115
- if fname = runspace.batch?(name) # TODO THIS TIES TASKS INTO BATCH, BETTER WAY?
116
- task = Task.new(name) do
117
- runspace.batch(fname)
118
- end
119
- @tasks[name] = task
120
- list << task.name
121
- else
122
- abort "no task -- #{name}"
123
- end
124
- end
125
- return list
126
- end
127
-
128
- end
129
-
130
- # = Task class
131
- #
132
- class Task
133
-
134
- attr :name
135
- attr :needs
136
- attr :action
137
-
138
- #
139
- def initialize(name, *needs, &action)
140
- @name = name.to_s
141
- @needs = needs
142
- @action = action
143
- end
144
-
145
- #
146
- def call
147
- @action.call if @action
148
- end
149
-
150
- end
151
-
152
- end #module Ratch
@@ -1,8 +0,0 @@
1
- == 0.2.3 / 2007-11-12
2
-
3
- * Major Changes
4
- * Removed BatchFile context and now execute files in top-level.
5
- * Buildable iis working now.
6
- * Minor Changes
7
- * Improved webpage; added news items.
8
- * Generate RDocs for the first time. Yep, they need work ;)
@@ -1,10 +0,0 @@
1
-
2
- publish:
3
- project : proutils
4
- subdir : ratch
5
- username : transami
6
-
7
- rdoc:
8
- main: README
9
- output: doc/rdoc
10
-