sinatra-jsonp 0.1.1 → 0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +33 -23
- data/lib/sinatra/jsonp.rb +17 -12
- metadata +3 -4
data/README.md
CHANGED
@@ -1,39 +1,49 @@
|
|
1
1
|
Sinatra::JSONP
|
2
2
|
=================
|
3
3
|
|
4
|
-
JSONP output for [Sinatra](http://sinatrarb.com). Automatically detects callback params
|
5
|
-
|
6
|
-
Works with [jQuery](http://jquery.com) [jQuery.getJSON](http://api.jquery.com/jQuery.getJSON/)
|
4
|
+
JSONP output helper for [Sinatra](http://sinatrarb.com). Automatically detects callback params and returns proper JSONP output.
|
5
|
+
If no callback params where detected it returns plain JSON.
|
6
|
+
Works with [jQuery](http://jquery.com) [jQuery.getJSON](http://api.jquery.com/jQuery.getJSON/) method out of the box.
|
7
|
+
|
7
8
|
|
8
9
|
Installation
|
9
10
|
------------
|
10
|
-
|
11
|
-
|
11
|
+
<pre>
|
12
|
+
sudo gem install sinatra-jsonp
|
13
|
+
</pre>
|
12
14
|
|
13
15
|
Usage
|
14
16
|
-----
|
17
|
+
<pre>
|
18
|
+
require "sinatra"
|
19
|
+
require "sinatra/jsonp"
|
20
|
+
|
21
|
+
get '/hello' do
|
22
|
+
data = ["hello","hi","hallo"]
|
23
|
+
JSONP data # JSONP is an alias for jsonp method
|
24
|
+
end
|
25
|
+
|
26
|
+
# define your own callback as second string param
|
27
|
+
get '/hi' do
|
28
|
+
data = ["hello","hi","hallo"]
|
29
|
+
jsonp data, 'functionA'
|
30
|
+
end
|
31
|
+
|
32
|
+
# same with symbol param
|
33
|
+
get '/hallo' do
|
34
|
+
data = ["hello","hi","hallo"]
|
35
|
+
jsonp data, :functionB
|
36
|
+
end
|
37
|
+
</pre>
|
38
|
+
|
39
|
+
Links
|
40
|
+
-----
|
15
41
|
|
16
|
-
|
17
|
-
|
18
|
-
require "sinatra"
|
19
|
-
require "sinatra/jsonp"
|
20
|
-
|
21
|
-
|
22
|
-
get '/users/:user' do
|
23
|
-
user = User[params[:user]]
|
24
|
-
JSONP user
|
25
|
-
end
|
26
|
-
|
27
|
-
# or define your own callback as second param
|
42
|
+
* [jQuery](http://jquery.com)
|
43
|
+
* [Sinatra](http://www.sinatrarb.com)
|
28
44
|
|
29
|
-
get '/' do
|
30
|
-
data = ["hello","hi","hallo"]
|
31
|
-
jsonp data, 'functionA'
|
32
|
-
end
|
33
45
|
|
34
46
|
License
|
35
47
|
-------
|
36
48
|
|
37
49
|
sinatra-jsonp is licensed under the MIT license.
|
38
|
-
|
39
|
-
|
data/lib/sinatra/jsonp.rb
CHANGED
@@ -3,19 +3,24 @@ require 'json'
|
|
3
3
|
|
4
4
|
module Sinatra
|
5
5
|
module Jsonp
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
6
|
+
def jsonp(*args)
|
7
|
+
if args.size > 0
|
8
|
+
data = args[0].to_json
|
9
|
+
if args.size > 1
|
10
|
+
callback = args[1].to_s
|
11
|
+
else
|
12
|
+
['callback','jscallback','jsonp'].each do |x|
|
13
|
+
callback = params.delete(x) if not callback
|
14
|
+
end
|
15
|
+
end
|
16
|
+
if callback
|
17
|
+
content_type :js
|
18
|
+
response = "#{callback}(#{data})"
|
19
|
+
else
|
20
|
+
response = data
|
21
|
+
end
|
22
|
+
response
|
11
23
|
end
|
12
|
-
if callback
|
13
|
-
content_type :js
|
14
|
-
response = "#{callback}(#{data})"
|
15
|
-
else
|
16
|
-
response = data
|
17
|
-
end
|
18
|
-
response
|
19
24
|
end
|
20
25
|
alias JSONP jsonp
|
21
26
|
end
|
metadata
CHANGED
@@ -4,9 +4,8 @@ version: !ruby/object:Gem::Version
|
|
4
4
|
prerelease: false
|
5
5
|
segments:
|
6
6
|
- 0
|
7
|
-
-
|
8
|
-
|
9
|
-
version: 0.1.1
|
7
|
+
- 2
|
8
|
+
version: "0.2"
|
10
9
|
platform: ruby
|
11
10
|
authors:
|
12
11
|
- Serg Podtynnyi
|
@@ -14,7 +13,7 @@ autorequire:
|
|
14
13
|
bindir: bin
|
15
14
|
cert_chain: []
|
16
15
|
|
17
|
-
date: 2010-
|
16
|
+
date: 2010-06-09 00:00:00 +04:00
|
18
17
|
default_executable:
|
19
18
|
dependencies:
|
20
19
|
- !ruby/object:Gem::Dependency
|