strelka 0.0.1.pre.309 → 0.0.1.pre.314
Sign up to get free protection for your applications and to get access to all the features.
- 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
|