rack-api 1.0.0 → 1.0.1
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/Gemfile.lock +1 -1
- data/README.rdoc +41 -1
- data/examples/config.ru +14 -0
- data/lib/rack/api/runner.rb +1 -0
- data/lib/rack/api/version.rb +1 -1
- data/spec/rack-api/method_delegation_spec.rb +5 -0
- data/spec/rack-api/runner_spec.rb +1 -1
- metadata +20 -19
data/Gemfile.lock
CHANGED
data/README.rdoc
CHANGED
@@ -24,11 +24,51 @@ Create web app APIs that respond to one or more formats using an elegant DSL.
|
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
27
|
+
=== Starting a server with Rack
|
28
|
+
|
29
|
+
To run Rack::API through Rack (`config.ru`), you just need to provide your class. If
|
30
|
+
you're using the DSL format, you need to provide the Rack::API class.
|
31
|
+
|
32
|
+
require "rack/api"
|
33
|
+
run Rack::API
|
34
|
+
|
35
|
+
Otherwise, just provide your custom class.
|
36
|
+
|
37
|
+
require "rack/api"
|
38
|
+
|
39
|
+
class MyApp < Rack::API
|
40
|
+
get "/" do
|
41
|
+
{:message => "Hello World"}
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
run MyApp
|
46
|
+
|
47
|
+
Now, you can execute `rackup` and your app will be available through the 9292 port.
|
48
|
+
|
49
|
+
$ rackup -p 3000
|
50
|
+
[2011-08-05 20:38:11] INFO WEBrick 1.3.1
|
51
|
+
[2011-08-05 20:38:11] INFO ruby 1.9.3 (2011-07-31) [x86_64-darwin11.0.0]
|
52
|
+
[2011-08-05 20:38:11] INFO WEBrick::HTTPServer#start: pid=95318 port=3000
|
53
|
+
|
54
|
+
$ curl localhost:3000
|
55
|
+
{"message" => "Hello World"}
|
56
|
+
|
57
|
+
You can also run other application servers that recognize Rack, like Thin.
|
58
|
+
|
59
|
+
$ thin -R config.ru start
|
60
|
+
>> Thin web server (v1.2.11 codename Bat-Shit Crazy)
|
61
|
+
>> Maximum connections set to 1024
|
62
|
+
>> Listening on 0.0.0.0:3000, CTRL+C to stop
|
63
|
+
|
64
|
+
$ curl localhost:9292
|
65
|
+
{"message" => "Hello World"}
|
66
|
+
|
27
67
|
=== Rails Integration
|
28
68
|
|
29
69
|
First, set up your Gemfile like this:
|
30
70
|
|
31
|
-
gem "rack-api", "~>
|
71
|
+
gem "rack-api", "~> 1.0", :require => "rack/api"
|
32
72
|
|
33
73
|
Create your API somewhere. In this example, we'll add it to <tt>lib/api.rb</tt>.
|
34
74
|
|
data/examples/config.ru
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
$:.push(File.dirname(__FILE__) + "/../lib")
|
2
|
+
|
3
|
+
# Just run `ruby examples/basic_auth.rb` and then use something like
|
4
|
+
# `curl -u admin:test http://localhost:2345/api/v1/`.
|
5
|
+
|
6
|
+
require "rack/api"
|
7
|
+
|
8
|
+
class Sample < Rack::API
|
9
|
+
get "/" do
|
10
|
+
{:message => "Hello World, from Rack!"}
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
run Sample
|
data/lib/rack/api/runner.rb
CHANGED
data/lib/rack/api/version.rb
CHANGED
@@ -10,4 +10,9 @@ describe Rack::API, "delegators" do
|
|
10
10
|
it { should respond_to(:helper) }
|
11
11
|
it { should respond_to(:default_url_options) }
|
12
12
|
it { should respond_to(:rescue_from) }
|
13
|
+
it { should respond_to(:get) }
|
14
|
+
it { should respond_to(:post) }
|
15
|
+
it { should respond_to(:put) }
|
16
|
+
it { should respond_to(:delete) }
|
17
|
+
it { should respond_to(:head) }
|
13
18
|
end
|
@@ -3,7 +3,7 @@ require "spec_helper"
|
|
3
3
|
describe Rack::API::Runner do
|
4
4
|
specify "sanity check for delegate methods" do
|
5
5
|
# remember to update spec/method_delegation_spec.rb
|
6
|
-
Rack::API::Runner::DELEGATE_METHODS.size.should ==
|
6
|
+
Rack::API::Runner::DELEGATE_METHODS.size.should == 13
|
7
7
|
end
|
8
8
|
|
9
9
|
it "responds to http methods" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rack-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2011-08-05 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rack
|
16
|
-
requirement: &
|
16
|
+
requirement: &70310986093920 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 1.0.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70310986093920
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rack-mount
|
27
|
-
requirement: &
|
27
|
+
requirement: &70310986093020 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 0.6.0
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70310986093020
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: activesupport
|
38
|
-
requirement: &
|
38
|
+
requirement: &70310986092500 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: 3.0.0
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70310986092500
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rspec
|
49
|
-
requirement: &
|
49
|
+
requirement: &70310986107140 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '2.6'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70310986107140
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: rack-test
|
60
|
-
requirement: &
|
60
|
+
requirement: &70310986106240 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ~>
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: 0.5.7
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70310986106240
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: redis
|
71
|
-
requirement: &
|
71
|
+
requirement: &70310986105420 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ~>
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: 2.2.0
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *70310986105420
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: rake
|
82
|
-
requirement: &
|
82
|
+
requirement: &70310986104560 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ~>
|
@@ -87,10 +87,10 @@ dependencies:
|
|
87
87
|
version: '0.9'
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *70310986104560
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
92
|
name: ruby-debug19
|
93
|
-
requirement: &
|
93
|
+
requirement: &70310986103800 !ruby/object:Gem::Requirement
|
94
94
|
none: false
|
95
95
|
requirements:
|
96
96
|
- - ! '>='
|
@@ -98,7 +98,7 @@ dependencies:
|
|
98
98
|
version: '0'
|
99
99
|
type: :development
|
100
100
|
prerelease: false
|
101
|
-
version_requirements: *
|
101
|
+
version_requirements: *70310986103800
|
102
102
|
description: Create web app APIs that respond to one or more formats using an elegant
|
103
103
|
DSL.
|
104
104
|
email:
|
@@ -114,6 +114,7 @@ files:
|
|
114
114
|
- README.rdoc
|
115
115
|
- Rakefile
|
116
116
|
- examples/basic_auth.rb
|
117
|
+
- examples/config.ru
|
117
118
|
- examples/controller.rb
|
118
119
|
- examples/custom_class.rb
|
119
120
|
- examples/custom_format.rb
|
@@ -178,7 +179,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
178
179
|
version: '0'
|
179
180
|
segments:
|
180
181
|
- 0
|
181
|
-
hash:
|
182
|
+
hash: 2596341377563388583
|
182
183
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
183
184
|
none: false
|
184
185
|
requirements:
|
@@ -187,7 +188,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
187
188
|
version: '0'
|
188
189
|
segments:
|
189
190
|
- 0
|
190
|
-
hash:
|
191
|
+
hash: 2596341377563388583
|
191
192
|
requirements: []
|
192
193
|
rubyforge_project:
|
193
194
|
rubygems_version: 1.8.6
|