sinatra-advanced-routes 0.5.1 → 0.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/NEWS.md ADDED
@@ -0,0 +1,6 @@
1
+ # News
2
+
3
+ ## v0.5.2
4
+
5
+ * Added bundle default require file (#5)
6
+ * Fixed tests with updated depenencies (#4)
data/README.md CHANGED
@@ -1,75 +1,79 @@
1
- Sinatra::AdvancedRoutes
2
- =======================
1
+ # Sinatra::AdvancedRoutes
3
2
 
4
- Makes routes first class objects in [Sinatra](http://sinatrarb.com).
3
+ > Makes routes first class objects in [Sinatra](http://sinatrarb.com).
5
4
 
6
- BigBand
7
- -------
5
+ [![Build Status](https://travis-ci.org/rkh/sinatra-advanced-routes.png)](https://travis-ci.org/rkh/sinatra-advanced-routes)
8
6
 
9
- Sinatra::AdvancedRoutes is part of the [BigBand](http://github.com/rkh/big_band) stack.
10
- Check it out if you are looking for other fancy Sinatra extensions.
7
+ Check out [sinatra-contrib](https://github.com/sinatra/sinatra-contrib) you are looking for other fancy Sinatra extensions.
11
8
 
12
- Installation
13
- ------------
9
+ ## Installation
14
10
 
15
- gem install sinatra-advanced-routes
11
+ Add to your `Gemfile` :
16
12
 
17
- Example
18
- -------
13
+ ```ruby
14
+ gem 'sinatra-advanced-routes'
15
+ ```
19
16
 
20
- Route manipulation:
17
+ If you are extending Sinatra::Base, register the extension manually :
21
18
 
22
- require "sinatra"
23
- require "sinatra/advanced_routes"
19
+ ```ruby
20
+ require "sinatra/base"
21
+ require "sinatra/advanced_routes"
24
22
 
25
- admin_route = get "/admin" do
26
- administrate_stuff
27
- end
23
+ class Foo < Sinatra::Base
24
+ register Sinatra::AdvancedRoutes
25
+ end
26
+ ```
28
27
 
29
- before do
30
- # Let's deactivate the route if we have no password file.
31
- if File.exists? "admin_password" then admin_route.activate
32
- else admin_route.deactivate
33
- end
34
- end
28
+ ## Examples
35
29
 
36
- first_route = get "/:name" do
37
- # stuff
38
- end
30
+ ### Route manipulation
39
31
 
40
- other_route = get "/foo_:name" do
41
- # other stuff
42
- end
32
+ ```ruby
33
+ require "sinatra"
34
+ require "sinatra/advanced_routes"
43
35
 
44
- # Unfortunatly first_route will catch all the requests other_route would
45
- # have gotten, since it has been defined first. But wait, we can fix this!
46
- other_route.promote
36
+ admin_route = get "/admin" do
37
+ administrate_stuff
38
+ end
47
39
 
48
- Route inspection:
40
+ before do
41
+ # Let's deactivate the route if we have no password file.
42
+ if File.exists? "admin_password" then admin_route.activate
43
+ else admin_route.deactivate
44
+ end
45
+ end
49
46
 
50
- require "some_sinatra_app"
51
-
52
- SomeSinatraApp.each_route do |route|
53
- puts "-"*20
54
- puts route.app.name # "SomeSinatraApp"
55
- puts route.path # that's the path given as argument to get and akin
56
- puts route.verb # get / head / post / put / delete
57
- puts route.file # "some_sinatra_app.rb" or something
58
- puts route.line # the line number of the get/post/... statement
59
- puts route.pattern # that's the pattern internally used by sinatra
60
- puts route.keys # keys given when route was defined
61
- puts route.conditions # conditions given when route was defined
62
- puts route.block # the route's closure
63
- end
47
+ first_route = get "/:name" do
48
+ # stuff
49
+ end
64
50
 
65
- Some of that fields (like conditions or pattern) can be changed, which will take immediate effect on the routing.
51
+ other_route = get "/foo_:name" do
52
+ # other stuff
53
+ end
54
+
55
+ # Unfortunatly first_route will catch all the requests other_route would
56
+ # have gotten, since it has been defined first. But wait, we can fix this!
57
+ other_route.promote
58
+ ```
59
+
60
+ ### Route inspection
66
61
 
67
- Usage with Sinatra::Base
68
- ------------------------
62
+ ```ruby
63
+ require "some_sinatra_app"
69
64
 
70
- require "sinatra/base"
71
- require "sinatra/advanced_routes"
72
-
73
- class Foo < Sinatra::Base
74
- register Sinatra::AdvancedRoutes
75
- end
65
+ SomeSinatraApp.each_route do |route|
66
+ puts "-" * 20
67
+ puts route.app.name # "SomeSinatraApp"
68
+ puts route.path # that's the path given as argument to get and akin
69
+ puts route.verb # get / head / post / put / delete
70
+ puts route.file # "some_sinatra_app.rb" or something
71
+ puts route.line # the line number of the get/post/... statement
72
+ puts route.pattern # that's the pattern internally used by sinatra
73
+ puts route.keys # keys given when route was defined
74
+ puts route.conditions # conditions given when route was defined
75
+ puts route.block # the route's closure
76
+ end
77
+ ```
78
+
79
+ Some of that fields (like conditions or pattern) can be changed, which will take immediate effect on the routing.
@@ -0,0 +1 @@
1
+ require 'sinatra/advanced_routes'
@@ -1,10 +1,16 @@
1
1
  require File.expand_path("../../spec_helper", __FILE__)
2
2
 
3
+ set :environment, :test
4
+
3
5
  describe Sinatra::AdvancedRoutes do
4
- before { app :AdvancedRoutes }
5
- it_should_behave_like 'sinatra'
6
6
 
7
- [:get, :head, :post, :put, :delete].each do |verb|
7
+ def app
8
+ Sinatra::Application
9
+ end
10
+
11
+ before { mock_app { register Sinatra::AdvancedRoutes }}
12
+
13
+ [:head, :get, :post, :put, :delete].each do |verb|
8
14
  describe "HTTP #{verb.to_s.upcase}" do
9
15
 
10
16
  describe "activation" do
@@ -18,7 +24,7 @@ describe Sinatra::AdvancedRoutes do
18
24
  browse_route(verb, "/foo").should_not be_ok
19
25
  end
20
26
 
21
- it "is able to deacitvate routes from a before filter" do
27
+ it "is able to deactivate routes from a before filter" do
22
28
  route = define_route(verb, "/foo") { "bar" }
23
29
  app.before { route.deactivate }
24
30
  route.should be_active
@@ -91,4 +97,13 @@ describe Sinatra::AdvancedRoutes do
91
97
 
92
98
  end
93
99
  end
100
+
101
+ def define_route(verb, *args, &block)
102
+ app.send(verb, *args, &block)
103
+ end
104
+
105
+ def browse_route(verb, *args, &block)
106
+ send(verb, *args, &block)
107
+ last_response
108
+ end
94
109
  end
@@ -1,2 +1,10 @@
1
- require "sinatra/rspec/shared"
2
- require "sinatra/advanced_routes"
1
+ require 'sinatra'
2
+ require 'sinatra/test_helpers'
3
+ require 'sinatra/advanced_routes'
4
+ require 'rspec'
5
+ require 'rack/test'
6
+
7
+ RSpec.configure do |config|
8
+ config.include Rack::Test::Methods
9
+ config.include Sinatra::TestHelpers
10
+ end
metadata CHANGED
@@ -1,149 +1,164 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: sinatra-advanced-routes
3
- version: !ruby/object:Gem::Version
4
- hash: 9
5
- prerelease: false
6
- segments:
7
- - 0
8
- - 5
9
- - 1
10
- version: 0.5.1
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.5.2
5
+ prerelease:
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Konstantin Haase
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2010-07-16 00:00:00 +02:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
12
+ date: 2013-01-27 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
22
15
  name: monkey-lib
23
16
  prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
17
+ requirement: !ruby/object:Gem::Requirement
18
+ requirements:
27
19
  - - ~>
28
- - !ruby/object:Gem::Version
29
- hash: 11
30
- segments:
31
- - 0
32
- - 5
33
- - 0
20
+ - !ruby/object:Gem::Version
34
21
  version: 0.5.0
22
+ none: false
35
23
  type: :runtime
36
- version_requirements: *id001
37
- - !ruby/object:Gem::Dependency
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - ~>
27
+ - !ruby/object:Gem::Version
28
+ version: 0.5.0
29
+ none: false
30
+ - !ruby/object:Gem::Dependency
38
31
  name: sinatra-sugar
39
32
  prerelease: false
40
- requirement: &id002 !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
33
+ requirement: !ruby/object:Gem::Requirement
34
+ requirements:
43
35
  - - ~>
44
- - !ruby/object:Gem::Version
45
- hash: 11
46
- segments:
47
- - 0
48
- - 5
49
- - 0
36
+ - !ruby/object:Gem::Version
50
37
  version: 0.5.0
51
- type: :runtime
52
- version_requirements: *id002
53
- - !ruby/object:Gem::Dependency
54
- name: sinatra-test-helper
55
- prerelease: false
56
- requirement: &id003 !ruby/object:Gem::Requirement
57
38
  none: false
58
- requirements:
39
+ type: :runtime
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ requirements:
59
42
  - - ~>
60
- - !ruby/object:Gem::Version
61
- hash: 11
62
- segments:
63
- - 0
64
- - 5
65
- - 0
43
+ - !ruby/object:Gem::Version
66
44
  version: 0.5.0
45
+ none: false
46
+ - !ruby/object:Gem::Dependency
47
+ name: rack-test
48
+ prerelease: false
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ none: false
67
55
  type: :development
68
- version_requirements: *id003
69
- - !ruby/object:Gem::Dependency
70
- name: sinatra
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ! '>='
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
61
+ none: false
62
+ - !ruby/object:Gem::Dependency
63
+ name: rake
64
+ prerelease: false
65
+ requirement: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ none: false
71
+ type: :development
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ none: false
78
+ - !ruby/object:Gem::Dependency
79
+ name: sinatra-contrib
71
80
  prerelease: false
72
- requirement: &id004 !ruby/object:Gem::Requirement
81
+ requirement: !ruby/object:Gem::Requirement
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ none: false
87
+ type: :development
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ requirements:
90
+ - - ! '>='
91
+ - !ruby/object:Gem::Version
92
+ version: '0'
73
93
  none: false
74
- requirements:
94
+ - !ruby/object:Gem::Dependency
95
+ name: sinatra
96
+ prerelease: false
97
+ requirement: !ruby/object:Gem::Requirement
98
+ requirements:
75
99
  - - ~>
76
- - !ruby/object:Gem::Version
77
- hash: 15
78
- segments:
79
- - 1
80
- - 0
81
- version: "1.0"
100
+ - !ruby/object:Gem::Version
101
+ version: '1.0'
102
+ none: false
82
103
  type: :runtime
83
- version_requirements: *id004
84
- - !ruby/object:Gem::Dependency
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - ~>
107
+ - !ruby/object:Gem::Version
108
+ version: '1.0'
109
+ none: false
110
+ - !ruby/object:Gem::Dependency
85
111
  name: rspec
86
112
  prerelease: false
87
- requirement: &id005 !ruby/object:Gem::Requirement
88
- none: false
89
- requirements:
90
- - - ">="
91
- - !ruby/object:Gem::Version
92
- hash: 27
93
- segments:
94
- - 1
95
- - 3
96
- - 0
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ! '>='
116
+ - !ruby/object:Gem::Version
97
117
  version: 1.3.0
118
+ none: false
98
119
  type: :development
99
- version_requirements: *id005
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ! '>='
123
+ - !ruby/object:Gem::Version
124
+ version: 1.3.0
125
+ none: false
100
126
  description: Make Sinatra routes first class objects (part of BigBand).
101
127
  email: konstantin.mailinglists@googlemail.com
102
128
  executables: []
103
-
104
129
  extensions: []
105
-
106
130
  extra_rdoc_files: []
107
-
108
- files:
131
+ files:
132
+ - lib/sinatra/advanced/routes.rb
109
133
  - lib/sinatra/advanced_routes.rb
110
134
  - spec/sinatra/advanced_routes_spec.rb
111
135
  - spec/spec_helper.rb
136
+ - NEWS.md
112
137
  - README.md
113
138
  - LICENSE
114
- has_rdoc: yard
115
139
  homepage: http://github.com/rkh/sinatra-advanced-routes
116
140
  licenses: []
117
-
118
141
  post_install_message:
119
142
  rdoc_options: []
120
-
121
- require_paths:
143
+ require_paths:
122
144
  - lib
123
- required_ruby_version: !ruby/object:Gem::Requirement
145
+ required_ruby_version: !ruby/object:Gem::Requirement
146
+ requirements:
147
+ - - ! '>='
148
+ - !ruby/object:Gem::Version
149
+ version: '0'
124
150
  none: false
125
- requirements:
126
- - - ">="
127
- - !ruby/object:Gem::Version
128
- hash: 3
129
- segments:
130
- - 0
131
- version: "0"
132
- required_rubygems_version: !ruby/object:Gem::Requirement
151
+ required_rubygems_version: !ruby/object:Gem::Requirement
152
+ requirements:
153
+ - - ! '>='
154
+ - !ruby/object:Gem::Version
155
+ version: '0'
133
156
  none: false
134
- requirements:
135
- - - ">="
136
- - !ruby/object:Gem::Version
137
- hash: 3
138
- segments:
139
- - 0
140
- version: "0"
141
157
  requirements: []
142
-
143
158
  rubyforge_project:
144
- rubygems_version: 1.3.7
159
+ rubygems_version: 1.8.24
145
160
  signing_key:
146
161
  specification_version: 3
147
162
  summary: Make Sinatra routes first class objects (part of BigBand).
148
163
  test_files: []
149
-
164
+ has_rdoc: yard