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.
Files changed (58) hide show
  1. data/Gemfile +11 -8
  2. data/README.md +50 -1
  3. data/Rakefile +14 -104
  4. data/config.ru +5 -0
  5. data/examples/blog/config.ru +1 -0
  6. data/lib/renee.rb +3 -2
  7. data/lib/renee/render.rb +1 -1
  8. data/lib/renee/url_generation.rb +66 -45
  9. data/lib/renee/version.rb +1 -1
  10. data/plan.txt +1 -5
  11. data/renee.gemspec +3 -3
  12. data/site/public/css/app.css +47 -26
  13. data/site/views/extending.md +66 -0
  14. data/site/views/index.md +14 -4
  15. data/site/views/routing.md +0 -38
  16. data/site/views/variable-types.md +2 -2
  17. data/test/{renee/blog_test.rb → blog_test.rb} +0 -0
  18. data/test/{renee-render/render_test.rb → render_test.rb} +0 -0
  19. data/test/renee-url-generation/test_helper.rb +1 -1
  20. data/test/{renee-session/session_test.rb → session_test.rb} +2 -2
  21. data/test/renee/test_helper.rb b/data/test/test_helper → copy.rb +0 -0
  22. data/test/test_helper.rb +8 -1
  23. data/test/{renee-url-generation/url_generation_test.rb → url_generation_test.rb} +2 -2
  24. metadata +47 -77
  25. data/Gemfile-renee +0 -8
  26. data/Gemfile-renee-core +0 -8
  27. data/Gemfile-renee-render +0 -9
  28. data/Gemfile-renee-session +0 -9
  29. data/Gemfile-renee-url-generation +0 -8
  30. data/README-renee-core.md +0 -242
  31. data/README-renee-render.md +0 -38
  32. data/README-renee-session.md +0 -3
  33. data/README-renee-url-generation.md +0 -3
  34. data/lib/renee/core.rb +0 -98
  35. data/lib/renee/core/chaining.rb +0 -66
  36. data/lib/renee/core/env_accessors.rb +0 -72
  37. data/lib/renee/core/exceptions.rb +0 -15
  38. data/lib/renee/core/matcher.rb +0 -61
  39. data/lib/renee/core/plugins.rb +0 -31
  40. data/lib/renee/core/rack_interaction.rb +0 -50
  41. data/lib/renee/core/request_context.rb +0 -56
  42. data/lib/renee/core/responding.rb +0 -112
  43. data/lib/renee/core/response.rb +0 -78
  44. data/lib/renee/core/routing.rb +0 -319
  45. data/lib/renee/core/transform.rb +0 -18
  46. data/renee-core.gemspec +0 -26
  47. data/renee-render.gemspec +0 -30
  48. data/renee-session.gemspec +0 -28
  49. data/renee-url-generation.gemspec +0 -24
  50. data/test.watchr +0 -61
  51. data/test/renee-core/chaining_test.rb +0 -33
  52. data/test/renee-core/env_accessors_test.rb +0 -43
  53. data/test/renee-core/include_test.rb +0 -14
  54. data/test/renee-core/request_context_test.rb +0 -70
  55. data/test/renee-core/responding_test.rb +0 -128
  56. data/test/renee-core/routing_test.rb +0 -443
  57. data/test/renee-core/test_helper.rb +0 -4
  58. data/test/renee-core/variable_type_test.rb +0 -57
@@ -1,73 +1,94 @@
1
1
  body {
2
- margin-left: 20%;
3
- margin-right: 20%;
4
- background-image: url('/img/stoneposter.png');
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
- min-width: 500px;
10
- background: #FCEA97;
11
- border-style: solid;
12
- border-width: 5px;
13
- border-color: #FFC003;
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: #1C1C19;
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: #FFA000;
27
+ color: #222222;
28
+ font-size: 1.5em;
25
29
  }
26
30
 
27
31
  a {
28
32
  text-decoration: none;
29
- color: #A60202;
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
- border: 1px black solid;
34
- background-color: #1C1C19;
35
- color: white;
36
- padding: 5px;
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: #FFC003;
59
+ color: #D14;
43
60
  }
44
61
 
45
62
  pre.CodeRay .constant {
46
- color: #A60202;
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: #FCEA97;
71
+ color: #FF9A52;
51
72
  }
52
73
 
53
74
  pre.CodeRay .keyword {
54
- color: #dd7;
75
+ font-weight: bold;
55
76
  }
56
77
 
57
78
  pre.CodeRay .symbol {
58
- color: #f77;
79
+ color: #990073;
59
80
  }
60
81
 
61
82
  pre.CodeRay .integer {
62
- color: #f77;
83
+ color: #FF9A52;
63
84
  }
64
85
 
65
86
  pre.CodeRay .comment {
66
- color: #BC9358;
87
+ color: #998;
67
88
  }
68
89
 
69
90
  pre.CodeRay .regexp {
70
- color: #a33;
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.
@@ -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
- raise_on_error!
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
- raise_on_error!
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
- app {
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
  [&#8618; 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:
@@ -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
- raise_on_error! # What to do when you can't
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 `#raise_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 `#raise_on_error!`).
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
 
@@ -5,6 +5,6 @@ require File.expand_path('../../test_helper', __FILE__)
5
5
 
6
6
  class MiniTest::Spec
7
7
  def generator
8
- Class.new { include Renee::URLGeneration }
8
+ @generator ||= Renee::URLGeneration::GeneratorSet.new
9
9
  end
10
10
  end
@@ -9,7 +9,7 @@ describe Renee::Session do
9
9
  end
10
10
 
11
11
  it "should create a session" do
12
- @app.app do
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.app do
21
+ @app.run do
22
22
  out = session[:test] || "first"
23
23
  session[:test] = 'hello'
24
24
  path('test').get.halt out
@@ -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.core(&block).setup {
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 = generator
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
- r.register(:foo_bar, '/bar')
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.pre1
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-01-23 00:00:00.000000000Z
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: &70348684672460 !ruby/object:Gem::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: *70348684672460
26
+ version_requirements: *70286298002980
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: tilt
29
- requirement: &70348684671900 !ruby/object:Gem::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: *70348684671900
37
+ version_requirements: *70286298002160
38
38
  - !ruby/object:Gem::Dependency
39
39
  name: callsite
40
- requirement: &70348684671340 !ruby/object:Gem::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: *70348684671340
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: &70348684670800 !ruby/object:Gem::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.6.1
67
+ version: 2.11.1
57
68
  type: :development
58
69
  prerelease: false
59
- version_requirements: *70348684670800
70
+ version_requirements: *70286297995360
60
71
  - !ruby/object:Gem::Dependency
61
72
  name: rake
62
- requirement: &70348684670240 !ruby/object:Gem::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: *70348684670240
81
+ version_requirements: *70286297994840
71
82
  - !ruby/object:Gem::Dependency
72
83
  name: bundler
73
- requirement: &70348684669300 !ruby/object:Gem::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: *70348684669300
92
+ version_requirements: *70286297993420
82
93
  - !ruby/object:Gem::Dependency
83
94
  name: rack-test
84
- requirement: &70348684668700 !ruby/object:Gem::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: *70348684668700
103
+ version_requirements: *70286297991120
93
104
  - !ruby/object:Gem::Dependency
94
105
  name: haml
95
- requirement: &70348684668200 !ruby/object:Gem::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: *70348684668200
114
+ version_requirements: *70286297989640
104
115
  - !ruby/object:Gem::Dependency
105
116
  name: json
106
- requirement: &70348684667640 !ruby/object:Gem::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: *70348684667640
125
+ version_requirements: *70286297988960
115
126
  - !ruby/object:Gem::Dependency
116
127
  name: shotgun
117
- requirement: &70348684666920 !ruby/object:Gem::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: *70348684666920
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.watchr
348
- - test/renee-core/chaining_test.rb
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/renee-url-generation/url_generation_test.rb
362
- - test/renee/blog_test.rb
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: -1971434403675291859
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/renee-core/chaining_test.rb
394
- - test/renee-core/env_accessors_test.rb
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/renee-url-generation/url_generation_test.rb
407
- - test/renee/blog_test.rb
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: