sinatra-jsonp 0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/README.md +33 -0
  2. data/lib/sinatra/jsonp.rb +23 -0
  3. metadata +87 -0
data/README.md ADDED
@@ -0,0 +1,33 @@
1
+ Sinatra::JSONP
2
+ =================
3
+
4
+ JSONP output for [Sinatra](http://sinatrarb.com). Automatically detects callback params
5
+ and returns proper JSONP output. If no callback params where detected returns plain JSON.
6
+ Works with [jQuery](http://jquery.com) [jQuery.getJSON](http://api.jquery.com/jQuery.getJSON/) function out of the box.
7
+
8
+ Installation
9
+ ------------
10
+
11
+ gem install sinatra-jsonp
12
+
13
+ Usage
14
+ -----
15
+
16
+ Simple example:
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
28
+
29
+ get '/' do
30
+ data = ["hello","hi","hallo"]
31
+ jsonp data, 'functionA'
32
+ end
33
+
@@ -0,0 +1,23 @@
1
+ require 'sinatra/base'
2
+ require 'json'
3
+
4
+ module Sinatra
5
+ module Jsonp
6
+ # Format data according to request JSON/JSONP
7
+ def jsonp(obj, callback = nil)
8
+ data = obj.to_json
9
+ ['callback','jscallback','jsonp'].each do |x|
10
+ callback = params.delete(x) if not callback
11
+ end
12
+ if callback
13
+ content_type :js
14
+ response = "#{callback}(#{data})"
15
+ else
16
+ response = data
17
+ end
18
+ response
19
+ end
20
+ alias JSONP jsonp
21
+ end
22
+ helpers Jsonp
23
+ end
metadata ADDED
@@ -0,0 +1,87 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: sinatra-jsonp
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 1
8
+ version: "0.1"
9
+ platform: ruby
10
+ authors:
11
+ - Serg Podtynnyi
12
+ autorequire:
13
+ bindir: bin
14
+ cert_chain: []
15
+
16
+ date: 2010-05-03 00:00:00 +04:00
17
+ default_executable:
18
+ dependencies:
19
+ - !ruby/object:Gem::Dependency
20
+ name: sinatra
21
+ prerelease: false
22
+ requirement: &id001 !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ segments:
27
+ - 1
28
+ - 0
29
+ version: "1.0"
30
+ type: :runtime
31
+ version_requirements: *id001
32
+ - !ruby/object:Gem::Dependency
33
+ name: json
34
+ prerelease: false
35
+ requirement: &id002 !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ~>
38
+ - !ruby/object:Gem::Version
39
+ segments:
40
+ - 1
41
+ - 4
42
+ version: "1.4"
43
+ type: :runtime
44
+ version_requirements: *id002
45
+ description: Simple extension to produce JSONP/JSON output
46
+ email: serg.podtynnyi@gmail.com
47
+ executables: []
48
+
49
+ extensions: []
50
+
51
+ extra_rdoc_files: []
52
+
53
+ files:
54
+ - lib/sinatra/jsonp.rb
55
+ - README.md
56
+ has_rdoc: true
57
+ homepage: http://github.com/shtirlic/sinatra-jsonp
58
+ licenses: []
59
+
60
+ post_install_message:
61
+ rdoc_options: []
62
+
63
+ require_paths:
64
+ - lib
65
+ required_ruby_version: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ segments:
70
+ - 0
71
+ version: "0"
72
+ required_rubygems_version: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ segments:
77
+ - 0
78
+ version: "0"
79
+ requirements: []
80
+
81
+ rubyforge_project:
82
+ rubygems_version: 1.3.6
83
+ signing_key:
84
+ specification_version: 3
85
+ summary: Simple extension to produce JSONP/JSON output
86
+ test_files: []
87
+