damagecontrol 0.5.0 → 0.5.0.1391
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.
- data/README +67 -11
- data/Rakefile +15 -6
- data/app/controllers/admin_controller.rb +0 -3
- data/app/controllers/application.rb +42 -163
- data/app/controllers/build_controller.rb +33 -0
- data/app/controllers/files_controller.rb +1 -1
- data/app/controllers/project_controller.rb +23 -65
- data/app/controllers/rails_ext.rb +247 -0
- data/app/controllers/rscm_ext.rb +52 -0
- data/app/helpers/build_helper.rb +2 -0
- data/app/views/build/email.rhtml +18 -0
- data/app/views/build/status.rhtml +20 -0
- data/app/views/build/tests.rhtml +2 -0
- data/app/views/layouts/{rscm.rhtml → default.rhtml} +10 -4
- data/app/views/project/_changesets_list.rhtml +2 -2
- data/app/views/project/_cvs.rhtml +4 -5
- data/app/views/project/_project.rhtml +9 -9
- data/app/views/project/_select_pane.rhtml +26 -0
- data/app/views/project/_tab_pane.rhtml +23 -0
- data/app/views/project/changeset.rhtml +35 -0
- data/app/views/project/view.rhtml +18 -32
- data/app/views/setup/welcome.rhtml +118 -0
- data/config/database.yml +20 -20
- data/config/environment.rb +66 -60
- data/config/environments/development.rb +3 -2
- data/config/environments/production.rb +3 -2
- data/config/environments/test.rb +3 -2
- data/config/routes.rb +15 -0
- data/lib/damagecontrol/app.rb +11 -40
- data/lib/damagecontrol/build.rb +50 -8
- data/lib/damagecontrol/directories.rb +7 -6
- data/lib/damagecontrol/poller.rb +11 -20
- data/lib/damagecontrol/project.rb +83 -16
- data/lib/damagecontrol/publisher/ambient_orb.rb +16 -0
- data/lib/damagecontrol/publisher/archive.rb +16 -0
- data/lib/damagecontrol/publisher/base.rb +25 -0
- data/lib/damagecontrol/publisher/build_duration.rb +16 -0
- data/lib/damagecontrol/publisher/email.rb +59 -0
- data/lib/damagecontrol/publisher/execute.rb +49 -0
- data/lib/damagecontrol/publisher/ftp.rb +16 -0
- data/lib/damagecontrol/publisher/growl.rb +44 -0
- data/lib/damagecontrol/publisher/irc.rb +31 -0
- data/lib/damagecontrol/publisher/jabber.rb +68 -0
- data/lib/damagecontrol/publisher/scp.rb +16 -0
- data/lib/damagecontrol/publisher/x10cm11a.rb +17 -0
- data/lib/damagecontrol/publisher/x10cm17a.rb +17 -0
- data/lib/damagecontrol/publisher/yahoo.rb +16 -0
- data/lib/damagecontrol/standard_persister.rb +2 -2
- data/lib/damagecontrol/tracker.rb +48 -6
- data/lib/damagecontrol/visitor/rss_writer.rb +1 -1
- data/lib/damagecontrol/visitor/yaml_persister.rb +10 -1
- data/public/404.html +5 -5
- data/public/500.html +5 -5
- data/public/dispatch.cgi +2 -2
- data/public/dispatch.fcgi +1 -1
- data/public/dispatch.rb +2 -2
- data/public/images/growlicon.png +0 -0
- data/public/images/megaphone.png +0 -0
- data/public/images/monotone-logo.png +0 -0
- data/public/images/publisher/ambient_orb.png +0 -0
- data/public/images/publisher/build_duration.png +0 -0
- data/public/images/publisher/email.png +0 -0
- data/public/images/publisher/execute.png +0 -0
- data/public/images/publisher/growl.png +0 -0
- data/public/images/publisher/irc.png +0 -0
- data/public/images/publisher/jabber.png +0 -0
- data/public/images/publisher/x10cm11a.png +0 -0
- data/public/images/publisher/x10cm17a.png +0 -0
- data/public/images/publisher/yahoo.png +0 -0
- data/public/index.html +70 -1
- data/public/javascripts/dateFormat.js +283 -0
- data/public/javascripts/jscalendar/ChangeLog +500 -0
- data/public/javascripts/jscalendar/README +33 -0
- data/public/javascripts/jscalendar/bugtest-hidden-selects.html +108 -0
- data/public/javascripts/jscalendar/calendar-blue.css +231 -0
- data/public/javascripts/jscalendar/calendar-blue2.css +235 -0
- data/public/javascripts/jscalendar/calendar-brown.css +224 -0
- data/public/javascripts/jscalendar/calendar-green.css +228 -0
- data/public/javascripts/jscalendar/calendar-setup.js +181 -0
- data/public/javascripts/jscalendar/calendar-setup_stripped.js +21 -0
- data/public/javascripts/jscalendar/calendar-system.css +250 -0
- data/public/javascripts/jscalendar/calendar-tas.css +238 -0
- data/public/javascripts/jscalendar/calendar-win2k-1.css +270 -0
- data/public/javascripts/jscalendar/calendar-win2k-2.css +270 -0
- data/public/javascripts/jscalendar/calendar-win2k-cold-1.css +264 -0
- data/public/javascripts/jscalendar/calendar-win2k-cold-2.css +270 -0
- data/public/javascripts/jscalendar/calendar.js +1715 -0
- data/public/javascripts/jscalendar/calendar.php +119 -0
- data/public/javascripts/jscalendar/calendar_stripped.js +12 -0
- data/public/javascripts/jscalendar/doc/html/reference-Z-S.css +0 -0
- data/public/javascripts/jscalendar/doc/html/reference.css +34 -0
- data/public/javascripts/jscalendar/doc/html/reference.html +1316 -0
- data/public/javascripts/jscalendar/doc/reference.pdf +0 -0
- data/public/javascripts/jscalendar/img.gif +0 -0
- data/public/javascripts/jscalendar/index.html +333 -0
- data/public/javascripts/jscalendar/lang/calendar-af.js +39 -0
- data/public/javascripts/jscalendar/lang/calendar-br.js +45 -0
- data/public/javascripts/jscalendar/lang/calendar-ca.js +45 -0
- data/public/javascripts/jscalendar/lang/calendar-cs-win.js +34 -0
- data/public/javascripts/jscalendar/lang/calendar-da.js +63 -0
- data/public/javascripts/jscalendar/lang/calendar-de.js +100 -0
- data/public/javascripts/jscalendar/lang/calendar-du.js +45 -0
- data/public/javascripts/jscalendar/lang/calendar-el.js +89 -0
- data/public/javascripts/jscalendar/lang/calendar-en.js +123 -0
- data/public/javascripts/jscalendar/lang/calendar-es.js +114 -0
- data/public/javascripts/jscalendar/lang/calendar-fi.js +98 -0
- data/public/javascripts/jscalendar/lang/calendar-fr.js +86 -0
- data/public/javascripts/jscalendar/lang/calendar-hr-utf8.js +49 -0
- data/public/javascripts/jscalendar/lang/calendar-hr.js +0 -0
- data/public/javascripts/jscalendar/lang/calendar-hu.js +45 -0
- data/public/javascripts/jscalendar/lang/calendar-it.js +79 -0
- data/public/javascripts/jscalendar/lang/calendar-jp.js +45 -0
- data/public/javascripts/jscalendar/lang/calendar-ko-utf8.js +120 -0
- data/public/javascripts/jscalendar/lang/calendar-ko.js +120 -0
- data/public/javascripts/jscalendar/lang/calendar-lt-utf8.js +114 -0
- data/public/javascripts/jscalendar/lang/calendar-lt.js +114 -0
- data/public/javascripts/jscalendar/lang/calendar-nl.js +45 -0
- data/public/javascripts/jscalendar/lang/calendar-no.js +45 -0
- data/public/javascripts/jscalendar/lang/calendar-pl-utf8.js +93 -0
- data/public/javascripts/jscalendar/lang/calendar-pl.js +56 -0
- data/public/javascripts/jscalendar/lang/calendar-pt.js +45 -0
- data/public/javascripts/jscalendar/lang/calendar-ro.js +66 -0
- data/public/javascripts/jscalendar/lang/calendar-ru.js +45 -0
- data/public/javascripts/jscalendar/lang/calendar-si.js +94 -0
- data/public/javascripts/jscalendar/lang/calendar-sk.js +99 -0
- data/public/javascripts/jscalendar/lang/calendar-sp.js +63 -0
- data/public/javascripts/jscalendar/lang/calendar-sv.js +93 -0
- data/public/javascripts/jscalendar/lang/calendar-tr.js +58 -0
- data/public/javascripts/jscalendar/lang/calendar-zh.js +45 -0
- data/public/javascripts/jscalendar/menuarrow.gif +0 -0
- data/public/javascripts/jscalendar/menuarrow2.gif +0 -0
- data/public/javascripts/jscalendar/release-notes.html +334 -0
- data/public/javascripts/jscalendar/simple-1.html +244 -0
- data/public/javascripts/jscalendar/simple-2.html +108 -0
- data/public/javascripts/jscalendar/simple-3.html +130 -0
- data/public/javascripts/jscalendar/test-position.html +40 -0
- data/public/javascripts/jscalendar/test.php +116 -0
- data/public/javascripts/toggle_div.js +18 -0
- data/public/stylesheets/niceones.txt +1 -0
- data/public/stylesheets/style.css +8 -1
- data/script/breakpointer +4 -5
- data/script/console +19 -27
- data/script/console_sandbox.rb +7 -0
- data/script/destroy +5 -0
- data/script/generate +3 -68
- data/script/server +6 -16
- data/test/damagecontrol/build_test.rb +8 -8
- data/test/damagecontrol/poller_test.rb +10 -18
- data/test/damagecontrol/project_test.rb +49 -13
- data/test/damagecontrol/publisher/base_test.rb +26 -0
- data/test/damagecontrol/publisher/build/email.rhtml +0 -0
- data/test/damagecontrol/publisher/email_test.rb +26 -0
- data/test/damagecontrol/publisher/fixture.rb +34 -0
- data/test/damagecontrol/publisher/growl_test.rb +15 -0
- data/test/damagecontrol/publisher/jabber_test.rb +15 -0
- data/test/damagecontrol/scm_web_test.rb +1 -1
- data/test/damagecontrol/visitor/changesets.rss +1 -1
- data/test/damagecontrol/visitor/diff_persister_test.rb +4 -4
- data/test/functional/build_controller_test.rb +17 -0
- data/test/test_helper.rb +13 -13
- metadata +185 -24
- data/app/views/project/_bugzilla.rhtml +0 -13
- data/app/views/project/_jira.rhtml +0 -19
- data/app/views/project/_mooky.rhtml +0 -23
- data/app/views/project/_rubyforge.rhtml +0 -19
- data/app/views/project/_scarab.rhtml +0 -19
- data/app/views/project/_scms.rhtml +0 -15
- data/app/views/project/_sourceforge.rhtml +0 -19
- data/app/views/project/_starteam.rhtml +0 -43
- data/app/views/project/_svn.rhtml +0 -22
- data/app/views/project/_trac.rhtml +0 -13
- data/app/views/project/_trackers.rhtml +0 -18
- data/app/views/project/changesets.rhtml +0 -31
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
2
|
+
|
|
3
|
+
<head>
|
|
4
|
+
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
|
5
|
+
<title>JS Calendar (positioning test)</title>
|
|
6
|
+
<script type="text/javascript" src="calendar.js"></script>
|
|
7
|
+
<script type="text/javascript" src="calendar-setup.js"></script>
|
|
8
|
+
<script type="text/javascript" src="lang/calendar-en.js"></script>
|
|
9
|
+
<style type="text/css"> @import url("calendar-win2k-cold-1.css"); </style>
|
|
10
|
+
</head>
|
|
11
|
+
|
|
12
|
+
<body style="height: 100%; margin: 0px; padding: 0px;">
|
|
13
|
+
<table style="height: 100%; width: 100%;" cellspacing="0" cellpadding="0">
|
|
14
|
+
<tr style="height: 100%;">
|
|
15
|
+
<td style="vertical-align: top; text-align: left;">
|
|
16
|
+
<input type="text" id="cal-field-1" />
|
|
17
|
+
<button type="submit" id="cal-button-1">...</button>
|
|
18
|
+
<script type="text/javascript">
|
|
19
|
+
Calendar.setup({
|
|
20
|
+
inputField : "cal-field-1",
|
|
21
|
+
button : "cal-button-1",
|
|
22
|
+
align : "Tr"
|
|
23
|
+
});
|
|
24
|
+
</script>
|
|
25
|
+
</td>
|
|
26
|
+
<td style="vertical-align: bottom; text-align: right;">
|
|
27
|
+
<input type="text" id="cal-field-2" />
|
|
28
|
+
<button type="submit" id="cal-button-2">...</button>
|
|
29
|
+
<script type="text/javascript">
|
|
30
|
+
Calendar.setup({
|
|
31
|
+
inputField : "cal-field-2",
|
|
32
|
+
button : "cal-button-2"
|
|
33
|
+
});
|
|
34
|
+
</script>
|
|
35
|
+
</td>
|
|
36
|
+
</tr>
|
|
37
|
+
</table>
|
|
38
|
+
</body>
|
|
39
|
+
|
|
40
|
+
</html>
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
<?php
|
|
2
|
+
|
|
3
|
+
$lang = $_GET['lang'];
|
|
4
|
+
if (!$lang) {
|
|
5
|
+
$lang = $_REQUEST['lang'];
|
|
6
|
+
}
|
|
7
|
+
if (!$lang) {
|
|
8
|
+
$lang = 'en';
|
|
9
|
+
}
|
|
10
|
+
setcookie('lang', $lang);
|
|
11
|
+
|
|
12
|
+
?>
|
|
13
|
+
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
|
14
|
+
<html>
|
|
15
|
+
<head>
|
|
16
|
+
<title>
|
|
17
|
+
Test for calendar.php
|
|
18
|
+
</title>
|
|
19
|
+
|
|
20
|
+
<?php
|
|
21
|
+
|
|
22
|
+
// put here the correct path to "calendar.php"; don't move the file
|
|
23
|
+
// "calendar.php" -- I think it's best if you leave it inside the
|
|
24
|
+
// "/jscalendar/" directory. Just put here the correct path to it, such as
|
|
25
|
+
// "../jscalendar/calendar.php" or something.
|
|
26
|
+
require_once ('calendar.php');
|
|
27
|
+
|
|
28
|
+
// parameters to constructor:
|
|
29
|
+
// 1. the absolute URL path to the calendar files
|
|
30
|
+
// 2. the languate used for the calendar (see the lang/ dir)
|
|
31
|
+
// 3. the theme file used for the clanedar, without the ".css" extension
|
|
32
|
+
// 4. boolean that specifies if the "_stripped" files are to be loaded
|
|
33
|
+
// The stripped files are smaller as they have no whitespace and comments
|
|
34
|
+
$calendar = new DHTML_Calendar('/jscalendar/', $lang, 'calendar-win2k-2', false);
|
|
35
|
+
|
|
36
|
+
// call this in the <head> section; it will "echo" code that loads the calendar
|
|
37
|
+
// scripts and theme file.
|
|
38
|
+
$calendar->load_files();
|
|
39
|
+
|
|
40
|
+
?>
|
|
41
|
+
|
|
42
|
+
</head>
|
|
43
|
+
|
|
44
|
+
<body>
|
|
45
|
+
|
|
46
|
+
<?php if ($_REQUEST['submitted']) { ?>
|
|
47
|
+
|
|
48
|
+
<h1>Form submitted</h1>
|
|
49
|
+
|
|
50
|
+
<?php foreach ($_REQUEST as $key => $val) {
|
|
51
|
+
echo htmlspecialchars($key) . ' = ' . htmlspecialchars($val) . '<br />';
|
|
52
|
+
} ?>
|
|
53
|
+
|
|
54
|
+
<?php } else { ?>
|
|
55
|
+
|
|
56
|
+
<h1>Calendar.php test</h1>
|
|
57
|
+
|
|
58
|
+
<form action="test.php" method="get">
|
|
59
|
+
Select language: <select name="lang" onchange="this.form.submit()">
|
|
60
|
+
<?php
|
|
61
|
+
$cwd = getcwd();
|
|
62
|
+
chdir('lang');
|
|
63
|
+
foreach (glob('*.js') as $filename) {
|
|
64
|
+
$l = preg_replace('/(^calendar-|.js$)/', '', $filename);
|
|
65
|
+
$selected = '';
|
|
66
|
+
if ($l == $lang)
|
|
67
|
+
$selected = 'selected="selected" ';
|
|
68
|
+
$display = $l;
|
|
69
|
+
if ($l == 'en')
|
|
70
|
+
$display = 'EN';
|
|
71
|
+
echo '<option ' . $selected . 'value="' . $l . '">' . $display . '</option>';
|
|
72
|
+
}
|
|
73
|
+
?>
|
|
74
|
+
</select>
|
|
75
|
+
<blockquote style="font-size: 90%">
|
|
76
|
+
<b>NOTE</b>: as of this release, 0.9.6, only "EN" and "RO", which I
|
|
77
|
+
maintain, function correctly. Other language files do not work
|
|
78
|
+
because they need to be updated. If you update some language file,
|
|
79
|
+
please consider sending it back to me so that I can include it in the
|
|
80
|
+
calendar distribution.
|
|
81
|
+
</blockquote>
|
|
82
|
+
</form>
|
|
83
|
+
|
|
84
|
+
<form action="test.php" method="get">
|
|
85
|
+
<input type="hidden" name="submitted" value="1" />
|
|
86
|
+
|
|
87
|
+
<table>
|
|
88
|
+
<tr>
|
|
89
|
+
<td>
|
|
90
|
+
Date 1:
|
|
91
|
+
</td>
|
|
92
|
+
<td>
|
|
93
|
+
<?php $calendar->make_input_field(
|
|
94
|
+
// calendar options go here; see the documentation and/or calendar-setup.js
|
|
95
|
+
array('firstDay' => 1, // show Monday first
|
|
96
|
+
'showsTime' => true,
|
|
97
|
+
'showOthers' => true,
|
|
98
|
+
'ifFormat' => '%Y-%m-%d %I:%M %P',
|
|
99
|
+
'timeFormat' => '12'),
|
|
100
|
+
// field attributes go here
|
|
101
|
+
array('style' => 'width: 15em; color: #840; background-color: #ff8; border: 1px solid #000; text-align: center',
|
|
102
|
+
'name' => 'date1',
|
|
103
|
+
'value' => strftime('%Y-%m-%d %I:%M %P', strtotime('now')))); ?>
|
|
104
|
+
</td>
|
|
105
|
+
</tr>
|
|
106
|
+
</table>
|
|
107
|
+
|
|
108
|
+
<hr />
|
|
109
|
+
<button>Submit</button>
|
|
110
|
+
|
|
111
|
+
</form>
|
|
112
|
+
|
|
113
|
+
<?php } ?>
|
|
114
|
+
|
|
115
|
+
</body>
|
|
116
|
+
</html>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
function setTab(tab) {
|
|
2
|
+
stickyTab = tab
|
|
3
|
+
showElement(stickyTab, tabs)
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
// hide all divs in the group unless selected
|
|
7
|
+
function showElement(selected, elements) {
|
|
8
|
+
// alert("showElement(" + selected + ",[" + elements.join() + "])")
|
|
9
|
+
for(element in elements) {
|
|
10
|
+
id = elements[element]
|
|
11
|
+
// alert("elements[" + element + "]=" + id)
|
|
12
|
+
style = "none"
|
|
13
|
+
if(id == selected) {
|
|
14
|
+
style = "block"
|
|
15
|
+
}
|
|
16
|
+
document.getElementById(id).style.display = style
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
http://googlemenus.blogspot.com/
|
data/script/breakpointer
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
require 'breakpoint_client'
|
|
1
|
+
#!c:/ruby/bin/ruby
|
|
2
|
+
require 'rubygems'
|
|
3
|
+
require_gem 'rails'
|
|
4
|
+
require 'breakpoint_client'
|
data/script/console
CHANGED
|
@@ -1,30 +1,22 @@
|
|
|
1
|
-
|
|
1
|
+
#!c:/ruby/bin/ruby
|
|
2
|
+
irb = RUBY_PLATFORM =~ /mswin32/ ? 'irb.bat' : 'irb'
|
|
2
3
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
NAME
|
|
11
|
-
console - interact with the domain model through a environment console (on IRB)
|
|
4
|
+
require 'optparse'
|
|
5
|
+
options = {}
|
|
6
|
+
OptionParser.new do |opt|
|
|
7
|
+
opt.on('-s', '--sandbox', 'Rollback database modifications on exit.') { |options[:sandbox]| }
|
|
8
|
+
opt.parse!(ARGV)
|
|
9
|
+
end
|
|
12
10
|
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
libs = " -r #{File.dirname(__FILE__)}/../config/environment"
|
|
12
|
+
libs << " -r #{File.dirname(__FILE__)}/console_sandbox" if options[:sandbox]
|
|
13
|
+
libs << " -r irb/completion"
|
|
15
14
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
console production
|
|
25
|
-
|
|
26
|
-
This will initialize the production environment (as setup in config/database.yml
|
|
27
|
-
and config/environments/production.rb). You would now be ready to start requiring
|
|
28
|
-
models using require_dependency.
|
|
29
|
-
HELP
|
|
30
|
-
end
|
|
15
|
+
ENV['RAILS_ENV'] = ARGV.first || 'development'
|
|
16
|
+
if options[:sandbox]
|
|
17
|
+
puts "Loading #{ENV['RAILS_ENV']} environment in sandbox."
|
|
18
|
+
puts "Any modifications you make will be rolled back on exit."
|
|
19
|
+
else
|
|
20
|
+
puts "Loading #{ENV['RAILS_ENV']} environment."
|
|
21
|
+
end
|
|
22
|
+
exec "#{irb} #{libs}"
|
data/script/destroy
ADDED
data/script/generate
CHANGED
|
@@ -1,70 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
#!c:/ruby/bin/ruby
|
|
3
2
|
require File.dirname(__FILE__) + '/../config/environment'
|
|
4
3
|
require 'rails_generator'
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
def find_synonyms(word)
|
|
9
|
-
require 'open-uri'
|
|
10
|
-
uri = "http://wordnet.princeton.edu/cgi-bin/webwn2.0?stage=2" +
|
|
11
|
-
"&word=%s&posnumber=1&searchtypenumber=2&senses=&showglosses=1"
|
|
12
|
-
|
|
13
|
-
open(uri % word) do |stream|
|
|
14
|
-
data = stream.read.gsub(" ", " ").gsub("<BR>", "")
|
|
15
|
-
data.scan(/^Sense \d+\n.+?\n\n/m)
|
|
16
|
-
end
|
|
17
|
-
rescue Exception
|
|
18
|
-
return nil
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
unless ARGV.empty?
|
|
22
|
-
begin
|
|
23
|
-
name = ARGV.shift
|
|
24
|
-
generator = Rails::Generator.instance(name, ARGV)
|
|
25
|
-
|
|
26
|
-
if msg = generator.collision_with_builtin? then
|
|
27
|
-
$stderr.puts msg
|
|
28
|
-
|
|
29
|
-
if synonyms = find_synonyms(generator.class_name) then
|
|
30
|
-
$stderr.puts(
|
|
31
|
-
"", "Here are a few synonyms from WordNet. Maybe they will help you find an alternative name.",
|
|
32
|
-
"", synonyms
|
|
33
|
-
)
|
|
34
|
-
end
|
|
35
|
-
else
|
|
36
|
-
generator.generate
|
|
37
|
-
end
|
|
38
|
-
rescue Rails::Generator::UsageError => e
|
|
39
|
-
puts e.message
|
|
40
|
-
end
|
|
41
|
-
else
|
|
42
|
-
builtin_generators = Rails::Generator.builtin_generators.join(', ')
|
|
43
|
-
contrib_generators = Rails::Generator.contrib_generators.join(', ')
|
|
44
|
-
|
|
45
|
-
$stderr.puts <<end_usage
|
|
46
|
-
#{$0} generator [args]
|
|
47
|
-
|
|
48
|
-
Rails comes with #{builtin_generators} generators.
|
|
49
|
-
#{$0} controller Login login logout
|
|
50
|
-
#{$0} model Account
|
|
51
|
-
#{$0} mailer AccountMailer
|
|
52
|
-
#{$0} scaffold Account action another_action
|
|
53
|
-
|
|
54
|
-
end_usage
|
|
55
|
-
|
|
56
|
-
unless contrib_generators.empty?
|
|
57
|
-
$stderr.puts " Installed generators (in #{RAILS_ROOT}/script/generators):"
|
|
58
|
-
$stderr.puts " #{contrib_generators}"
|
|
59
|
-
$stderr.puts
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
$stderr.puts <<end_usage
|
|
63
|
-
More generators are available at http://rubyonrails.org/show/Generators
|
|
64
|
-
1. Download, for example, login_generator.tar.gz
|
|
65
|
-
2. Unzip to directory #{RAILS_ROOT}/script/generators/login
|
|
66
|
-
3. Generate without args for usage information
|
|
67
|
-
#{$0} login
|
|
68
|
-
end_usage
|
|
69
|
-
exit 0
|
|
70
|
-
end
|
|
4
|
+
require 'rails_generator/scripts/generate'
|
|
5
|
+
Rails::Generator::Scripts::Generate.new.run(ARGV)
|
data/script/server
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
|
|
1
|
+
#!c:/ruby/bin/ruby
|
|
2
2
|
|
|
3
3
|
require 'webrick'
|
|
4
4
|
require 'optparse'
|
|
5
5
|
|
|
6
6
|
OPTIONS = {
|
|
7
|
-
:port =>
|
|
8
|
-
:ip => "
|
|
7
|
+
:port => 3000,
|
|
8
|
+
:ip => "0.0.0.0",
|
|
9
9
|
:environment => "development",
|
|
10
10
|
:server_root => File.expand_path(File.dirname(__FILE__) + "/../public/"),
|
|
11
|
-
:server_type => WEBrick::SimpleServer
|
|
11
|
+
:server_type => WEBrick::SimpleServer
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
ARGV.options do |opts|
|
|
@@ -45,17 +45,7 @@ ENV["RAILS_ENV"] = OPTIONS[:environment]
|
|
|
45
45
|
require File.dirname(__FILE__) + "/../config/environment"
|
|
46
46
|
require 'webrick_server'
|
|
47
47
|
|
|
48
|
-
|
|
49
|
-
class DispatchServlet
|
|
50
|
-
def handle_index(req, res)
|
|
51
|
-
if req.request_uri.path == "/"
|
|
52
|
-
res.set_redirect WEBrick::HTTPStatus::MovedPermanently, "/project"
|
|
53
|
-
return true
|
|
54
|
-
else
|
|
55
|
-
return false
|
|
56
|
-
end
|
|
57
|
-
end
|
|
58
|
-
end
|
|
48
|
+
OPTIONS['working_directory'] = File.expand_path(RAILS_ROOT)
|
|
59
49
|
|
|
60
50
|
puts "=> Rails application started on http://#{OPTIONS[:ip]}:#{OPTIONS[:port]}"
|
|
61
|
-
DispatchServlet.dispatch(OPTIONS)
|
|
51
|
+
DispatchServlet.dispatch(OPTIONS)
|
|
@@ -12,12 +12,12 @@ module DamageControl
|
|
|
12
12
|
|
|
13
13
|
ENV["DAMAGECONTROL_HOME"] = home
|
|
14
14
|
t = Time.utc(1971, 2, 28, 23, 45, 00)
|
|
15
|
-
build = Build.new("mooky", "some_rev", t)
|
|
15
|
+
build = Build.new("mooky", "some_rev", t, "Test")
|
|
16
16
|
a_program = File.expand_path(File.dirname(__FILE__) + "/a_program.rb")
|
|
17
17
|
build.execute("ruby #{a_program} 0", {'foo' => 'zap'})
|
|
18
|
-
stderr = "#{home}/mooky/changesets/some_rev/builds/19710228234500/stderr.log"
|
|
18
|
+
stderr = "#{home}/projects/mooky/changesets/some_rev/builds/19710228234500/stderr.log"
|
|
19
19
|
assert_equal("this\nis\nstderr\nzap", File.read(stderr))
|
|
20
|
-
stdout = "#{home}/mooky/changesets/some_rev/builds/19710228234500/stdout.log"
|
|
20
|
+
stdout = "#{home}/projects/mooky/changesets/some_rev/builds/19710228234500/stdout.log"
|
|
21
21
|
assert_equal("this\nis\nstdout\n0", File.read(stdout))
|
|
22
22
|
assert_equal(0, build.exit_code)
|
|
23
23
|
end
|
|
@@ -27,12 +27,12 @@ module DamageControl
|
|
|
27
27
|
|
|
28
28
|
ENV["DAMAGECONTROL_HOME"] = home
|
|
29
29
|
t = Time.utc(1971, 2, 28, 23, 45, 00)
|
|
30
|
-
build = Build.new("mooky", "some_rev", t)
|
|
30
|
+
build = Build.new("mooky", "some_rev", t, "Test")
|
|
31
31
|
a_program = File.expand_path(File.dirname(__FILE__) + "/a_program.rb")
|
|
32
32
|
build.execute("ruby #{a_program} 44", {'foo' => 'bar'})
|
|
33
|
-
stderr = "#{home}/mooky/changesets/some_rev/builds/19710228234500/stderr.log"
|
|
33
|
+
stderr = "#{home}/projects/mooky/changesets/some_rev/builds/19710228234500/stderr.log"
|
|
34
34
|
assert_equal("this\nis\nstderr\nbar", File.read(stderr))
|
|
35
|
-
stdout = "#{home}/mooky/changesets/some_rev/builds/19710228234500/stdout.log"
|
|
35
|
+
stdout = "#{home}/projects/mooky/changesets/some_rev/builds/19710228234500/stdout.log"
|
|
36
36
|
assert_equal("this\nis\nstdout\n44", File.read(stdout))
|
|
37
37
|
assert_equal(44, build.exit_code)
|
|
38
38
|
end
|
|
@@ -42,7 +42,7 @@ module DamageControl
|
|
|
42
42
|
|
|
43
43
|
ENV["DAMAGECONTROL_HOME"] = home
|
|
44
44
|
t = Time.utc(1971, 2, 28, 23, 45, 00)
|
|
45
|
-
build = Build.new("mooky", "some_rev", t)
|
|
45
|
+
build = Build.new("mooky", "some_rev", t, "Test")
|
|
46
46
|
a_program = File.expand_path(File.dirname(__FILE__) + "/a_slow_program.rb")
|
|
47
47
|
t = Thread.new do
|
|
48
48
|
build.execute("ruby #{a_program} 55", {'foo' => 'mooky'})
|
|
@@ -50,7 +50,7 @@ module DamageControl
|
|
|
50
50
|
# make sure it's running
|
|
51
51
|
sleep(2)
|
|
52
52
|
build.kill
|
|
53
|
-
stdout = "#{home}/mooky/changesets/some_rev/builds/19710228234500/stdout.log"
|
|
53
|
+
stdout = "#{home}/projects/mooky/changesets/some_rev/builds/19710228234500/stdout.log"
|
|
54
54
|
assert_equal("this\nis\nstdout\n44", File.read(stdout))
|
|
55
55
|
assert_equal(nil, build.exit_code)
|
|
56
56
|
end
|
|
@@ -7,21 +7,6 @@ module DamageControl
|
|
|
7
7
|
class PollerTest < Test::Unit::TestCase
|
|
8
8
|
include MockIt
|
|
9
9
|
|
|
10
|
-
def test_should_not_add_projects_twice
|
|
11
|
-
s = Poller.new
|
|
12
|
-
a1 = Project.new; a1.name = "jalla"
|
|
13
|
-
s.add_project(a1)
|
|
14
|
-
assert_equal([a1], s.projects)
|
|
15
|
-
|
|
16
|
-
a2 = Project.new; a2.name = "jalla"
|
|
17
|
-
s.add_project(a2)
|
|
18
|
-
assert_equal([a2], s.projects)
|
|
19
|
-
|
|
20
|
-
b = Project.new; b.name = "mooky"
|
|
21
|
-
s.add_project(b)
|
|
22
|
-
assert_equal([a2, b], s.projects)
|
|
23
|
-
end
|
|
24
|
-
|
|
25
10
|
def test_yields_project_and_changesets_for_each_project_with_changesets
|
|
26
11
|
p1 = Project.new; p1.name = "p2"
|
|
27
12
|
p1.scm = new_mock
|
|
@@ -41,8 +26,16 @@ module DamageControl
|
|
|
41
26
|
projects << project
|
|
42
27
|
changesets_ << changesets
|
|
43
28
|
end
|
|
44
|
-
|
|
45
|
-
|
|
29
|
+
|
|
30
|
+
def Project.projects=(p)
|
|
31
|
+
@projects = p
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def Project.find_all
|
|
35
|
+
@projects
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
Project.projects = [p1, p2]
|
|
46
39
|
|
|
47
40
|
s.poll
|
|
48
41
|
|
|
@@ -51,6 +44,5 @@ module DamageControl
|
|
|
51
44
|
assert_equal("some fake changesets", changesets_[0])
|
|
52
45
|
assert_equal("some other fake changesets", changesets_[1])
|
|
53
46
|
end
|
|
54
|
-
|
|
55
47
|
end
|
|
56
48
|
end
|