strelka 0.0.1.pre.309 → 0.0.1.pre.314
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.tar.gz.sig +0 -0
- data/ChangeLog +20 -1
- data/Deploying.rdoc +64 -55
- data/Plugins.rdoc +160 -185
- data/README.rdoc +3 -3
- data/Rakefile +5 -1
- metadata +7 -5
- metadata.gz.sig +0 -0
data.tar.gz.sig
CHANGED
Binary file
|
data/ChangeLog
CHANGED
@@ -1,9 +1,28 @@
|
|
1
|
+
2012-09-26 Michael B. Hix <mhix@laika.com>
|
2
|
+
|
3
|
+
* Deploying.rdoc:
|
4
|
+
Convert Deploying.rdoc.
|
5
|
+
[97e69307bb0c] [tip]
|
6
|
+
|
7
|
+
* Branch merge.
|
8
|
+
[06f595677069]
|
9
|
+
|
10
|
+
* Plugins.rdoc:
|
11
|
+
Plugins.rdoc corrections.
|
12
|
+
[2be9f81193f0]
|
13
|
+
|
14
|
+
2012-09-25 Michael B. Hix <mhix@laika.com>
|
15
|
+
|
16
|
+
* Plugins.rdoc:
|
17
|
+
Plugins.rdoc conversion.
|
18
|
+
[c5ee423330e3]
|
19
|
+
|
1
20
|
2012-09-25 Michael Granger <ged@FaerieMUD.org>
|
2
21
|
|
3
22
|
* lib/strelka/constants.rb, lib/strelka/cookie.rb,
|
4
23
|
lib/strelka/exceptions.rb, spec/strelka/cookie_spec.rb:
|
5
24
|
Updating Strelka::Cookie to adhere to rfc6265
|
6
|
-
[04568539aa83]
|
25
|
+
[04568539aa83]
|
7
26
|
|
8
27
|
2012-09-21 Michael Granger <ged@FaerieMUD.org>
|
9
28
|
|
data/Deploying.rdoc
CHANGED
@@ -1,80 +1,89 @@
|
|
1
|
-
|
2
|
-
title: Deploying a Strelka App
|
3
|
-
layout: default
|
4
|
-
index: 4
|
5
|
-
filters:
|
6
|
-
- erb
|
7
|
-
- links
|
8
|
-
- examples
|
9
|
-
- textile
|
10
|
-
---
|
1
|
+
= Deploying
|
11
2
|
|
12
|
-
|
3
|
+
== Deploying a Strelka App
|
13
4
|
|
14
|
-
|
5
|
+
Strelka uses the Rubygems plugin system to find and load applications. You don't
|
6
|
+
need to necessarily package them up this way if you've already got a deployment
|
7
|
+
strategy in mind, but the rest of this manual assumes you will be.
|
15
8
|
|
16
|
-
Strelka
|
9
|
+
A Strelka app plugin:
|
17
10
|
|
18
|
-
|
19
|
-
|
20
|
-
* These instructions use Hoe, but you don't need to necessarily use that
|
11
|
+
* Includes its static content and the apps themselves in its datadir.
|
12
|
+
* Includes library code under <tt>lib/</tt>.
|
21
13
|
|
22
|
-
|
14
|
+
These instructions use Hoe[http://docs.seattlerb.org/hoe/], but you don't need
|
15
|
+
to necessarily use it.
|
23
16
|
|
24
|
-
First you'll need to create the project layout. It should look something like this:
|
25
17
|
|
26
|
-
|
18
|
+
== Setting up the Project
|
27
19
|
|
28
|
-
|
20
|
+
First you'll need to create the project layout. It should look something like
|
21
|
+
this:
|
29
22
|
|
30
|
-
|
23
|
+
https://bitbucket.org/ged/strelka/raw/97e69307bb0c/manual/resources/images/project-layout.png
|
31
24
|
|
32
|
-
|
25
|
+
The data directory should contain your apps, templates, and any static content
|
26
|
+
your app requires in a directory with the same name as your gem. Strelka's
|
27
|
+
runtime environment will look for them there, though most of them can be
|
28
|
+
configured to look elsewhere. The presence of an <tt>apps</tt> subdirectory is
|
29
|
+
what Strelka looks for when searching for installed application gems.
|
33
30
|
|
34
|
-
|
31
|
+
The rest of the gem is {pretty standard}[http://chneukirchen.github.com/rps/].
|
32
|
+
Your applications' reusable code should be under <tt>lib/</tt> and <tt>ext/</tt>
|
33
|
+
directories, and tests or specs under <tt>test/</tt> and <tt>spec/</tt>,
|
34
|
+
respectively.
|
35
35
|
|
36
|
-
|
37
|
-
$ cp -r contrib/hoetemplate ~/.hoe_template/strelka
|
36
|
+
=== Easy Setup with Hoe
|
38
37
|
|
39
|
-
|
38
|
+
Hoe is a Rake helper that provides tasks for setting up and maintaining a
|
39
|
+
project. It comes with a tool called 'sow' that generates a project based on a
|
40
|
+
template directory. Strelka includes a Hoe project template in its
|
41
|
+
<tt>contrib/hoetemplate</tt> directory. If you copy that directory into
|
42
|
+
<tt>~/.hoe_template</tt>:
|
40
43
|
|
41
|
-
|
42
|
-
|
43
|
-
erb: History.rdoc.erb
|
44
|
-
erb: Manifest.txt.erb
|
45
|
-
erb: README.rdoc.erb
|
46
|
-
erb: Rakefile.erb
|
47
|
-
erb: data/good_doggie/apps/file_name_app
|
48
|
-
erb: data/good_doggie/templates/layout.tmpl.erb
|
49
|
-
erb: data/good_doggie/templates/top.tmpl.erb
|
50
|
-
erb: lib/file_name.rb.erb
|
51
|
-
erb: spec/file_name_spec.rb.erb
|
44
|
+
$ sow #(run once to set up the template directory if you don't have one)
|
45
|
+
$ cp -r contrib/hoetemplate ~/.hoe_template/strelka
|
52
46
|
|
53
|
-
|
47
|
+
You can generate a new project like so:
|
54
48
|
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
49
|
+
$ sow -s strelka GoodDoggie
|
50
|
+
erb: .autotest.erb
|
51
|
+
erb: History.rdoc.erb
|
52
|
+
erb: Manifest.txt.erb
|
53
|
+
erb: README.rdoc.erb
|
54
|
+
erb: Rakefile.erb
|
55
|
+
erb: data/good_doggie/apps/file_name_app
|
56
|
+
erb: data/good_doggie/templates/layout.tmpl.erb
|
57
|
+
erb: data/good_doggie/templates/top.tmpl.erb
|
58
|
+
erb: lib/file_name.rb.erb
|
59
|
+
erb: spec/file_name_spec.rb.erb
|
64
60
|
|
65
|
-
|
61
|
+
... done, now go fix all occurrences of 'FIX':
|
66
62
|
|
67
|
-
|
63
|
+
GoodDoggie/data/good_doggie/apps/good_doggie_app:10: ID = 'FIX' # (set the app id of the main application)
|
64
|
+
GoodDoggie/data/good_doggie/templates/layout.tmpl:5: FIX (application title)
|
65
|
+
GoodDoggie/data/good_doggie/templates/layout.tmpl:9: <!-- FIX (set up the main layout template) -->
|
66
|
+
GoodDoggie/data/good_doggie/templates/top.tmpl:1:<!-- FIX (set up the main content template) -->
|
67
|
+
GoodDoggie/lib/good_doggie.rb:3:# FIX (top-level documentation)
|
68
|
+
GoodDoggie/Rakefile:17: self.developer 'FIX', 'FIX' # (name, email)
|
69
|
+
GoodDoggie/README.rdoc:3:* FIX (url)
|
70
|
+
GoodDoggie/README.rdoc:7:FIX (describe your package)
|
71
|
+
GoodDoggie/README.rdoc:15:Copyright (c) 2011, FIX
|
68
72
|
|
69
|
-
|
70
|
-
class GoodDoggie::Application < Strelka::App
|
73
|
+
Now just fix all the <tt>'FIX'</tt> items.
|
71
74
|
|
72
|
-
|
73
|
-
# 'gooddoggie-application'.
|
74
|
-
#ID = 'FIX' # (set the app id of the main application)
|
75
|
+
Strelka looks for handler apps in the 'apps' subdirectory of your gem's datadir.
|
75
76
|
|
77
|
+
For example, in <tt>GoodDoggie/data/good_doggie/apps/good_doggie_app</tt>:
|
76
78
|
|
77
|
-
|
79
|
+
# The main GoodDoggie application
|
80
|
+
class GoodDoggie::Application < Strelka::App
|
81
|
+
|
82
|
+
# Uncomment this if you need an appid other than
|
83
|
+
# 'gooddoggie-application'.
|
84
|
+
#ID = 'FIX' # (set the app id of the main application)
|
85
|
+
|
86
|
+
The End
|
78
87
|
|
79
88
|
|
80
89
|
|
data/Plugins.rdoc
CHANGED
@@ -1,201 +1,176 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
- api
|
8
|
-
- links
|
9
|
-
- examples
|
10
|
-
- textile
|
11
|
-
---
|
12
|
-
|
13
|
-
h2. <%= page.config['title'] %>
|
14
|
-
|
15
|
-
<div id="auto-toc"></div>
|
16
|
-
|
17
|
-
h3. Overview
|
18
|
-
|
19
|
-
Because Mongrel2 makes it easy to have discrete handler processes
|
20
|
-
managing different URI routes, you'll quickly find benefit from
|
1
|
+
= Write Your Own Strelka Plugin
|
2
|
+
|
3
|
+
== Overview
|
4
|
+
|
5
|
+
Because Mongrel2[http://mongrel2.org/] makes it easy to have discrete handler
|
6
|
+
processes managing different URI routes, you'll quickly find benefit from
|
21
7
|
refactoring common code into reusable components.
|
22
8
|
|
23
|
-
As mentioned in the
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
handlers.
|
9
|
+
As mentioned in the {Strelka Tutorial}[rdoc-ref:Tutorial] section, Strelka
|
10
|
+
breaks out functionality into a set of core plugins that allow you to cherry
|
11
|
+
pick the capabilities you need. It's easy to create your own plugins for
|
12
|
+
optional loading of shared behavior into any number of handlers.
|
28
13
|
|
29
|
-
This page is a walkthrough for creating an example Strelka plugin that
|
30
|
-
|
14
|
+
This page is a walkthrough for creating an example Strelka plugin that logs all
|
15
|
+
HTTP accesses to a SQLite[http://www.sqlite.org/] database.
|
31
16
|
|
32
|
-
h3. The Basics
|
33
17
|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
18
|
+
== The Basics
|
19
|
+
|
20
|
+
A Strelka plugin is just a module under the Strelka::App namespace that is
|
21
|
+
extended by the Strelka::Plugin class. Once extended, the plugin participates in
|
22
|
+
the <tt>request</tt> -> <tt>response</tt> lifecycle, and is able to alter it via
|
23
|
+
hooks. The plugin only participates for handlers that load it via the
|
24
|
+
<tt>plugin</tt> declarative.
|
39
25
|
|
40
26
|
Lets start by creating and naming an empty plugin. We'll call it
|
41
|
-
|
27
|
+
<tt>dblogger</tt>.
|
42
28
|
|
43
|
-
|
44
|
-
require 'strelka'
|
45
|
-
require 'strelka/app'
|
29
|
+
require 'strelka'
|
30
|
+
require 'strelka/app'
|
46
31
|
|
47
|
-
module Strelka::App::DBLogger
|
48
|
-
|
49
|
-
end
|
50
|
-
<?end example ?>
|
32
|
+
module Strelka::App::DBLogger
|
33
|
+
extend Strelka::Plugin
|
34
|
+
end
|
51
35
|
|
52
|
-
It's important to save the plugin under a path that Strelka can
|
53
|
-
|
54
|
-
|
36
|
+
It's important to save the plugin under a path that Strelka can locate it. It
|
37
|
+
can go anywhere in your <tt>$LOAD_PATH</tt>, but should be under a
|
38
|
+
<tt>lib/strelka/app</tt> subdirectory, and the filename should match the class.
|
55
39
|
|
56
|
-
We'll save this to
|
40
|
+
We'll save this to <tt>lib/strelka/app/dblogger.rb</tt>, and Strelka
|
57
41
|
applications can use it like so:
|
58
42
|
|
59
|
-
|
60
|
-
require 'strelka'
|
61
|
-
|
62
|
-
class ExampleApplication < Strelka::App
|
63
|
-
plugins :routing, :dblogger
|
64
|
-
|
65
|
-
get do |req|
|
66
|
-
res = req.response
|
67
|
-
res.content_type = 'text/plain'
|
68
|
-
return res.body << "Hi! I'll be logged!"
|
69
|
-
end
|
70
|
-
end
|
71
|
-
|
72
|
-
ExampleApplication.run
|
73
|
-
<?end example ?>
|
74
|
-
|
75
|
-
|
76
|
-
h3. Load Order
|
77
|
-
|
78
|
-
The request is passed through plugins sequentually. You can control
|
79
|
-
where in the chain your plugin belongs, by using the @run_before@ and
|
80
|
-
@run_after@ methods. Both methods accept a comma separated list of
|
81
|
-
other plugin names.
|
82
|
-
|
83
|
-
In this example case, we want the logger to log the request before the
|
84
|
-
other core plugins run, so any errors still make it out to the log.
|
85
|
-
|
86
|
-
<?example { lang: Ruby, caption: "Adding load order" } ?>
|
87
|
-
require 'strelka'
|
88
|
-
require 'strelka/app'
|
89
|
-
|
90
|
-
module Strelka::App::DBLogger
|
91
|
-
extend Strelka::Plugin
|
92
|
-
|
93
|
-
run_before \
|
94
|
-
:auth,
|
95
|
-
:filters,
|
96
|
-
:negotiation,
|
97
|
-
:parameters,
|
98
|
-
:routing,
|
99
|
-
:sessions,
|
100
|
-
:templating
|
101
|
-
|
102
|
-
end
|
103
|
-
<?end example ?>
|
104
|
-
|
105
|
-
h3. Hooks
|
106
|
-
|
107
|
-
There are three primary extension points you can override in your
|
108
|
-
plugin. All hooks absolutely require you to @super@ at some point, so
|
109
|
-
the request/response chain passes through your plugin.
|
110
|
-
|
111
|
-
<dl>
|
112
|
-
<dt>fixup_request</dt>
|
113
|
-
<dd>
|
114
|
-
Make any changes to the @request@ that are necessary before handling it and
|
115
|
-
return it. This is an alternate extension-point for plugins that
|
116
|
-
wish to modify or replace the request before the request cycle is
|
117
|
-
started.
|
118
|
-
</dd>
|
119
|
-
<dt>handle_request</dt>
|
120
|
-
<dd>
|
121
|
-
Handle the request and return a @response@. This is the main extension-point
|
122
|
-
for the plugin system. Without being overridden or extended by plugins, this
|
123
|
-
method just returns the default Mongrel2 response.
|
124
|
-
</dd>
|
125
|
-
<dt>fixup_response</dt>
|
126
|
-
<dd>
|
127
|
-
Make any changes to the @response@ that are necessary before handing it to
|
128
|
-
Mongrel and return it. This is an alternate extension-point for plugins that
|
129
|
-
wish to modify or replace the response after the whole request cycle is
|
130
|
-
completed.
|
131
|
-
</dd>
|
132
|
-
</dl>
|
133
|
-
|
134
|
-
For our logging purposes, we want to hook the @fixup_response@ method.
|
135
|
-
We won't be altering the response itself, but just reading attributes
|
136
|
-
from it and squirreling them away. (Most notably, the @response@ has
|
137
|
-
access to the @request@ object, and visa versa.) You can find more detail
|
138
|
-
for these hooks in the API documentation for <?api Strelka::App ?>.
|
43
|
+
require 'strelka'
|
139
44
|
|
140
|
-
|
45
|
+
class ExampleApplication < Strelka::App
|
46
|
+
plugins :routing, :dblogger
|
47
|
+
|
48
|
+
get do |req|
|
49
|
+
res = req.response
|
50
|
+
res.content_type = 'text/plain'
|
51
|
+
return res.body << "Hi! I'll be logged!"
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
ExampleApplication.run
|
56
|
+
|
57
|
+
|
58
|
+
== Load Order
|
59
|
+
|
60
|
+
The request is passed through plugins sequentually. You can control where in
|
61
|
+
the chain your plugin belongs, by using the <tt>run_before</tt> and
|
62
|
+
<tt>run_after</tt> methods. Both methods accept a comma separated list of other
|
63
|
+
plugin names.
|
64
|
+
|
65
|
+
In this example case, we want the logger to log the request before the other
|
66
|
+
core plugins run, so any errors still make it out to the log.
|
67
|
+
|
68
|
+
require 'strelka'
|
69
|
+
require 'strelka/app'
|
70
|
+
|
71
|
+
module Strelka::App::DBLogger
|
72
|
+
extend Strelka::Plugin
|
73
|
+
|
74
|
+
run_before :auth,
|
75
|
+
:filters,
|
76
|
+
:negotiation,
|
77
|
+
:parameters,
|
78
|
+
:routing,
|
79
|
+
:sessions,
|
80
|
+
:templating
|
81
|
+
|
82
|
+
end
|
141
83
|
|
142
|
-
<?example { lang: Ruby, caption: "A basic DBLogger plugin" } ?>
|
143
|
-
require 'strelka'
|
144
|
-
require 'strelka/app'
|
145
|
-
require 'sequel'
|
146
|
-
|
147
|
-
module Strelka::App::DBLogger
|
148
|
-
extend Strelka::Plugin
|
149
|
-
|
150
|
-
run_before \
|
151
|
-
:auth,
|
152
|
-
:filters,
|
153
|
-
:negotiation,
|
154
|
-
:parameters,
|
155
|
-
:routing,
|
156
|
-
:sessions,
|
157
|
-
:templating
|
158
|
-
|
159
|
-
def initialize( * )
|
160
|
-
super
|
161
|
-
|
162
|
-
@db = Sequel.sqlite( '////tmp/strelka_access.db' )
|
163
|
-
@db.create_table( :log ) do
|
164
|
-
timestamptz :date, :null => false
|
165
|
-
varchar :agent, :size => 255
|
166
|
-
varchar :remote_ip, :null => false
|
167
|
-
smallint :status
|
168
|
-
varchar :method, :size => 8, :null => false
|
169
|
-
varchar :path, :size => 255
|
170
|
-
varchar :query, :size => 255
|
171
|
-
varchar :referer, :size => 255
|
172
|
-
end unless @db.table_exists?( :log )
|
173
|
-
end
|
174
|
-
|
175
|
-
attr_reader :db
|
176
|
-
|
177
|
-
def fixup_response( response )
|
178
|
-
request = response.request
|
179
|
-
|
180
|
-
self.log.debug self.db[ :log ].insert(
|
181
|
-
:date => Time.now.to_s,
|
182
|
-
:agent => request.headers.user_agent,
|
183
|
-
:remote_ip => request.remote_ip.to_s,
|
184
|
-
:status => response.status,
|
185
|
-
:method => request.verb.to_s,
|
186
|
-
:path => request.uri.path,
|
187
|
-
:query => request.uri.query,
|
188
|
-
:referer => request.headers.referer
|
189
|
-
)
|
190
|
-
|
191
|
-
super
|
192
|
-
end
|
193
|
-
end
|
194
|
-
<?end example ?>
|
195
|
-
|
196
|
-
Handler startup creates the database and the logging schema, and
|
197
|
-
every request performs an @insert@ with the data we're after. There's
|
198
|
-
plenty of room for improvement here (configurable db location, prepared
|
199
|
-
statements), but hopefully that gives you a first-round idea of how easy
|
200
|
-
it is to add pluggable functionality to Strelka.
|
201
84
|
|
85
|
+
== Hooks
|
86
|
+
|
87
|
+
There are three primary extension points you can override in your plugin. All
|
88
|
+
hooks absolutely require you to <tt>super</tt> at some point, so the
|
89
|
+
request/response chain passes through your plugin.
|
90
|
+
|
91
|
+
[\fixup_request]
|
92
|
+
|
93
|
+
Make any changes to the <tt>request</tt> that are necessary before handling
|
94
|
+
it and return it. This is an alternate extension-point for plugins that wish
|
95
|
+
to modify or replace the request before the request cycle is started.
|
96
|
+
|
97
|
+
[\handle_request]
|
98
|
+
|
99
|
+
Handle the <tt>request</tt> and return a <tt>response</tt>. This is the main
|
100
|
+
extension-point for the plugin system. Without being overridden or extended
|
101
|
+
by plugins, this method just returns the default Mongrel2 response.
|
102
|
+
|
103
|
+
[\fixup_response]
|
104
|
+
|
105
|
+
Make any changes to the <tt>response</tt> that are necessary before handing
|
106
|
+
it to Mongrel and return it. This is an alternate extension- point for
|
107
|
+
plugins that wish to modify or replace the response after the whole request
|
108
|
+
cycle is completed.
|
109
|
+
|
110
|
+
|
111
|
+
== Completing the Example
|
112
|
+
|
113
|
+
For our logging purposes, we want to hook the <tt>fixup_response</tt> method. We
|
114
|
+
won't be altering the response itself, but just reading attributes from it and
|
115
|
+
squirreling them away. Most notably, the <tt>response</tt> has access to the
|
116
|
+
<tt>response</tt> object, and visa versa. You can find more detail for these
|
117
|
+
hooks in the API documentation for Strelka::App.
|
118
|
+
|
119
|
+
Here's the complete plugin.
|
120
|
+
|
121
|
+
require 'strelka'
|
122
|
+
require 'strelka/app'
|
123
|
+
require 'sequel'
|
124
|
+
|
125
|
+
module Strelka::App::DBLogger
|
126
|
+
extend Strelka::Plugin
|
127
|
+
|
128
|
+
run_before :auth,
|
129
|
+
:filters,
|
130
|
+
:negotiation,
|
131
|
+
:parameters,
|
132
|
+
:routing,
|
133
|
+
:sessions,
|
134
|
+
:templating
|
135
|
+
|
136
|
+
def initialize( * )
|
137
|
+
super
|
138
|
+
|
139
|
+
@db = Sequel.sqlite( '////tmp/strelka_access.db' )
|
140
|
+
@db.create_table( :log ) do
|
141
|
+
timestamptz :date, :null => false
|
142
|
+
varchar :agent, :size => 255
|
143
|
+
varchar :remote_ip, :null => false
|
144
|
+
smallint :status
|
145
|
+
varchar :method, :size => 8, :null => false
|
146
|
+
varchar :path, :size => 255
|
147
|
+
varchar :query, :size => 255
|
148
|
+
varchar :referer, :size => 255
|
149
|
+
end unless @db.table_exists?( :log )
|
150
|
+
end
|
151
|
+
|
152
|
+
attr_reader :db
|
153
|
+
|
154
|
+
def fixup_response( response )
|
155
|
+
request = response.request
|
156
|
+
|
157
|
+
self.log.debug self.db[ :log ].insert(
|
158
|
+
:date => Time.now.to_s,
|
159
|
+
:agent => request.headers.user_agent,
|
160
|
+
:remote_ip => request.remote_ip.to_s,
|
161
|
+
:status => response.status,
|
162
|
+
:method => request.verb.to_s,
|
163
|
+
:path => request.uri.path,
|
164
|
+
:query => request.uri.query,
|
165
|
+
:referer => request.headers.referer
|
166
|
+
)
|
167
|
+
|
168
|
+
super
|
169
|
+
end
|
170
|
+
end
|
171
|
+
|
172
|
+
Handler startup creates the database and the logging schema, and every request
|
173
|
+
performs an <tt>insert</tt> with the data we're after. There's plenty of room
|
174
|
+
for improvement here (configurable db location, prepared statements), but
|
175
|
+
hopefully that gives you a first-round idea of how easy it is to add pluggable
|
176
|
+
functionality to Strelka.
|
data/README.rdoc
CHANGED
@@ -9,10 +9,10 @@ docs :: http://deveiate.org/code/strelka
|
|
9
9
|
== Description
|
10
10
|
|
11
11
|
Strelka is a framework for creating and deploying
|
12
|
-
|
12
|
+
Mongrel2[http://mongrel2.org/] web applications in Ruby.
|
13
13
|
|
14
|
-
It's named after a lesser known
|
15
|
-
cosmonaut
|
14
|
+
It's named after a lesser known {Russian
|
15
|
+
cosmonaut}[http://en.wikipedia.org/wiki/Strelka_(dog)#Belka_and_Strelka] who was
|
16
16
|
one of the first canine space travelers to orbit the Earth and return alive.
|
17
17
|
Her name means "little arrow".
|
18
18
|
|
data/Rakefile
CHANGED
@@ -39,7 +39,11 @@ hoespec = Hoe.spec 'strelka' do
|
|
39
39
|
self.dependency 'simplecov', '~> 0.6', :developer
|
40
40
|
|
41
41
|
self.spec_extras[:licenses] = ["BSD"]
|
42
|
-
self.spec_extras[:rdoc_options] = [
|
42
|
+
self.spec_extras[:rdoc_options] = [
|
43
|
+
'-f', 'fivefish',
|
44
|
+
'-t', 'Strelka Web Application Toolkit',
|
45
|
+
'-w', '4',
|
46
|
+
]
|
43
47
|
self.require_ruby_version( '>=1.9.2' )
|
44
48
|
self.hg_sign_tags = true if self.respond_to?( :hg_sign_tags= )
|
45
49
|
self.check_history_on_release = true if self.respond_to?( :check_history_on_release= )
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: strelka
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.1.pre.
|
4
|
+
version: 0.0.1.pre.314
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -328,12 +328,12 @@ dependencies:
|
|
328
328
|
version: '3.0'
|
329
329
|
description: ! 'Strelka is a framework for creating and deploying
|
330
330
|
|
331
|
-
|
331
|
+
Mongrel2[http://mongrel2.org/] web applications in Ruby.
|
332
332
|
|
333
333
|
|
334
|
-
It''s named after a lesser known
|
334
|
+
It''s named after a lesser known {Russian
|
335
335
|
|
336
|
-
cosmonaut
|
336
|
+
cosmonaut}[http://en.wikipedia.org/wiki/Strelka_(dog)#Belka_and_Strelka] who was
|
337
337
|
|
338
338
|
one of the first canine space travelers to orbit the Earth and return alive.
|
339
339
|
|
@@ -486,6 +486,8 @@ rdoc_options:
|
|
486
486
|
- fivefish
|
487
487
|
- -t
|
488
488
|
- Strelka Web Application Toolkit
|
489
|
+
- -w
|
490
|
+
- '4'
|
489
491
|
require_paths:
|
490
492
|
- lib
|
491
493
|
required_ruby_version: !ruby/object:Gem::Requirement
|
@@ -505,6 +507,6 @@ rubyforge_project: strelka
|
|
505
507
|
rubygems_version: 1.8.24
|
506
508
|
signing_key:
|
507
509
|
specification_version: 3
|
508
|
-
summary: Strelka is a framework for creating and deploying
|
510
|
+
summary: Strelka is a framework for creating and deploying Mongrel2[http://mongrel2.org/]
|
509
511
|
web applications in Ruby
|
510
512
|
test_files: []
|
metadata.gz.sig
CHANGED
Binary file
|