strelka-admin 0.0.1.pre7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) hide show
  1. data.tar.gz.sig +0 -0
  2. data/History.rdoc +4 -0
  3. data/Manifest.txt +58 -0
  4. data/README.rdoc +65 -0
  5. data/Rakefile +42 -0
  6. data/data/strelka-admin/app.conf +7 -0
  7. data/data/strelka-admin/apps/config-service +72 -0
  8. data/data/strelka-admin/apps/strelka-admin +102 -0
  9. data/data/strelka-admin/apps/strelka-setup +32 -0
  10. data/data/strelka-admin/host-config.rb +44 -0
  11. data/data/strelka-admin/static/css/bootstrap-responsive.css +581 -0
  12. data/data/strelka-admin/static/css/bootstrap-responsive.min.css +4 -0
  13. data/data/strelka-admin/static/css/bootstrap.css +3496 -0
  14. data/data/strelka-admin/static/css/bootstrap.min.css +632 -0
  15. data/data/strelka-admin/static/css/master.css +337 -0
  16. data/data/strelka-admin/static/css/reset.css +112 -0
  17. data/data/strelka-admin/static/fonts/IstokWeb-Bold.ttf +0 -0
  18. data/data/strelka-admin/static/fonts/IstokWeb-BoldItalic.ttf +0 -0
  19. data/data/strelka-admin/static/fonts/IstokWeb-Italic.ttf +0 -0
  20. data/data/strelka-admin/static/fonts/IstokWeb-Regular.ttf +0 -0
  21. data/data/strelka-admin/static/fonts/OFL.txt +94 -0
  22. data/data/strelka-admin/static/images/21d1-16.png +0 -0
  23. data/data/strelka-admin/static/images/21d1.png +0 -0
  24. data/data/strelka-admin/static/images/glyphicons-halflings-white.png +0 -0
  25. data/data/strelka-admin/static/images/glyphicons-halflings.png +0 -0
  26. data/data/strelka-admin/static/images/icons/blank.png +0 -0
  27. data/data/strelka-admin/static/images/icons/cross-button.png +0 -0
  28. data/data/strelka-admin/static/images/icons/tick-button.png +0 -0
  29. data/data/strelka-admin/static/images/icons/tick-circle-frame.png +0 -0
  30. data/data/strelka-admin/static/images/icons/tick-circle.png +0 -0
  31. data/data/strelka-admin/static/images/icons/tick-octagon-frame.png +0 -0
  32. data/data/strelka-admin/static/images/icons/tick-octagon.png +0 -0
  33. data/data/strelka-admin/static/images/icons/tick-red.png +0 -0
  34. data/data/strelka-admin/static/images/icons/tick-shield.png +0 -0
  35. data/data/strelka-admin/static/images/icons/tick-small-circle.png +0 -0
  36. data/data/strelka-admin/static/images/icons/tick-small-red.png +0 -0
  37. data/data/strelka-admin/static/images/icons/tick-small-white.png +0 -0
  38. data/data/strelka-admin/static/images/icons/tick-small.png +0 -0
  39. data/data/strelka-admin/static/images/icons/tick-white.png +0 -0
  40. data/data/strelka-admin/static/images/icons/tick.png +0 -0
  41. data/data/strelka-admin/static/images/noise.jpg +0 -0
  42. data/data/strelka-admin/static/images/noise.png +0 -0
  43. data/data/strelka-admin/static/js/admin/app.js +60 -0
  44. data/data/strelka-admin/static/js/vendor/backbone.js +1290 -0
  45. data/data/strelka-admin/static/js/vendor/bootstrap.js +1720 -0
  46. data/data/strelka-admin/static/js/vendor/bootstrap.min.js +1 -0
  47. data/data/strelka-admin/static/js/vendor/jquery-1.7.1.js +9266 -0
  48. data/data/strelka-admin/static/js/vendor/jquery.jeditable.mini.js +38 -0
  49. data/data/strelka-admin/static/js/vendor/jquery.tmpl.min.js +10 -0
  50. data/data/strelka-admin/static/js/vendor/jquery.tmplPlus.min.js +11 -0
  51. data/data/strelka-admin/static/js/vendor/jquery.tools.min.js +20 -0
  52. data/data/strelka-admin/static/js/vendor/json2.js +487 -0
  53. data/data/strelka-admin/static/js/vendor/underscore.js +999 -0
  54. data/data/strelka-admin/templates/admin/console.tmpl +80 -0
  55. data/data/strelka-admin/templates/admin/host.tmpl +75 -0
  56. data/data/strelka-admin/templates/admin/message.tmpl +14 -0
  57. data/data/strelka-admin/templates/admin/server.tmpl +75 -0
  58. data/data/strelka-admin/templates/layout.tmpl +85 -0
  59. data/lib/strelka/admin.rb +63 -0
  60. metadata +210 -0
  61. metadata.gz.sig +0 -0
@@ -0,0 +1,80 @@
1
+ <?import request ?>
2
+ <?publish title ?>Admin Console<?end publish ?>
3
+
4
+ <section id="servers">
5
+ <header>
6
+ <h1>Servers</h1>
7
+ </header>
8
+
9
+ <table>
10
+ <caption>
11
+ <p class="instructions">Double-click to edit a server.</p>
12
+ </caption>
13
+
14
+ <colgroup class="attributes">
15
+ <col class="id" />
16
+ <col class="uuid" />
17
+ <col class="name" />
18
+ <col class="default-host" />
19
+ <col class="bind-addr" />
20
+ <col class="ssl-enabled" />
21
+ </colgroup>
22
+ <colgroup class="controls"><col /></colgroup>
23
+
24
+ <thead>
25
+ <tr>
26
+ <th>ID</th>
27
+ <th>UUID</th>
28
+ <th>Name</th>
29
+ <th>Default Host</th>
30
+ <th>Address</th>
31
+ <th>Port</th>
32
+ <th>SSL?</th>
33
+ <th class="controls">&nbsp;</th>
34
+ </tr>
35
+ </thead>
36
+ <tbody class="data">
37
+
38
+ <script id="server-template" type="text/x-jquery-tmpl">
39
+ <tr class="server">
40
+ <%= if ( uri ) { %>
41
+ <td data-binding="id"><a href="<%= uri %>"><%- id %></a></td>
42
+ <td class="editable" data-binding="uuid"><a href="<%= uri %>"><%- uuid %></a></td>
43
+ <% } else { %>
44
+ <td data-binding="id">&nbsp;</td>
45
+ <td class="editable" data-binding="uuid"><%- uuid %></td>
46
+ <% }
47
+ <td class="editable" data-binding="name"><%- name %></td>
48
+ <td class="editable" data-binding="default_host">${default_host}</td>
49
+ <td class="editable" data-binding="bind_addr">${bind_addr}</td>
50
+ <td class="editable" data-binding="port">${port}</td>
51
+ <td class="toggle icon {{if use_ssl}} enabled{{/if}}" data-binding="use_ssl">
52
+ <span class="target"><img
53
+ src="/images/icons/tick-white.png" width="16" height="16" alt="" /></span>
54
+ </td>
55
+ <td class="controls">
56
+ <button class="save"><img src="/images/icons/tick-button.png" width="16" height="16"
57
+ title="Save Changes" alt="Save" /></button>
58
+ <button class="cancel"><img src="/images/icons/cross-button.png" width="16" height="16"
59
+ title="Discard Changes" alt="Cancel" /></button>
60
+ </td>
61
+ </tr>
62
+ </script>
63
+
64
+ </tbody>
65
+
66
+ <tbody class="actions">
67
+ <tr>
68
+ <td colspan="7">
69
+ <nav>
70
+ <button class="create">Add a Server</button>
71
+ </nav>
72
+ </td>
73
+ <td class="controls">&nbsp;</td>
74
+ </tr>
75
+ </tbody>
76
+
77
+ </table>
78
+
79
+ </section>
80
+
@@ -0,0 +1,75 @@
1
+ <!-- $Id$ -->
2
+ <?publish title ?>Admin Console<?end publish ?>
3
+ <?publish breadcrumbs ?>
4
+ <ol>
5
+ <li><a href="[?call request.pattern ?]">Console</a></li>
6
+ <li><a href="[?call request.pattern ?]server/[?call host.server.uuid
7
+ ?]"><?escape host.server.uuid ?></a></li>
8
+ <li><?escape host.name ?></li>
9
+ </ol>
10
+ <?end publish ?>
11
+
12
+ <section id="host">
13
+ <header>
14
+ <hgroup>
15
+ <h1>Host: <?escape host.name ?> <?if host.name != matching ?>
16
+ (<?escape host.matching ?>)<?end if ?></h1>
17
+ </hgroup>
18
+ </header>
19
+
20
+ <section id="routes">
21
+
22
+ <header>
23
+ <h1>Routes</h1>
24
+ </header>
25
+
26
+ <?if host.routes.empty? ?>
27
+ <p>No routes configured.</p>
28
+ <?else?>
29
+ <table>
30
+ <thead>
31
+ <tr>
32
+ <th>Path</th>
33
+ <th>Reversed?</th>
34
+ <th>Target</th>
35
+ </tr>
36
+ </thead>
37
+ <tbody>
38
+ <?for route in host.routes.sort_by {|r| r.path.length } ?>
39
+ <tr class="[?call route.target_type ?]">
40
+ <td class="path"><?escape route.path ?></td>
41
+ <td class="reversed"><?if route.reversed.nonzero? ?>•<?end if ?></td>
42
+ <td class="target">
43
+
44
+ <?if route.target_type == 'dir' ?>
45
+ <span class="base"><?escape route.target.base ?></span><span
46
+ class="index-file"><?escape route.target.index_file ?></span>
47
+ <span class="default-ctype">(<?escape route.target.default_ctype ?>)</span>
48
+ <?elsif route.target_type == 'handler' ?>
49
+ <span class="send-ident"><?escape route.target.send_ident ?></span>
50
+ <span class="send-spec"><?escape route.target.send_spec ?></span>
51
+ &#x21D4;
52
+ <span class="recv-spec"><?escape route.target.recv_spec ?></span>
53
+ <?unless route.target.recv_ident.empty? ?><span
54
+ class="recv-ident"><?escape route.target.recv_ident ?></span><?end unless ?>
55
+ <?elsif route.target_type == 'proxy' ?>
56
+ (proxy)
57
+ <?else ?>
58
+ (dunno)
59
+ <?end if ?>
60
+
61
+ </td>
62
+ </tr>
63
+ <?end for ?>
64
+ </tbody>
65
+ </table>
66
+ <?end if ?>
67
+ </section>
68
+
69
+ </section>
70
+
71
+ <!-- #<Mongrel2::Config::Route @values={:id=>1, :path=>"/", :reversed=>0, :host_id=>1, :target_id=>1, :target_type=>"handler"}>
72
+
73
+ #<Mongrel2::Config::Handler @values={:id=>2, :send_spec=>"tcp://127.0.0.1:19995", :send_ident=>"hello-world", :recv_spec=>"tcp://127.0.0.1:19994", :recv_ident=>"", :raw_payload=>0, :protocol=>"json"}>
74
+ #<Mongrel2::Config::Directory @values={:id=>1, :base=>"static/css/", :index_file=>"base.css", :default_ctype=>"text/css", :cache_ttl=>0}>
75
+ -->
@@ -0,0 +1,14 @@
1
+ <section>
2
+ <?if heading ?>
3
+ <?publish title ?><?attr heading ?><?end publish ?>
4
+ <header>
5
+ <h1><?attr heading ?></h1>
6
+ </header>
7
+ <?else?>
8
+ <?publish title ?>Message<?end publish ?>
9
+ <?end if ?>
10
+
11
+ <p><?attr message ?></p>
12
+
13
+ </section>
14
+
@@ -0,0 +1,75 @@
1
+ <!-- $Id$ -->
2
+ <?publish title ?>Admin Console<?end publish ?>
3
+ <?publish breadcrumbs ?>
4
+ <ol>
5
+ <li><a href="[?call request.pattern ?]">Console</a></li>
6
+ <li><?escape server.uuid ?></li>
7
+ </ol>
8
+ <?end publish ?>
9
+
10
+ <section id="server">
11
+ <header>
12
+ <hgroup>
13
+ <h1><?escape server.name ?></h1>
14
+ </hgroup>
15
+ </header>
16
+
17
+ <table class="horizontal">
18
+ <tbody>
19
+ <tr class="uuid"><th>UUID</th><td><?escape server.uuid ?></td></tr>
20
+ <tr class="default-host"><th>Default Host</th><td><?escape server.default_host ?></td></tr>
21
+ <tr class="bind-address"><th>Bind Address</th><td><?escape server.bind_addr ?></td></tr>
22
+ <tr class="port"><th>Port</th><td><?escape server.port ?></td></tr>
23
+ <tr class="chroot"><th>Chroot</th><td><?escape server.chroot ?></td></tr>
24
+ <tr class="pid-file"><th>PID File</th><td><?escape server.pid_file ?></td></tr>
25
+ <tr class="use-ssl"><th>SSL?</th><td><?if server.use_ssl.nonzero? ?>•<?end if ?></td></tr>
26
+ </tbody>
27
+ </table>
28
+
29
+ <section class="log-viewer">
30
+ <header>
31
+ <h2>Logs</h2>
32
+ </header>
33
+
34
+ <div id="access-log">Will read: <?escape server.access_log ?></div>
35
+ <div id="error-log">Will read: <?escape server.error_log ?></div>
36
+ </section>
37
+
38
+ <section id="hosts">
39
+ <header>
40
+ <h1>Hosts</h1>
41
+ </header>
42
+
43
+ <nav class="actions">
44
+ <button>Add a Host</button>
45
+ </nav>
46
+
47
+ <?if server.hosts.empty? ?>
48
+ <p>No hosts configured.</p>
49
+ <?else?>
50
+ <table>
51
+ <thead>
52
+ <tr>
53
+ <th>Name</th>
54
+ <th>Matching</th>
55
+ <th>Maintenance Mode?</th>
56
+ </tr>
57
+ </thead>
58
+ <tbody>
59
+ <?for host in server.hosts ?>
60
+ <tr class="host">
61
+ <td class="name"><a href="[?call request.route
62
+ ?]/host/[?uriencode host.id ?]"><?call host.name ?></a></td>
63
+ <td class="matching"><?call host.matching ?></td>
64
+ <td class="maintenance-mode"><?if
65
+ server.maintenance.nonzero? ?>•<?end if ?></td>
66
+ </tr>
67
+ <?end for ?>
68
+ </tbody>
69
+ </table>
70
+ <?end if ?>
71
+ </section>
72
+
73
+ </section>
74
+
75
+
@@ -0,0 +1,85 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+
8
+ <meta name="description" content="The Strelka Admin Panel">
9
+ <meta name="author" content="Michael Granger">
10
+
11
+ <title>Strelka: <?subscribe title ?></title>
12
+
13
+ <link rel="shortcut icon" type="image/png" href="/images/21d1-16.png" />
14
+ <link rel="stylesheet" href="/css/master.css" type="text/css" media="screen"
15
+ title="no title" charset="utf-8" />
16
+
17
+ <link href="/css/bootstrap.css" rel="stylesheet" type="text/css" charset="utf-8" />
18
+ <style type="text/css">
19
+ body {
20
+ padding-top: 60px;
21
+ padding-bottom: 40px;
22
+ }
23
+ .sidebar-nav {
24
+ padding: 9px 0;
25
+ }
26
+ </style>
27
+ <link href="/css/bootstrap-responsive.css" rel="stylesheet" type="text/css" charset="utf-8" />
28
+
29
+ <!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
30
+ <!--[if lt IE 9]>
31
+ <script src="//html5shim.googlecode.com/svn/trunk/html5.js"></script>
32
+ <![endif]-->
33
+
34
+ <script src="/js/vendor/json.js" type="text/javascript" charset="utf-8" defer="defer"></script>
35
+ <script src="/js/vendor/jquery-1.7.1.js" type="text/javascript" charset="utf-8" defer="defer"></script>
36
+ <script src="/js/vendor/underscore.js" type="text/javascript" charset="utf-8" defer="defer"></script>
37
+ <script src="/js/vendor/backbone.js" type="text/javascript" charset="utf-8" defer="defer"></script>
38
+ <script src="/js/vendor/bootstrap.js" type="text/javascript" charset="utf-8"></script>
39
+ <script src="/js/admin/app.js" type="text/javascript" charset="utf-8" defer="defer"></script>
40
+
41
+ </head>
42
+ <body>
43
+ <nav id="global-navbar" class="navbar navbar-fixed-top">
44
+ <div class="navbar-inner">
45
+ <div class="container-fluid">
46
+ <h1><a class="brand" href="#">Стрелке</a></h1>
47
+ <div class="nav-collapse">
48
+ <ul class="nav">
49
+ <li class="active"><a href="#">Overview</a></li>
50
+ <li><a href="#about">Config</a></li>
51
+ <li><a href="#contact">Cluster</a></li>
52
+ </ul>
53
+ <p class="navbar-text pull-right">Logged in as <a href="#">username</a></p>
54
+ </div>
55
+ </div>
56
+ </div>
57
+ </nav>
58
+
59
+ <div class="container-fluid">
60
+ <div class="row-fluid">
61
+ <header id="herobar" class="span12">
62
+ <h2>Servers</h2>
63
+ </header>
64
+ </div>
65
+
66
+ <div class="row-fluid">
67
+ <section id="content" class="span12">
68
+ <?attr body ?>
69
+ </section>
70
+ </div>
71
+
72
+ <hr>
73
+
74
+ <footer>
75
+ <p>
76
+ <span class="vcs-id">$Id$</span>
77
+ <span class="copyright">Copyright © 2011, Michael Granger</span>
78
+ </p>
79
+ </footer>
80
+ </div>
81
+
82
+
83
+ </body>
84
+ </html>
85
+
@@ -0,0 +1,63 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'strelka'
4
+
5
+ # A web adminstration front end to a Strelka+Mongrel2 webserver.
6
+ #
7
+ # == Author/s
8
+ #
9
+ # * Michael Granger <ged@FaerieMUD.org>
10
+ #
11
+ module Strelka::Admin
12
+
13
+ # Library version constant
14
+ VERSION = '0.0.1'
15
+
16
+ # Version-control revision constant
17
+ REVISION = %q$Revision: 650a62ddd8a2 $
18
+
19
+
20
+ # The data directory in the project if that exists, otherwise the gem datadir
21
+ DATADIR = if File.directory?( 'data/strelka' )
22
+ Pathname( 'data/strelka' )
23
+ elsif path = Gem.datadir('strelka')
24
+ Pathname( path )
25
+ else
26
+ raise ScriptError, "can't find the data directory!"
27
+ end
28
+
29
+ # The default path to the Mongrel2 server config database
30
+ DEFAULT_MONGREL2_DB = DATADIR + '.sqlite'
31
+
32
+ # The default path to the admin app's templates
33
+ DEFAULT_TEMPLATE_PATH = [ DATADIR + 'templates' ]
34
+
35
+ # Default admin config values
36
+ ADMIN_CONFIG_DEFAULTS = {
37
+ mongrel2: { configdb: DEFAULT_MONGREL2_DB.to_s },
38
+ templates: {
39
+ template_paths: DEFAULT_TEMPLATE_PATH,
40
+ },
41
+ }
42
+
43
+ # Unified config for the admin application
44
+ DEFAULT_ADMIN_CONFIG = DATADIR + 'admin.conf'
45
+
46
+ # The ID of the adminserver in the mongrel2 config
47
+ ADMINSERVER_ID = 'strelka-admin'
48
+
49
+ # The ID of the Mongrel2 configuration REST service
50
+ CONFIGSERVICE_ID = 'config-service'
51
+
52
+
53
+ ### Get the library version. If +include_buildnum+ is true, the version string will
54
+ ### include the VCS rev ID.
55
+ def self::version_string( include_buildnum=false )
56
+ vstring = "%s %s" % [ self.name, VERSION ]
57
+ vstring << " (build %s)" % [ REVISION[/: ([[:xdigit:]]+)/, 1] || '0' ] if include_buildnum
58
+ return vstring
59
+ end
60
+
61
+
62
+ end # module Strelka::Admin
63
+
metadata ADDED
@@ -0,0 +1,210 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: strelka-admin
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1.pre7
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Michael Granger
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain:
12
+ - !binary |-
13
+ LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURMRENDQWhTZ0F3SUJB
14
+ Z0lCQURBTkJna3Foa2lHOXcwQkFRVUZBREE4TVF3d0NnWURWUVFEREFOblpX
15
+ UXgKRnpBVkJnb0praWFKay9Jc1pBRVpGZ2RmWVdWeWFXVmZNUk13RVFZS0Na
16
+ SW1pWlB5TEdRQkdSWURiM0puTUI0WApEVEV3TURreE5qRTBORGcxTVZvWERU
17
+ RXhNRGt4TmpFME5EZzFNVm93UERFTU1Bb0dBMVVFQXd3RFoyVmtNUmN3CkZR
18
+ WUtDWkltaVpQeUxHUUJHUllIWDJGbGNtbGxYekVUTUJFR0NnbVNKb21UOGl4
19
+ a0FSa1dBMjl5WnpDQ0FTSXcKRFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURD
20
+ Q0FRb0NnZ0VCQUx5Ly9CRnhDMWYvY1BTbnd0SkJXb0ZpRnJpcgpoN1JpY0kr
21
+ am9xL29jVlhRcUk0VERXUHlGLzh0cWt2dCtyRDk5WDlxczJZZVI4Q1UvWWlJ
22
+ cExXclFPWVNUNzBKCnZEbjdVdmhiMm11RlZxcTYrdm9iZVRrSUxCRU82cGlv
23
+ bldERzhqU2JvM3FLbTFSaktKRHdnOXA0d05LaFB1dTgKS0d1ZS9CRmI2N0tm
24
+ bHF5QXBQbVBlYjNWZGQ5Y2xzcHpxZUZxcDdjVUJNRXBGUzZMV3h5NEdrK3F2
25
+ RkZKQkpMQgpCVUhFL0xaVkpNVnpmcEM1VXErUW1ZN0IrRkgvUXFObmRuM3RP
26
+ SGdzUGFkTFROaW11QjFzQ3VMMWE0ejNQZXBkClRlTEJFRm1FYW81RGszSy9R
27
+ OG84dmxiSUIvakJEVFV4NkRqYmd4dzc3OTA5eDZnSTlkb1U0TEQ1WE1jQ0F3
28
+ RUEKQWFNNU1EY3dDUVlEVlIwVEJBSXdBREFMQmdOVkhROEVCQU1DQkxBd0hR
29
+ WURWUjBPQkJZRUZKZW9Ha09yOWw0Qgorc2FNa1cvWlhUNFVlU3ZWTUEwR0NT
30
+ cUdTSWIzRFFFQkJRVUFBNElCQVFCRzJLT2J2WUkyZUh5eUJVSlNKM2pOCnZF
31
+ blUzZDYwem5BWGJyU2QycWIzcjFsWTFFUEREM2JjeTBNZ2dDZkdkZzNYdTU0
32
+ ejIxb3F5SWRrOHVHdFdCUEwKSElhOUVnZkZHU1VFZ3ZjSXZhWXFpTjRqVFV0
33
+ aWRmRUZ3K0x0anM4QVA5Z1dnU0lZUzZHcjM4VjBXR0ZGTnpJSAphT0Qyd211
34
+ OW9vL1JmZlc0aFMvOEd1dmZNemN3N0NRMzU1d0ZSNEtCL255emUrRXNaMVk1
35
+ RGVyQ0FhZ01WdURRClUwQkxtV0RGelBHR1dsUGVRQ3JZSENyK0FjSnorTlJu
36
+ YUhDS0xaZFNLai9SSHVUT3QrZ2JsUmV4OEZBaDhOZUEKY21saFhlNDZwWk5K
37
+ Z1dLYnhaYWg4NWpJang5NWhSOHZPSStOQU01aUg5a09xSzEzRHJ4YWNUS1Bo
38
+ cWo1UGp3RgotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
39
+ date: 2012-03-02 00:00:00.000000000 Z
40
+ dependencies:
41
+ - !ruby/object:Gem::Dependency
42
+ name: strelka
43
+ requirement: &70118098424980 !ruby/object:Gem::Requirement
44
+ none: false
45
+ requirements:
46
+ - - ~>
47
+ - !ruby/object:Gem::Version
48
+ version: '0.0'
49
+ type: :runtime
50
+ prerelease: false
51
+ version_requirements: *70118098424980
52
+ - !ruby/object:Gem::Dependency
53
+ name: hoe-mercurial
54
+ requirement: &70118098424460 !ruby/object:Gem::Requirement
55
+ none: false
56
+ requirements:
57
+ - - ~>
58
+ - !ruby/object:Gem::Version
59
+ version: 1.3.1
60
+ type: :development
61
+ prerelease: false
62
+ version_requirements: *70118098424460
63
+ - !ruby/object:Gem::Dependency
64
+ name: hoe-highline
65
+ requirement: &70118098423760 !ruby/object:Gem::Requirement
66
+ none: false
67
+ requirements:
68
+ - - ~>
69
+ - !ruby/object:Gem::Version
70
+ version: 0.0.1
71
+ type: :development
72
+ prerelease: false
73
+ version_requirements: *70118098423760
74
+ - !ruby/object:Gem::Dependency
75
+ name: rspec
76
+ requirement: &70118098422960 !ruby/object:Gem::Requirement
77
+ none: false
78
+ requirements:
79
+ - - ~>
80
+ - !ruby/object:Gem::Version
81
+ version: '2.8'
82
+ type: :development
83
+ prerelease: false
84
+ version_requirements: *70118098422960
85
+ - !ruby/object:Gem::Dependency
86
+ name: rdoc
87
+ requirement: &70118098421940 !ruby/object:Gem::Requirement
88
+ none: false
89
+ requirements:
90
+ - - ~>
91
+ - !ruby/object:Gem::Version
92
+ version: '3.10'
93
+ type: :development
94
+ prerelease: false
95
+ version_requirements: *70118098421940
96
+ - !ruby/object:Gem::Dependency
97
+ name: hoe
98
+ requirement: &70118098420060 !ruby/object:Gem::Requirement
99
+ none: false
100
+ requirements:
101
+ - - ~>
102
+ - !ruby/object:Gem::Version
103
+ version: '2.14'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: *70118098420060
107
+ description: ! 'Strelka is a framework for creating and deploying Mongrel2 web applications
108
+
109
+ in Ruby, and for managing a Mongrel2 cluster.
110
+
111
+
112
+ It''s named after the Russian dog who was one of the first space travelers
113
+
114
+ to orbit the Earth and return alive.'
115
+ email:
116
+ - ged@FaerieMUD.org
117
+ executables: []
118
+ extensions: []
119
+ extra_rdoc_files:
120
+ - History.rdoc
121
+ - Manifest.txt
122
+ - README.rdoc
123
+ files:
124
+ - History.rdoc
125
+ - Manifest.txt
126
+ - README.rdoc
127
+ - Rakefile
128
+ - data/strelka-admin/app.conf
129
+ - data/strelka-admin/apps/config-service
130
+ - data/strelka-admin/apps/strelka-admin
131
+ - data/strelka-admin/apps/strelka-setup
132
+ - data/strelka-admin/host-config.rb
133
+ - data/strelka-admin/static/css/bootstrap-responsive.css
134
+ - data/strelka-admin/static/css/bootstrap-responsive.min.css
135
+ - data/strelka-admin/static/css/bootstrap.css
136
+ - data/strelka-admin/static/css/bootstrap.min.css
137
+ - data/strelka-admin/static/css/master.css
138
+ - data/strelka-admin/static/css/reset.css
139
+ - data/strelka-admin/static/fonts/IstokWeb-Bold.ttf
140
+ - data/strelka-admin/static/fonts/IstokWeb-BoldItalic.ttf
141
+ - data/strelka-admin/static/fonts/IstokWeb-Italic.ttf
142
+ - data/strelka-admin/static/fonts/IstokWeb-Regular.ttf
143
+ - data/strelka-admin/static/fonts/OFL.txt
144
+ - data/strelka-admin/static/images/21d1-16.png
145
+ - data/strelka-admin/static/images/21d1.png
146
+ - data/strelka-admin/static/images/glyphicons-halflings-white.png
147
+ - data/strelka-admin/static/images/glyphicons-halflings.png
148
+ - data/strelka-admin/static/images/icons/blank.png
149
+ - data/strelka-admin/static/images/icons/cross-button.png
150
+ - data/strelka-admin/static/images/icons/tick-button.png
151
+ - data/strelka-admin/static/images/icons/tick-circle-frame.png
152
+ - data/strelka-admin/static/images/icons/tick-circle.png
153
+ - data/strelka-admin/static/images/icons/tick-octagon-frame.png
154
+ - data/strelka-admin/static/images/icons/tick-octagon.png
155
+ - data/strelka-admin/static/images/icons/tick-red.png
156
+ - data/strelka-admin/static/images/icons/tick-shield.png
157
+ - data/strelka-admin/static/images/icons/tick-small-circle.png
158
+ - data/strelka-admin/static/images/icons/tick-small-red.png
159
+ - data/strelka-admin/static/images/icons/tick-small-white.png
160
+ - data/strelka-admin/static/images/icons/tick-small.png
161
+ - data/strelka-admin/static/images/icons/tick-white.png
162
+ - data/strelka-admin/static/images/icons/tick.png
163
+ - data/strelka-admin/static/images/noise.jpg
164
+ - data/strelka-admin/static/images/noise.png
165
+ - data/strelka-admin/static/js/admin/app.js
166
+ - data/strelka-admin/static/js/vendor/backbone.js
167
+ - data/strelka-admin/static/js/vendor/bootstrap.js
168
+ - data/strelka-admin/static/js/vendor/bootstrap.min.js
169
+ - data/strelka-admin/static/js/vendor/jquery-1.7.1.js
170
+ - data/strelka-admin/static/js/vendor/jquery.jeditable.mini.js
171
+ - data/strelka-admin/static/js/vendor/jquery.tmpl.min.js
172
+ - data/strelka-admin/static/js/vendor/jquery.tmplPlus.min.js
173
+ - data/strelka-admin/static/js/vendor/jquery.tools.min.js
174
+ - data/strelka-admin/static/js/vendor/json2.js
175
+ - data/strelka-admin/static/js/vendor/underscore.js
176
+ - data/strelka-admin/templates/admin/console.tmpl
177
+ - data/strelka-admin/templates/admin/host.tmpl
178
+ - data/strelka-admin/templates/admin/message.tmpl
179
+ - data/strelka-admin/templates/admin/server.tmpl
180
+ - data/strelka-admin/templates/layout.tmpl
181
+ - lib/strelka/admin.rb
182
+ homepage: http://deveiate.org/projects/Strelka/wiki/AdminConsole
183
+ licenses:
184
+ - BSD
185
+ post_install_message:
186
+ rdoc_options:
187
+ - --main
188
+ - README.rdoc
189
+ require_paths:
190
+ - lib
191
+ required_ruby_version: !ruby/object:Gem::Requirement
192
+ none: false
193
+ requirements:
194
+ - - ! '>='
195
+ - !ruby/object:Gem::Version
196
+ version: 1.9.3
197
+ required_rubygems_version: !ruby/object:Gem::Requirement
198
+ none: false
199
+ requirements:
200
+ - - ! '>='
201
+ - !ruby/object:Gem::Version
202
+ version: '0'
203
+ requirements: []
204
+ rubyforge_project: strelka-admin
205
+ rubygems_version: 1.8.16
206
+ signing_key:
207
+ specification_version: 3
208
+ summary: Strelka is a framework for creating and deploying Mongrel2 web applications
209
+ in Ruby, and for managing a Mongrel2 cluster
210
+ test_files: []