kazoo 0.0.1 → 0.0.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.tar.gz.sig CHANGED
Binary file
data/MIT-License ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License
2
+
3
+ Copyright (c) 2011 Jeremy Nicoll
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/Manifest CHANGED
@@ -1,5 +1,7 @@
1
+ MIT-License
1
2
  Manifest
2
3
  Rakefile
3
4
  lib/kazoo.rb
4
5
  lib/kazoo/router.rb
5
6
  lib/kazoo/sinatra.rb
7
+ readme.markdown
data/Rakefile CHANGED
@@ -2,7 +2,7 @@ require 'rubygems'
2
2
  require 'rake'
3
3
  require 'echoe'
4
4
 
5
- Echoe.new('kazoo', '0.0.1') do |p|
5
+ Echoe.new('kazoo', '0.0.2') do |p|
6
6
  p.description = "Make your Ruby Rack apps act like one"
7
7
  p.url = "http://rubykazoo.com"
8
8
  p.author = "Jeremy Nicoll"
data/kazoo.gemspec CHANGED
@@ -2,26 +2,25 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{kazoo}
5
- s.version = "0.0.1"
5
+ s.version = "0.0.2"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Jeremy Nicoll"]
9
9
  s.cert_chain = ["/Users/eltiare/keys/gem-public_cert.pem"]
10
- s.date = %q{2011-01-26}
10
+ s.date = %q{2011-01-28}
11
11
  s.description = %q{Make your Ruby Rack apps act like one}
12
12
  s.email = %q{jnicoll @nspam@ accentuate.me}
13
13
  s.extra_rdoc_files = ["lib/kazoo.rb", "lib/kazoo/router.rb", "lib/kazoo/sinatra.rb"]
14
- s.files = ["Manifest", "Rakefile", "lib/kazoo.rb", "lib/kazoo/router.rb", "lib/kazoo/sinatra.rb", "kazoo.gemspec"]
14
+ s.files = ["MIT-License", "Manifest", "Rakefile", "lib/kazoo.rb", "lib/kazoo/router.rb", "lib/kazoo/sinatra.rb", "readme.markdown", "kazoo.gemspec"]
15
15
  s.homepage = %q{http://rubykazoo.com}
16
- s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Kazoo"]
16
+ s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Kazoo", "--main", "readme.markdown"]
17
17
  s.require_paths = ["lib"]
18
18
  s.rubyforge_project = %q{kazoo}
19
- s.rubygems_version = %q{1.3.7}
19
+ s.rubygems_version = %q{1.4.2}
20
20
  s.signing_key = %q{/Users/eltiare/keys/gem-private_key.pem}
21
21
  s.summary = %q{Make your Ruby Rack apps act like one}
22
22
 
23
23
  if s.respond_to? :specification_version then
24
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
25
24
  s.specification_version = 3
26
25
 
27
26
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
data/lib/kazoo/router.rb CHANGED
@@ -28,6 +28,7 @@ class Kazoo::Router
28
28
  if matches = route[0].match(env['REQUEST_PATH'])
29
29
  env['HTTP_PREFIX'] = matches[0]
30
30
  env['PATH_INFO'] = env['PATH_INFO'].sub(route[0], '')
31
+ env['PATH_INFO'] = "/#{env['PATH_INFO']}" unless env['PATH_INFO'].match(%r'^/')
31
32
  response = route[1].call(env)
32
33
  return response if response[1]['X-Cascade'] != 'pass'
33
34
  end
data/lib/kazoo/sinatra.rb CHANGED
@@ -6,7 +6,7 @@ class Kazoo::Sinatra < Sinatra::Base
6
6
 
7
7
  if !options[:views] && data.is_a?(Symbol) && !data.to_s.match('/')
8
8
  data = :"#{decamelize(self.class.name)}/#{data}"
9
- options[:layout] ||= :'layouts/application'
9
+ options[:layout] = :'layouts/application' if options[:layout].nil?
10
10
  end
11
11
 
12
12
  if options[:layout] && !options[:layout].to_s.match('/')
data/readme.markdown ADDED
@@ -0,0 +1,60 @@
1
+ Kazoo
2
+ =====
3
+
4
+ Kazoo is a Ruby library that aims to make your Rack applications behave like one. So far, it's very minimal with a simple router and some methods added to Sinatra to make it easier to have multiple Sinatra apps act more cohesively. Please note the current version on this: 0.0.1. This is nowhere near finished! It is on rubygems.org so that you can install it by running:
5
+
6
+ gem install kazoo
7
+
8
+ The Kazoo router takes string paths and matches them to apps with no bells or whistles (yet). This is how you use it in a config.ru file:
9
+
10
+ require 'rubygems'
11
+ require 'kazoo'
12
+ require 'kazoo/router'
13
+
14
+ # Omitted code that pulls in Sinatra apps...
15
+
16
+ run Kazoo::Router.map {
17
+ match '/feeds', :to => Feeds
18
+ match '/control/feeds', :to => Control::Feeds
19
+ error_handler DogCatcher
20
+ }
21
+
22
+ Use the match method to specify the route and the :to option to specify the application. You can specify an app to handle errors (like page not found or server errors), though this feature is not complete right now. I will get this up and going shortly, and when I do I will update this readme.
23
+
24
+ The `Kazoo::Sinatra` class overrides the render method to automatically add the name of the app to the view path. So an app named `Feeds` will have the default base path of "./views/feeds". `Admin::Feeds` will have a base path of './views/admin/feeds'. You can override this by putting a slash in your template path. See the Sinatra docs for more details. The default layout is './views/layouts/application.#{template_engine}' though you can override this with the same rules as above.
25
+
26
+
27
+ In order to facilitate the fact that apps can be mounted at different paths, url helpers are included.
28
+
29
+ require 'kazoo/sinatra'
30
+
31
+ class Feeds < Kazoo::Sinatra
32
+
33
+ set_paths(
34
+ :index => '/',
35
+ :show => '/:id'
36
+ )
37
+
38
+ get path(:index) do
39
+ erubis :index
40
+ end
41
+
42
+ get path(:show) do
43
+ @feed = Feed.find(params[:id])
44
+ erubis :show
45
+ end
46
+
47
+ #alternatively, you can declare paths inline
48
+
49
+ get path(:show, '/:id') do
50
+ @feed = Feed.find(params[:id])
51
+ erubis :show
52
+ end
53
+
54
+ end
55
+
56
+ #.views/feeds/show.erubis
57
+ <p>This is the generated URL for this page: <%= url(:show, :id => @feed.id) %></p>
58
+
59
+
60
+ If you run into any problems or have suggestions, feel free to send a ticket to /dev/null. Or you can submit one at https://github.com/eltiare/kazoo/issues, your choice.
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kazoo
3
3
  version: !ruby/object:Gem::Version
4
- hash: 29
5
- prerelease: false
4
+ hash: 27
5
+ prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 1
10
- version: 0.0.1
9
+ - 2
10
+ version: 0.0.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Jeremy Nicoll
@@ -36,7 +36,7 @@ cert_chain:
36
36
  ZVeyFF4suKZEIEKi
37
37
  -----END CERTIFICATE-----
38
38
 
39
- date: 2011-01-26 00:00:00 -07:00
39
+ date: 2011-01-28 00:00:00 -07:00
40
40
  default_executable:
41
41
  dependencies: []
42
42
 
@@ -51,11 +51,13 @@ extra_rdoc_files:
51
51
  - lib/kazoo/router.rb
52
52
  - lib/kazoo/sinatra.rb
53
53
  files:
54
+ - MIT-License
54
55
  - Manifest
55
56
  - Rakefile
56
57
  - lib/kazoo.rb
57
58
  - lib/kazoo/router.rb
58
59
  - lib/kazoo/sinatra.rb
60
+ - readme.markdown
59
61
  - kazoo.gemspec
60
62
  has_rdoc: true
61
63
  homepage: http://rubykazoo.com
@@ -67,6 +69,8 @@ rdoc_options:
67
69
  - --inline-source
68
70
  - --title
69
71
  - Kazoo
72
+ - --main
73
+ - readme.markdown
70
74
  require_paths:
71
75
  - lib
72
76
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -91,7 +95,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
91
95
  requirements: []
92
96
 
93
97
  rubyforge_project: kazoo
94
- rubygems_version: 1.3.7
98
+ rubygems_version: 1.4.2
95
99
  signing_key:
96
100
  specification_version: 3
97
101
  summary: Make your Ruby Rack apps act like one
metadata.gz.sig CHANGED
Binary file