blindgaenger-sinatra-rest 0.3.1 → 0.3.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.
@@ -9,17 +9,17 @@ h2. Installation
9
9
 
10
10
  Guess what!
11
11
 
12
- sudo gem source --add http://gems.github.com
13
- sudo gem install blindgaenger-sinatra-rest
12
+ sudo gem source --add http://gems.github.com
13
+ sudo gem install blindgaenger-sinatra-rest
14
14
 
15
15
 
16
16
  h2. Usage
17
17
 
18
- Of course you need to require the gem in your sinatra application:
18
+ Of course you need to require the gem in your Sinatra application:
19
19
 
20
- require 'rubygems'
21
- require 'sinatra'
22
- require 'rest'
20
+ require 'rubygems'
21
+ require 'sinatra'
22
+ require 'sinatra/rest'
23
23
 
24
24
  It's very similar to defining routes in Sinatra (@get@, @post@, ...). But this
25
25
  time you don't define the routes by yourself, but use the model's name for
@@ -28,8 +28,8 @@ convention.
28
28
  For example, if the model's class is called @Person@ you only need to add this
29
29
  line:
30
30
 
31
- rest Person
32
-
31
+ rest Person
32
+
33
33
  Which will add the following RESTful routes to your application. (Note the
34
34
  pluralization of @Person@ to the @/people/*@ routes.)
35
35
 
@@ -47,27 +47,25 @@ on your model, *appropriate routing and redirecting* and *named url helpers*.
47
47
  For instance, you can imagine the following code to be added for the @/people@
48
48
  and @/people/:id@ routes.
49
49
 
50
- <pre>
51
- <code>
52
- # simply add this line
53
-
54
- rest Person, :renderer => :erb
50
+ <pre><code>
51
+ # simply add this line
52
+
53
+ rest Person, :renderer => :erb
55
54
 
56
- # and this is generated for you
55
+ # and this is generated for you
57
56
 
58
- get '/people' do
59
- @people = Person.all
60
- erb :"people/index", options
61
- end
57
+ get '/people' do
58
+ @people = Person.all
59
+ erb :"people/index", options
60
+ end
62
61
 
63
- put '/people/:id' do
64
- @person = Person.find_by_id(params[:id])
65
- redirect url_for_people_show(@person), 'person updated'
66
- end
62
+ put '/people/:id' do
63
+ @person = Person.find_by_id(params[:id])
64
+ redirect url_for_people_show(@person), 'person updated'
65
+ end
67
66
 
68
- # further restful routes for Person ...
69
- </code>
70
- </pre>
67
+ # further restful routes for Person ...
68
+ </code></pre>
71
69
 
72
70
  That's only half the truth! The routes are generated dynamically, so all
73
71
  defaults can be overridden (the behaviour, after/before callbacks, used renderer,
@@ -3,6 +3,11 @@ module Stone
3
3
  def find_by_id(id)
4
4
  get(id)
5
5
  end
6
+
7
+ def delete(id)
8
+ model = self.find_by_id(id)
9
+ model.destroy if model
10
+ end
6
11
  end
7
12
  end
8
13
 
@@ -11,14 +16,22 @@ module DataMapper
11
16
  def find_by_id(id)
12
17
  get(id)
13
18
  end
19
+
20
+ def delete(id)
21
+ model = self.find_by_id(id)
22
+ model.destroy if model
23
+ end
14
24
  end
15
25
  end
16
26
 
17
27
  module ActiveRecord
18
- module Base
19
- def find_by_id(id)
20
- first(id)
28
+ class Base
29
+ class << self
30
+ def find_by_id(id)
31
+ find(id)
32
+ end
21
33
  end
22
34
  end
23
35
  end
24
36
 
37
+
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: blindgaenger-sinatra-rest
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - blindgaenger
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-04-26 00:00:00 -07:00
12
+ date: 2009-09-25 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -59,6 +59,7 @@ files:
59
59
  - test/views/people/show.haml
60
60
  has_rdoc: "false"
61
61
  homepage: http://github.com/blindgaenger/sinatra-rest
62
+ licenses:
62
63
  post_install_message:
63
64
  rdoc_options: []
64
65
 
@@ -79,7 +80,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
79
80
  requirements: []
80
81
 
81
82
  rubyforge_project:
82
- rubygems_version: 1.2.0
83
+ rubygems_version: 1.3.5
83
84
  signing_key:
84
85
  specification_version: 2
85
86
  summary: Generates RESTful routes for the models of a Sinatra application (ActiveRecord, DataMapper, Stone)