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.
Files changed (8) hide show
  1. data.tar.gz.sig +0 -0
  2. data/ChangeLog +20 -1
  3. data/Deploying.rdoc +64 -55
  4. data/Plugins.rdoc +160 -185
  5. data/README.rdoc +3 -3
  6. data/Rakefile +5 -1
  7. metadata +7 -5
  8. 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] [tip]
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
- h2. <%= page.config['title'] %>
3
+ == Deploying a Strelka App
13
4
 
14
- <div id="auto-toc"></div>
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 uses the Rubygems plugin system to find and load applications. You don't need to necessarily package them up this way if you've already got a deployment strategy in mind, but the rest of this manual assumes you will be.
9
+ A Strelka app plugin:
17
10
 
18
- ** Include their static content and the apps themselves in their data dir
19
- ** Include any library code in lib/
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
- h3. Setting up the Project
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
- !images/project-layout.png(Example project layout screenshot)!
18
+ == Setting up the Project
27
19
 
28
- The data directory should contain your apps, templates, and any static content your app requires in a directory with the same name as your gem. Strelka's runtime environment will look for them there, though most of them can be configured to look elsewhere. The presence of an @apps@ subdirectory is what Strelka looks for when searching for installed application gems.
20
+ First you'll need to create the project layout. It should look something like
21
+ this:
29
22
 
30
- The rest of the gem is "pretty standard":http://chneukirchen.github.com/rps/: Your applications' reusable code should be under @lib/@ and @ext/@ directories, and tests or specs under @test/@ and @spec/@, respectively.
23
+ https://bitbucket.org/ged/strelka/raw/97e69307bb0c/manual/resources/images/project-layout.png
31
24
 
32
- h4. Easy Setup with Hoe
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
- Hoe is a Rake helper that provides tasks for setting up and maintaining a project. It comes with a tool called 'sow' that generates a project based on a template directory. Strelka includes a Hoe project template in its @contrib/hoetemplate@ directory. If you copy that directory into @~/.hoe_template@:
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
- bc. $ sow #(run once to set up the template directory if you don't have one)
37
- $ cp -r contrib/hoetemplate ~/.hoe_template/strelka
36
+ === Easy Setup with Hoe
38
37
 
39
- you can generate a new project like so:
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
- bc.. $ sow -s strelka GoodDoggie
42
- erb: .autotest.erb
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
- ... done, now go fix all occurrences of 'FIX':
47
+ You can generate a new project like so:
54
48
 
55
- GoodDoggie/data/good_doggie/apps/good_doggie_app:10: ID = 'FIX' # (set the app id of the main application)
56
- GoodDoggie/data/good_doggie/templates/layout.tmpl:5: FIX (application title)
57
- GoodDoggie/data/good_doggie/templates/layout.tmpl:9: <!-- FIX (set up the main layout template) -->
58
- GoodDoggie/data/good_doggie/templates/top.tmpl:1:<!-- FIX (set up the main content template) -->
59
- GoodDoggie/lib/good_doggie.rb:3:# FIX (top-level documentation)
60
- GoodDoggie/Rakefile:17: self.developer 'FIX', 'FIX' # (name, email)
61
- GoodDoggie/README.rdoc:3:* FIX (url)
62
- GoodDoggie/README.rdoc:7:FIX (describe your package)
63
- GoodDoggie/README.rdoc:15:Copyright (c) 2011, FIX
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
- p. Now just fix all the "FIX" items.
61
+ ... done, now go fix all occurrences of 'FIX':
66
62
 
67
- Strelka looks for handler apps in the 'apps' subdirectory of your gem's datadir, so in our example, the app is @GoodDoggie/data/good_doggie/apps/good_doggie_app@:
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
- bc.. # The main GoodDoggie application
70
- class GoodDoggie::Application < Strelka::App
73
+ Now just fix all the <tt>'FIX'</tt> items.
71
74
 
72
- # Uncomment this if you need an appid other than
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
- p. The End
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
- title: Write Your Own Strelka Plugin
3
- layout: default
4
- index: 5
5
- filters:
6
- - erb
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 <?link "tutorial":Strelka Tutorial ?> section,
24
- Strelka breaks out functionality into a set of core plugins that allow
25
- you to cherry pick the capabilities you need. It's easy to create your
26
- own plugins for optional loading of shared behavior into any number of
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
- logs all HTTP accesses to a "SQLite":http://www.sqlite.org/ database.
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
- A Strelka plugin is just a module under the <?api Strelka::App ?>
35
- namespace that is extended by the <?api Strelka::Plugin ?> class.
36
- Once extended, the plugin participates in the @request@ -> @response@
37
- lifecycle, and is able to alter it via hooks. The plugin only
38
- participates for handlers that load it via the @plugin@ declarative.
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
- @dblogger@.
27
+ <tt>dblogger</tt>.
42
28
 
43
- <?example { lang: Ruby, caption: "A no-op plugin" } ?>
44
- require 'strelka'
45
- require 'strelka/app'
29
+ require 'strelka'
30
+ require 'strelka/app'
46
31
 
47
- module Strelka::App::DBLogger
48
- extend Strelka::Plugin
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
- locate it. It can go anywhere in your @$LOAD_PATH@, but should be under a
54
- @lib/strelka/app@ subdirectory, and the filename should match the class.
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 @lib/strelka/app/dblogger.rb@, and Strelka
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
- <?example { lang: Ruby, caption: "Using the dblogger plugin" } ?>
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
- Here's the complete plugin.
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
- "Mongrel2":http://mongrel2.org/ web applications in Ruby.
12
+ Mongrel2[http://mongrel2.org/] web applications in Ruby.
13
13
 
14
- It's named after a lesser known "Russian
15
- cosmonaut":http://en.wikipedia.org/wiki/Strelka_(dog)#Belka_and_Strelka who was
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] = ['-f', 'fivefish', '-t', 'Strelka Web Application Toolkit']
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.309
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
- "Mongrel2":http://mongrel2.org/ web applications in Ruby.
331
+ Mongrel2[http://mongrel2.org/] web applications in Ruby.
332
332
 
333
333
 
334
- It''s named after a lesser known "Russian
334
+ It''s named after a lesser known {Russian
335
335
 
336
- cosmonaut":http://en.wikipedia.org/wiki/Strelka_(dog)#Belka_and_Strelka who was
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 "Mongrel2":http://mongrel2.org/
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