ratch 0.2.3 → 0.3.0

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 (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
-