renee 0.4.0.pre1 → 0.4.0.pre2
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +11 -8
- data/README.md +50 -1
- data/Rakefile +14 -104
- data/config.ru +5 -0
- data/examples/blog/config.ru +1 -0
- data/lib/renee.rb +3 -2
- data/lib/renee/render.rb +1 -1
- data/lib/renee/url_generation.rb +66 -45
- data/lib/renee/version.rb +1 -1
- data/plan.txt +1 -5
- data/renee.gemspec +3 -3
- data/site/public/css/app.css +47 -26
- data/site/views/extending.md +66 -0
- data/site/views/index.md +14 -4
- data/site/views/routing.md +0 -38
- data/site/views/variable-types.md +2 -2
- data/test/{renee/blog_test.rb → blog_test.rb} +0 -0
- data/test/{renee-render/render_test.rb → render_test.rb} +0 -0
- data/test/renee-url-generation/test_helper.rb +1 -1
- data/test/{renee-session/session_test.rb → session_test.rb} +2 -2
- data/test/renee/test_helper.rb b/data/test/test_helper → copy.rb +0 -0
- data/test/test_helper.rb +8 -1
- data/test/{renee-url-generation/url_generation_test.rb → url_generation_test.rb} +2 -2
- metadata +47 -77
- data/Gemfile-renee +0 -8
- data/Gemfile-renee-core +0 -8
- data/Gemfile-renee-render +0 -9
- data/Gemfile-renee-session +0 -9
- data/Gemfile-renee-url-generation +0 -8
- data/README-renee-core.md +0 -242
- data/README-renee-render.md +0 -38
- data/README-renee-session.md +0 -3
- data/README-renee-url-generation.md +0 -3
- data/lib/renee/core.rb +0 -98
- data/lib/renee/core/chaining.rb +0 -66
- data/lib/renee/core/env_accessors.rb +0 -72
- data/lib/renee/core/exceptions.rb +0 -15
- data/lib/renee/core/matcher.rb +0 -61
- data/lib/renee/core/plugins.rb +0 -31
- data/lib/renee/core/rack_interaction.rb +0 -50
- data/lib/renee/core/request_context.rb +0 -56
- data/lib/renee/core/responding.rb +0 -112
- data/lib/renee/core/response.rb +0 -78
- data/lib/renee/core/routing.rb +0 -319
- data/lib/renee/core/transform.rb +0 -18
- data/renee-core.gemspec +0 -26
- data/renee-render.gemspec +0 -30
- data/renee-session.gemspec +0 -28
- data/renee-url-generation.gemspec +0 -24
- data/test.watchr +0 -61
- data/test/renee-core/chaining_test.rb +0 -33
- data/test/renee-core/env_accessors_test.rb +0 -43
- data/test/renee-core/include_test.rb +0 -14
- data/test/renee-core/request_context_test.rb +0 -70
- data/test/renee-core/responding_test.rb +0 -128
- data/test/renee-core/routing_test.rb +0 -443
- data/test/renee-core/test_helper.rb +0 -4
- data/test/renee-core/variable_type_test.rb +0 -57
data/site/public/css/app.css
CHANGED
@@ -1,73 +1,94 @@
|
|
1
1
|
body {
|
2
|
-
|
3
|
-
|
4
|
-
background-
|
5
|
-
font-family: Arial, Verdana;
|
2
|
+
font-family: "Helvetica Neue", "Helvetica", Arial, sans-serif;
|
3
|
+
font-weight: 500;
|
4
|
+
background-color: #F0F0E6;
|
6
5
|
}
|
7
6
|
|
8
7
|
body .container {
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
border
|
8
|
+
width: 800px;
|
9
|
+
font-size: 90%;
|
10
|
+
margin: 2em auto;
|
11
|
+
background: white;
|
12
|
+
border: 2px solid #D8D8CF;
|
13
|
+
-webkit-border-radius: 15px;
|
14
|
+
-moz-border-radius: 15px;
|
14
15
|
border-radius: 15px;
|
15
|
-
padding: 2em;
|
16
|
-
margin-top: 1.2em;
|
16
|
+
padding: 2em 5em;
|
17
17
|
}
|
18
18
|
|
19
19
|
h1 {
|
20
|
-
color: #
|
20
|
+
color: #222222;
|
21
|
+
font-size: 1.6em;
|
22
|
+
padding-bottom: 0.4em;
|
23
|
+
border-bottom: 1px solid #9B9B9B;
|
21
24
|
}
|
22
25
|
|
23
26
|
h2 {
|
24
|
-
color: #
|
27
|
+
color: #222222;
|
28
|
+
font-size: 1.5em;
|
25
29
|
}
|
26
30
|
|
27
31
|
a {
|
28
32
|
text-decoration: none;
|
29
|
-
color: #
|
33
|
+
color: #640000;
|
30
34
|
}
|
31
35
|
|
36
|
+
a:hover {
|
37
|
+
text-decoration: underline;
|
38
|
+
}
|
39
|
+
|
40
|
+
ul li {
|
41
|
+
list-style-type: square;
|
42
|
+
}
|
43
|
+
|
44
|
+
|
32
45
|
pre.CodeRay {
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
46
|
+
overflow: auto;
|
47
|
+
font-family: 'Bitstream Vera Sans Mono','Courier',monospace;
|
48
|
+
border: 1px solid #CCC;
|
49
|
+
background-color: #F8F8F8;
|
50
|
+
color: black;
|
51
|
+
padding: 7px;
|
52
|
+
font-size: 0.9em;
|
37
53
|
-webkit-border-radius: 4px;
|
38
54
|
-moz-border-radius: 4px;
|
55
|
+
border-radius: 4px;
|
39
56
|
}
|
40
57
|
|
41
58
|
pre.CodeRay .string {
|
42
|
-
color: #
|
59
|
+
color: #D14;
|
43
60
|
}
|
44
61
|
|
45
62
|
pre.CodeRay .constant {
|
46
|
-
color:
|
63
|
+
color: rgb(0, 128, 128);
|
64
|
+
}
|
65
|
+
|
66
|
+
pre.CodeRay .predefined-constant {
|
67
|
+
color: rgb(0, 128, 128);
|
47
68
|
}
|
48
69
|
|
49
70
|
pre.CodeRay .instance-variable {
|
50
|
-
color: #
|
71
|
+
color: #FF9A52;
|
51
72
|
}
|
52
73
|
|
53
74
|
pre.CodeRay .keyword {
|
54
|
-
|
75
|
+
font-weight: bold;
|
55
76
|
}
|
56
77
|
|
57
78
|
pre.CodeRay .symbol {
|
58
|
-
color: #
|
79
|
+
color: #990073;
|
59
80
|
}
|
60
81
|
|
61
82
|
pre.CodeRay .integer {
|
62
|
-
color: #
|
83
|
+
color: #FF9A52;
|
63
84
|
}
|
64
85
|
|
65
86
|
pre.CodeRay .comment {
|
66
|
-
color: #
|
87
|
+
color: #998;
|
67
88
|
}
|
68
89
|
|
69
90
|
pre.CodeRay .regexp {
|
70
|
-
color: #
|
91
|
+
color: #FF9A52;
|
71
92
|
}
|
72
93
|
|
73
94
|
div.logo {
|
@@ -0,0 +1,66 @@
|
|
1
|
+
# Extending Renee
|
2
|
+
|
3
|
+
Renee is a very modular library comprised of four standalone libraries:
|
4
|
+
`renee-core`, `renee-render`, `renee-url-generation`, and `renee-session`.
|
5
|
+
|
6
|
+
If you need additional functionality, extending Renee can be very easy and quick.
|
7
|
+
Renee extensions are basically just included modules. For example, let's say we wanted to implement a simple
|
8
|
+
extension. First, define the module:
|
9
|
+
|
10
|
+
:::ruby
|
11
|
+
module Renee
|
12
|
+
module SampleExtension
|
13
|
+
|
14
|
+
module ClassMethods
|
15
|
+
# These are methods that live at the class level for Renee
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.included(o)
|
19
|
+
o.extend(ClassMethods)
|
20
|
+
# ...more here...
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
You can use hooks inside the `included` method to apply code at certain points in the renee lifecycle (init, before, after):
|
27
|
+
|
28
|
+
:::ruby
|
29
|
+
module Renee
|
30
|
+
module SampleExtension
|
31
|
+
def self.included(o)
|
32
|
+
o.on_init do
|
33
|
+
define_method(:foo) { 'bar' }
|
34
|
+
# More things on initialize
|
35
|
+
end
|
36
|
+
|
37
|
+
o.on_before do
|
38
|
+
# ...before every request...
|
39
|
+
end
|
40
|
+
|
41
|
+
o.on_after do
|
42
|
+
# ...after every request...
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
And then subclass Renee to add your own libraries:
|
49
|
+
|
50
|
+
:::ruby
|
51
|
+
module Renee
|
52
|
+
class MyApplication < Application
|
53
|
+
include SampleExtension
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
You can now use your subclassed application with your libraries mixed in:
|
58
|
+
|
59
|
+
:::ruby
|
60
|
+
run Renee::MyApplication {
|
61
|
+
path("/").get do
|
62
|
+
halt! foo
|
63
|
+
end
|
64
|
+
}
|
65
|
+
|
66
|
+
and that's the basics for extending Renee. Checkout the renee source code and specifically `renee-sessions` for a more detailed example.
|
data/site/views/index.md
CHANGED
@@ -92,7 +92,7 @@ arbitrary variable types, transform them, and handle error cases in one, easy pl
|
|
92
92
|
}.setup {
|
93
93
|
register_variable_type(:hex, /[0-9a-f]{6}/).
|
94
94
|
on_transform { |v| v.to_i(16) }.
|
95
|
-
|
95
|
+
halt_on_error!
|
96
96
|
}
|
97
97
|
|
98
98
|
Now, let's throw some requests against this. If we go to `http://127.0.0.1:9393/color/ff99ff`, we'll get a nice fuchsia. Try `http://127.0.0.1:9393/color/blue` and you'll get a 400. Too bad.
|
@@ -109,7 +109,7 @@ Okay, so, writing blocks is fun, but, it can get a bit indent-y when we don't re
|
|
109
109
|
}.setup {
|
110
110
|
register_variable_type(:hex, /[0-9a-f]{6}/).
|
111
111
|
on_transform { |v| v.to_i(16) }.
|
112
|
-
|
112
|
+
halt_on_error!
|
113
113
|
}
|
114
114
|
|
115
115
|
You can easily consume chaining yourself, if you want to implement your own routing methods. Find out [more](/chaining)!
|
@@ -120,7 +120,7 @@ Not happy with what Renee gives you? You can easily subclass to define whatever
|
|
120
120
|
|
121
121
|
:::ruby
|
122
122
|
class MyApp < Renee::Application
|
123
|
-
|
123
|
+
run {
|
124
124
|
path('justice/great').get.for_great_justice!
|
125
125
|
halt 404, "justice not found"
|
126
126
|
}
|
@@ -136,7 +136,7 @@ Not happy with what Renee gives you? You can easily subclass to define whatever
|
|
136
136
|
# for great justice
|
137
137
|
# curl http://localhost:9393/justice/good
|
138
138
|
# justice not found
|
139
|
-
|
139
|
+
|
140
140
|
|
141
141
|
## Getting started
|
142
142
|
|
@@ -193,6 +193,16 @@ Check out detailed guides for each aspect below:
|
|
193
193
|
|
194
194
|
[↪ Read about Route generation](/route-generation)
|
195
195
|
|
196
|
+
|
197
|
+
## Extending Renee
|
198
|
+
|
199
|
+
Renee is a very modular library comprised of four standalone libraries:
|
200
|
+
`renee-core`, `renee-render`, `renee-url-generation`, and `renee-session`.
|
201
|
+
|
202
|
+
If you need additional functionality, extending Renee can be very easy and quick.
|
203
|
+
Renee extensions are basically just included modules. Check out the [Extending Renee](/extending)
|
204
|
+
guide for more information.
|
205
|
+
|
196
206
|
## API documentation
|
197
207
|
|
198
208
|
Renee is also well-documented with YARD:
|
data/site/views/routing.md
CHANGED
@@ -221,41 +221,3 @@ Example:
|
|
221
221
|
#{secret_value} (and these will never be nil)"
|
222
222
|
}
|
223
223
|
}
|
224
|
-
|
225
|
-
### `#query_string`
|
226
|
-
|
227
|
-
This will match an exact query string. It's equivalent to `match === env['QUERY_STRING']`
|
228
|
-
where match is the value passed in.
|
229
|
-
|
230
|
-
:::ruby
|
231
|
-
path 'foo' do
|
232
|
-
query_string 'bar' do
|
233
|
-
get { halt 'BAR!' }
|
234
|
-
end
|
235
|
-
|
236
|
-
query_string 'baz' do
|
237
|
-
get { halt 'BAZ!' }
|
238
|
-
end
|
239
|
-
end
|
240
|
-
|
241
|
-
This will respond to `/foo?bar` with "BAR!" and `/foo?baz` with "BAZ!".
|
242
|
-
You can also specify query_string in a variety of other ways:
|
243
|
-
|
244
|
-
:::ruby
|
245
|
-
# Check key and value of query param
|
246
|
-
query_string 'foo=bar' do
|
247
|
-
post { halt [200,{},'foo'] }
|
248
|
-
end
|
249
|
-
|
250
|
-
# Declare query params as a hash
|
251
|
-
query :foo => "bar" do
|
252
|
-
halt 200
|
253
|
-
end
|
254
|
-
|
255
|
-
# Switch based on a query parameter
|
256
|
-
query :foo do |var|
|
257
|
-
case var
|
258
|
-
when 'bar' then halt 200
|
259
|
-
when 'bar2' then halt 500
|
260
|
-
end
|
261
|
-
end
|
@@ -10,10 +10,10 @@ To create a variable type, in your [setup block](/settings), add a #register_var
|
|
10
10
|
register_variable_type(:hex, # The name
|
11
11
|
/[0-9a-f]{6}/). # Part to capture
|
12
12
|
on_transform { |v| v.to_i(16) }. # How to transform
|
13
|
-
|
13
|
+
halt_on_error! # What to do when you can't
|
14
14
|
# capture
|
15
15
|
|
16
|
-
First, a registered type needs to have a name. Then, a regexp specifying what to match needs to be provided. If you want to transform the result, use `#on_transform` to pass a block to be called when this type is being used. If a type is attempted to be used, and the regexp doesn't manage to capture anything, the error handler is used to determine what to do. By default, there is no error handler, and so, your programs execution will continue normally. However, if you use`#on_error`, you can supply a block to be called in the event of an error. As a convenience, there is a `#
|
16
|
+
First, a registered type needs to have a name. Then, a regexp specifying what to match needs to be provided. If you want to transform the result, use `#on_transform` to pass a block to be called when this type is being used. If a type is attempted to be used, and the regexp doesn't manage to capture anything, the error handler is used to determine what to do. By default, there is no error handler, and so, your programs execution will continue normally. However, if you use`#on_error`, you can supply a block to be called in the event of an error. As a convenience, there is a `#halt_on_error!` method that will halt with a 400, or, if you choose, any HTTP error code you wish (which is an optional parameter to `#halt_on_error!`).
|
17
17
|
|
18
18
|
## Default types
|
19
19
|
|
File without changes
|
File without changes
|
@@ -9,7 +9,7 @@ describe Renee::Session do
|
|
9
9
|
end
|
10
10
|
|
11
11
|
it "should create a session" do
|
12
|
-
@app.
|
12
|
+
@app.run do
|
13
13
|
session[:test] = 'hello'
|
14
14
|
path('test').get.halt "why #{session[:test]}"
|
15
15
|
end
|
@@ -18,7 +18,7 @@ describe Renee::Session do
|
|
18
18
|
end
|
19
19
|
|
20
20
|
it "should persist values across multiple calls" do
|
21
|
-
@app.
|
21
|
+
@app.run do
|
22
22
|
out = session[:test] || "first"
|
23
23
|
session[:test] = 'hello'
|
24
24
|
path('test').get.halt out
|
File without changes
|
data/test/test_helper.rb
CHANGED
@@ -4,6 +4,8 @@ require 'minitest/autorun'
|
|
4
4
|
gem 'rack-test'
|
5
5
|
require 'rack/test'
|
6
6
|
|
7
|
+
require 'renee'
|
8
|
+
|
7
9
|
class ColoredIO
|
8
10
|
ESC = "\e["
|
9
11
|
NND = "#{ESC}0m"
|
@@ -36,12 +38,17 @@ MiniTest::Unit.output = ColoredIO.new(MiniTest::Unit.output)
|
|
36
38
|
class MiniTest::Spec
|
37
39
|
include Rack::Test::Methods
|
38
40
|
|
41
|
+
def blog_app
|
42
|
+
file = File.expand_path("../../examples/blog/config.ru", __FILE__)
|
43
|
+
@app ||= Rack::Builder.parse_file(file).first
|
44
|
+
end
|
45
|
+
|
39
46
|
# Sets up a Sinatra::Base subclass defined with the block
|
40
47
|
# given. Used in setup or individual spec methods to establish
|
41
48
|
# the application.
|
42
49
|
def mock_app(&block)
|
43
50
|
path = default_views_path
|
44
|
-
@app = Renee
|
51
|
+
@app = Renee(&block).setup {
|
45
52
|
views_path(path) if respond_to?(:views_path)
|
46
53
|
}
|
47
54
|
end
|
@@ -4,7 +4,7 @@ require File.expand_path('../test_helper', __FILE__)
|
|
4
4
|
|
5
5
|
describe Renee::URLGeneration do
|
6
6
|
before do
|
7
|
-
@r =
|
7
|
+
@r = Renee::URLGeneration::GeneratorSet.new
|
8
8
|
end
|
9
9
|
|
10
10
|
it "should allow registration and generation of paths" do
|
@@ -47,7 +47,7 @@ describe Renee::URLGeneration do
|
|
47
47
|
it "should allow #prefix calls for nesting common path parts" do
|
48
48
|
r = @r
|
49
49
|
r.prefix('/foo') do
|
50
|
-
|
50
|
+
register(:foo_bar, '/bar')
|
51
51
|
end
|
52
52
|
assert_equal '/foo/bar', r.path(:foo_bar)
|
53
53
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: renee
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.0.
|
4
|
+
version: 0.4.0.pre2
|
5
5
|
prerelease: 6
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -11,22 +11,22 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2012-
|
14
|
+
date: 2012-03-04 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: rack
|
18
|
-
requirement: &
|
18
|
+
requirement: &70286298002980 !ruby/object:Gem::Requirement
|
19
19
|
none: false
|
20
20
|
requirements:
|
21
|
-
- -
|
21
|
+
- - ! '>='
|
22
22
|
- !ruby/object:Gem::Version
|
23
23
|
version: 1.3.0
|
24
24
|
type: :runtime
|
25
25
|
prerelease: false
|
26
|
-
version_requirements: *
|
26
|
+
version_requirements: *70286298002980
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: tilt
|
29
|
-
requirement: &
|
29
|
+
requirement: &70286298002160 !ruby/object:Gem::Requirement
|
30
30
|
none: false
|
31
31
|
requirements:
|
32
32
|
- - ~>
|
@@ -34,10 +34,10 @@ dependencies:
|
|
34
34
|
version: 1.3.3
|
35
35
|
type: :runtime
|
36
36
|
prerelease: false
|
37
|
-
version_requirements: *
|
37
|
+
version_requirements: *70286298002160
|
38
38
|
- !ruby/object:Gem::Dependency
|
39
39
|
name: callsite
|
40
|
-
requirement: &
|
40
|
+
requirement: &70286298001580 !ruby/object:Gem::Requirement
|
41
41
|
none: false
|
42
42
|
requirements:
|
43
43
|
- - ~>
|
@@ -45,21 +45,32 @@ dependencies:
|
|
45
45
|
version: 0.0.6
|
46
46
|
type: :runtime
|
47
47
|
prerelease: false
|
48
|
-
version_requirements: *
|
48
|
+
version_requirements: *70286298001580
|
49
|
+
- !ruby/object:Gem::Dependency
|
50
|
+
name: renee-core
|
51
|
+
requirement: &70286298000400 !ruby/object:Gem::Requirement
|
52
|
+
none: false
|
53
|
+
requirements:
|
54
|
+
- - =
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: 0.4.0.pre2
|
57
|
+
type: :runtime
|
58
|
+
prerelease: false
|
59
|
+
version_requirements: *70286298000400
|
49
60
|
- !ruby/object:Gem::Dependency
|
50
61
|
name: minitest
|
51
|
-
requirement: &
|
62
|
+
requirement: &70286297995360 !ruby/object:Gem::Requirement
|
52
63
|
none: false
|
53
64
|
requirements:
|
54
65
|
- - ~>
|
55
66
|
- !ruby/object:Gem::Version
|
56
|
-
version: 2.
|
67
|
+
version: 2.11.1
|
57
68
|
type: :development
|
58
69
|
prerelease: false
|
59
|
-
version_requirements: *
|
70
|
+
version_requirements: *70286297995360
|
60
71
|
- !ruby/object:Gem::Dependency
|
61
72
|
name: rake
|
62
|
-
requirement: &
|
73
|
+
requirement: &70286297994840 !ruby/object:Gem::Requirement
|
63
74
|
none: false
|
64
75
|
requirements:
|
65
76
|
- - ! '>='
|
@@ -67,10 +78,10 @@ dependencies:
|
|
67
78
|
version: '0'
|
68
79
|
type: :development
|
69
80
|
prerelease: false
|
70
|
-
version_requirements: *
|
81
|
+
version_requirements: *70286297994840
|
71
82
|
- !ruby/object:Gem::Dependency
|
72
83
|
name: bundler
|
73
|
-
requirement: &
|
84
|
+
requirement: &70286297993420 !ruby/object:Gem::Requirement
|
74
85
|
none: false
|
75
86
|
requirements:
|
76
87
|
- - ! '>='
|
@@ -78,10 +89,10 @@ dependencies:
|
|
78
89
|
version: '0'
|
79
90
|
type: :development
|
80
91
|
prerelease: false
|
81
|
-
version_requirements: *
|
92
|
+
version_requirements: *70286297993420
|
82
93
|
- !ruby/object:Gem::Dependency
|
83
94
|
name: rack-test
|
84
|
-
requirement: &
|
95
|
+
requirement: &70286297991120 !ruby/object:Gem::Requirement
|
85
96
|
none: false
|
86
97
|
requirements:
|
87
98
|
- - ! '>='
|
@@ -89,10 +100,10 @@ dependencies:
|
|
89
100
|
version: 0.5.0
|
90
101
|
type: :development
|
91
102
|
prerelease: false
|
92
|
-
version_requirements: *
|
103
|
+
version_requirements: *70286297991120
|
93
104
|
- !ruby/object:Gem::Dependency
|
94
105
|
name: haml
|
95
|
-
requirement: &
|
106
|
+
requirement: &70286297989640 !ruby/object:Gem::Requirement
|
96
107
|
none: false
|
97
108
|
requirements:
|
98
109
|
- - ! '>='
|
@@ -100,10 +111,10 @@ dependencies:
|
|
100
111
|
version: 2.2.0
|
101
112
|
type: :development
|
102
113
|
prerelease: false
|
103
|
-
version_requirements: *
|
114
|
+
version_requirements: *70286297989640
|
104
115
|
- !ruby/object:Gem::Dependency
|
105
116
|
name: json
|
106
|
-
requirement: &
|
117
|
+
requirement: &70286297988960 !ruby/object:Gem::Requirement
|
107
118
|
none: false
|
108
119
|
requirements:
|
109
120
|
- - ! '>='
|
@@ -111,10 +122,10 @@ dependencies:
|
|
111
122
|
version: '0'
|
112
123
|
type: :development
|
113
124
|
prerelease: false
|
114
|
-
version_requirements: *
|
125
|
+
version_requirements: *70286297988960
|
115
126
|
- !ruby/object:Gem::Dependency
|
116
127
|
name: shotgun
|
117
|
-
requirement: &
|
128
|
+
requirement: &70286297987660 !ruby/object:Gem::Requirement
|
118
129
|
none: false
|
119
130
|
requirements:
|
120
131
|
- - ! '>='
|
@@ -122,7 +133,7 @@ dependencies:
|
|
122
133
|
version: '0'
|
123
134
|
type: :development
|
124
135
|
prerelease: false
|
125
|
-
version_requirements: *
|
136
|
+
version_requirements: *70286297987660
|
126
137
|
description: The super-friendly web framework.
|
127
138
|
email:
|
128
139
|
- joshbuddy@gmail.com
|
@@ -133,16 +144,7 @@ extensions: []
|
|
133
144
|
extra_rdoc_files: []
|
134
145
|
files:
|
135
146
|
- Gemfile
|
136
|
-
- Gemfile-renee
|
137
|
-
- Gemfile-renee-core
|
138
|
-
- Gemfile-renee-render
|
139
|
-
- Gemfile-renee-session
|
140
|
-
- Gemfile-renee-url-generation
|
141
147
|
- MIT-LICENSE.txt
|
142
|
-
- README-renee-core.md
|
143
|
-
- README-renee-render.md
|
144
|
-
- README-renee-session.md
|
145
|
-
- README-renee-url-generation.md
|
146
148
|
- README.md
|
147
149
|
- Rakefile
|
148
150
|
- TODO.txt
|
@@ -153,28 +155,12 @@ files:
|
|
153
155
|
- examples/blog/views/index.erb
|
154
156
|
- examples/blog/views/show.erb
|
155
157
|
- lib/renee.rb
|
156
|
-
- lib/renee/core.rb
|
157
|
-
- lib/renee/core/chaining.rb
|
158
|
-
- lib/renee/core/env_accessors.rb
|
159
|
-
- lib/renee/core/exceptions.rb
|
160
|
-
- lib/renee/core/matcher.rb
|
161
|
-
- lib/renee/core/plugins.rb
|
162
|
-
- lib/renee/core/rack_interaction.rb
|
163
|
-
- lib/renee/core/request_context.rb
|
164
|
-
- lib/renee/core/responding.rb
|
165
|
-
- lib/renee/core/response.rb
|
166
|
-
- lib/renee/core/routing.rb
|
167
|
-
- lib/renee/core/transform.rb
|
168
158
|
- lib/renee/render.rb
|
169
159
|
- lib/renee/session.rb
|
170
160
|
- lib/renee/url_generation.rb
|
171
161
|
- lib/renee/util.rb
|
172
162
|
- lib/renee/version.rb
|
173
163
|
- plan.txt
|
174
|
-
- renee-core.gemspec
|
175
|
-
- renee-render.gemspec
|
176
|
-
- renee-session.gemspec
|
177
|
-
- renee-url-generation.gemspec
|
178
164
|
- renee.gemspec
|
179
165
|
- site/MIT-LICENSE.txt
|
180
166
|
- site/public/css/app.css
|
@@ -334,6 +320,7 @@ files:
|
|
334
320
|
- site/public/img/stoneposter.png
|
335
321
|
- site/public/img/vospit.jpeg
|
336
322
|
- site/views/chaining.md
|
323
|
+
- site/views/extending.md
|
337
324
|
- site/views/index.md
|
338
325
|
- site/views/layouts/app.haml
|
339
326
|
- site/views/rack-integration.md
|
@@ -344,24 +331,15 @@ files:
|
|
344
331
|
- site/views/team-renee.md
|
345
332
|
- site/views/tutorial.md
|
346
333
|
- site/views/variable-types.md
|
347
|
-
- test.
|
348
|
-
- test/
|
349
|
-
- test/renee-core/env_accessors_test.rb
|
350
|
-
- test/renee-core/include_test.rb
|
351
|
-
- test/renee-core/request_context_test.rb
|
352
|
-
- test/renee-core/responding_test.rb
|
353
|
-
- test/renee-core/routing_test.rb
|
354
|
-
- test/renee-core/test_helper.rb
|
355
|
-
- test/renee-core/variable_type_test.rb
|
356
|
-
- test/renee-render/render_test.rb
|
334
|
+
- test/blog_test.rb
|
335
|
+
- test/render_test.rb
|
357
336
|
- test/renee-render/test_helper.rb
|
358
|
-
- test/renee-session/session_test.rb
|
359
337
|
- test/renee-session/test_helper.rb
|
360
338
|
- test/renee-url-generation/test_helper.rb
|
361
|
-
- test/
|
362
|
-
- test/
|
363
|
-
- test/renee/test_helper.rb
|
339
|
+
- test/session_test.rb
|
340
|
+
- test/test_helper copy.rb
|
364
341
|
- test/test_helper.rb
|
342
|
+
- test/url_generation_test.rb
|
365
343
|
homepage: http://reneerb.com
|
366
344
|
licenses: []
|
367
345
|
post_install_message:
|
@@ -376,7 +354,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
376
354
|
version: '0'
|
377
355
|
segments:
|
378
356
|
- 0
|
379
|
-
hash:
|
357
|
+
hash: 2093277106572431606
|
380
358
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
381
359
|
none: false
|
382
360
|
requirements:
|
@@ -390,21 +368,13 @@ signing_key:
|
|
390
368
|
specification_version: 3
|
391
369
|
summary: The super-friendly web framework
|
392
370
|
test_files:
|
393
|
-
- test/
|
394
|
-
- test/
|
395
|
-
- test/renee-core/include_test.rb
|
396
|
-
- test/renee-core/request_context_test.rb
|
397
|
-
- test/renee-core/responding_test.rb
|
398
|
-
- test/renee-core/routing_test.rb
|
399
|
-
- test/renee-core/test_helper.rb
|
400
|
-
- test/renee-core/variable_type_test.rb
|
401
|
-
- test/renee-render/render_test.rb
|
371
|
+
- test/blog_test.rb
|
372
|
+
- test/render_test.rb
|
402
373
|
- test/renee-render/test_helper.rb
|
403
|
-
- test/renee-session/session_test.rb
|
404
374
|
- test/renee-session/test_helper.rb
|
405
375
|
- test/renee-url-generation/test_helper.rb
|
406
|
-
- test/
|
407
|
-
- test/
|
408
|
-
- test/renee/test_helper.rb
|
376
|
+
- test/session_test.rb
|
377
|
+
- test/test_helper copy.rb
|
409
378
|
- test/test_helper.rb
|
379
|
+
- test/url_generation_test.rb
|
410
380
|
has_rdoc:
|