nyny 3.4.2 → 3.4.3
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.
- checksums.yaml +4 -4
- data/CHANGELOG +8 -0
- data/README.md +33 -6
- data/lib/nyny/app.rb +0 -1
- data/lib/nyny/base.rb +7 -3
- data/lib/nyny/version.rb +1 -1
- data/nyny.gemspec +1 -1
- data/spec/app_spec.rb +15 -0
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0cd8ab47b272401fcc5e5a7f719c57a041f0f662
|
4
|
+
data.tar.gz: 22e425e40965eb74639305d03305295bbf8034ee
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dcdbbbb3939394d04021a4f75fecf17c38735f8c4c1c4ed02568c7e8bbb37b5949d96b633d8f76a20d3bf949db61733f4eac1d07bc7160b3af6b4b878f6e4f01
|
7
|
+
data.tar.gz: 7a725faaf6a0f455e3a0d9e15816ba0f2756ac924ba9684f2daca33b5653886bf9c04cb0c204fd9fe163cbed32825187b1c986a252211a25ea24e1c94b985464
|
data/CHANGELOG
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
3.4.3
|
2
|
+
- Do not use Rack::Chunked by default, leave the option to the user
|
3
|
+
- Expose Rack's map method for low level url mapping
|
4
|
+
- Bump ActionPack dependency
|
5
|
+
|
6
|
+
3.4.2
|
7
|
+
- Add support for passing an app directly to the namespace
|
8
|
+
|
1
9
|
3.4.1
|
2
10
|
- Fix a bug when a NYNY app is used inside a namespace
|
3
11
|
|
data/README.md
CHANGED
@@ -6,6 +6,15 @@
|
|
6
6
|
[](https://codeclimate.com/repos/521b7ee513d637348712864a/feed)
|
7
7
|
[](http://badge.fury.io/rb/nyny)
|
8
8
|
|
9
|
+
Install the gem:
|
10
|
+
|
11
|
+
```bash
|
12
|
+
gem install nyny
|
13
|
+
```
|
14
|
+
|
15
|
+
Create the `myapp.rb` file:
|
16
|
+
|
17
|
+
|
9
18
|
```ruby
|
10
19
|
# myapp.rb
|
11
20
|
|
@@ -19,12 +28,6 @@ end
|
|
19
28
|
App.run!
|
20
29
|
```
|
21
30
|
|
22
|
-
Install the gem:
|
23
|
-
|
24
|
-
```bash
|
25
|
-
gem install nyny
|
26
|
-
```
|
27
|
-
|
28
31
|
Run the file:
|
29
32
|
|
30
33
|
```bash
|
@@ -43,6 +46,7 @@ Open the browser at [http://localhost:9292](http://localhost:9292)
|
|
43
46
|
- [Running](#running)
|
44
47
|
- [Defining routes](#defining-routes)
|
45
48
|
- [Request scope](#request-scope)
|
49
|
+
- [Maps](#maps)
|
46
50
|
- [Namespaces](#namespaces)
|
47
51
|
- [Templates](#templates)
|
48
52
|
- [Filters](#filters)
|
@@ -256,6 +260,29 @@ This means that several methods/objects available inside that block:
|
|
256
260
|
- `halt` - allows you to instantly return a response, interrupting current
|
257
261
|
handler execution (see [halt][halt-definition])
|
258
262
|
|
263
|
+
## Maps
|
264
|
+
NYNY uses a Rack::Builder underneath to generate a proper Rack app when it is
|
265
|
+
being run. Because of that, NYNY exposes the Builder's `map` method to allow
|
266
|
+
fine grained low-level url mapping. The most common use case for that is to
|
267
|
+
integrate sprockets into a NYNY app:
|
268
|
+
|
269
|
+
```ruby
|
270
|
+
class AppWithAsses < NYNY::App
|
271
|
+
map '/assets' do
|
272
|
+
environment = Sprockets::Environment.new
|
273
|
+
environment.append_path 'app/assets/javascripts'
|
274
|
+
environment.append_path 'app/assets/stylesheets'
|
275
|
+
run environment
|
276
|
+
end
|
277
|
+
|
278
|
+
get '/' do
|
279
|
+
'hello'
|
280
|
+
end
|
281
|
+
```
|
282
|
+
|
283
|
+
Please note that none of the NYNY's routing helpers are being exposed in a
|
284
|
+
map block, the block gets executed in the context of a `Rack::Builder`
|
285
|
+
(stuff you're used to see in a config.ru file)
|
259
286
|
|
260
287
|
## Namespaces
|
261
288
|
You can define namespaces for routes in NYNY. Each namespace is an isolated
|
data/lib/nyny/app.rb
CHANGED
data/lib/nyny/base.rb
CHANGED
@@ -16,7 +16,7 @@ module NYNY
|
|
16
16
|
inheritable :after_init_hooks, []
|
17
17
|
inheritable :default_constraints, {}
|
18
18
|
inheritable :middlewares, []
|
19
|
-
inheritable :
|
19
|
+
inheritable :url_map, {}
|
20
20
|
|
21
21
|
def initialize app=nil
|
22
22
|
self.class.before_init_hooks.each {|h| h.call(self)}
|
@@ -37,7 +37,7 @@ module NYNY
|
|
37
37
|
def initialize_builder
|
38
38
|
builder = Rack::Builder.new
|
39
39
|
self.class.middlewares.each { |m, args, blk| builder.use m, *args, &blk }
|
40
|
-
self.class.
|
40
|
+
self.class.url_map.each {|url, block| builder.map(url, &block) }
|
41
41
|
builder
|
42
42
|
end
|
43
43
|
|
@@ -55,6 +55,10 @@ module NYNY
|
|
55
55
|
end
|
56
56
|
end
|
57
57
|
|
58
|
+
def map url, &block
|
59
|
+
url_map[url] = block
|
60
|
+
end
|
61
|
+
|
58
62
|
def namespace url, app=nil, &block
|
59
63
|
scope = self.scope_class
|
60
64
|
|
@@ -63,7 +67,7 @@ module NYNY
|
|
63
67
|
class_eval(&block)
|
64
68
|
end
|
65
69
|
|
66
|
-
map
|
70
|
+
map (url) { use app }
|
67
71
|
end
|
68
72
|
|
69
73
|
def define_route path, options, &block
|
data/lib/nyny/version.rb
CHANGED
data/nyny.gemspec
CHANGED
@@ -21,7 +21,7 @@ Gem::Specification.new do |spec|
|
|
21
21
|
spec.add_dependency "rack-contrib", "~> 1.1.0"
|
22
22
|
spec.add_dependency "tilt", "~> 1.4.1"
|
23
23
|
spec.add_dependency "better_errors", "~> 1.1.0"
|
24
|
-
spec.add_dependency "actionpack", "~> 4.
|
24
|
+
spec.add_dependency "actionpack", "~> 4.1.6"
|
25
25
|
spec.add_development_dependency "bundler", "~> 1.3"
|
26
26
|
spec.add_development_dependency "rake"
|
27
27
|
spec.add_development_dependency "rspec", "~> 2.14.1"
|
data/spec/app_spec.rb
CHANGED
@@ -14,6 +14,21 @@ describe App do
|
|
14
14
|
res[2].should respond_to(:each)
|
15
15
|
end
|
16
16
|
|
17
|
+
it 'can use the builder map method' do
|
18
|
+
app = mock_app do
|
19
|
+
map '/map' do
|
20
|
+
run lambda {|env| [200, {}, ["map"]]}
|
21
|
+
end
|
22
|
+
|
23
|
+
get '/' do
|
24
|
+
'root'
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
app.get('/').body.should == 'root'
|
29
|
+
app.get('/map').body.should == 'map'
|
30
|
+
end
|
31
|
+
|
17
32
|
it 'should return 404 for non-matched routes' do
|
18
33
|
response = app.get random_url
|
19
34
|
response.status.should == 404
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nyny
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.4.
|
4
|
+
version: 3.4.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrei Lisnic
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-08
|
11
|
+
date: 2014-10-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rack-contrib
|
@@ -58,14 +58,14 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 4.
|
61
|
+
version: 4.1.6
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: 4.
|
68
|
+
version: 4.1.6
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: bundler
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|