sinatra-responder 0.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/.gitignore ADDED
@@ -0,0 +1,5 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
5
+ .rvmrc
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in sinatra-responder.gemspec
4
+ gemspec
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
@@ -0,0 +1,21 @@
1
+ require 'sinatra/respond_with'
2
+ module Sinatra
3
+ module Responder
4
+
5
+ def self.registered(app)
6
+ app.register Sinatra::RespondWith
7
+ end
8
+
9
+ # override Sinatra's route method
10
+ # so that all blocks automatically inheret
11
+ # the respond_to mechanism
12
+ def route(verb, path, opts={}, &block)
13
+ super(verb, path, opts) do
14
+ resource = instance_eval(&block)
15
+ respond_to do |format|
16
+ format.json { resource.nil? ? "{}" : resource.to_json }
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,5 @@
1
+ module Sinatra
2
+ module Responder
3
+ VERSION = "0.0.1"
4
+ end
5
+ end
@@ -0,0 +1,24 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "sinatra-responder/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "sinatra-responder"
7
+ s.version = Sinatra::Responder::VERSION
8
+ s.authors = ["Leo Shemesh"]
9
+ s.email = ["leoshemesh@gmail.com"]
10
+ s.homepage = ""
11
+ s.summary = %q{Small addition to sinatra's respond_with extension}
12
+ s.description = %q{This extension makes all sinatra routes automatically call to_json on whatever the routes block evaluates to}
13
+ s.rubyforge_project = "sinatra-responder"
14
+
15
+ s.add_dependency "sinatra-contrib"
16
+ s.add_development_dependency "json"
17
+ s.add_development_dependency "rspec"
18
+
19
+ s.files = `git ls-files`.split("\n")
20
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
21
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
22
+ s.require_paths = ["lib"]
23
+
24
+ end
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+
3
+ describe Sinatra::Responder do
4
+
5
+ before do
6
+ mock_app do
7
+ register Sinatra::Responder
8
+ get "/" do
9
+ { :a => "test" }
10
+ end
11
+ end
12
+ end
13
+
14
+ it "returns the resource as json" do
15
+ resource = { :a => "test" }
16
+ response = get "/", {}, "HTTP_ACCEPT" => "application/json"
17
+ response.body.should == resource.to_json
18
+ end
19
+
20
+ end
@@ -0,0 +1,11 @@
1
+ ENV['RACK_ENV'] = "test"
2
+
3
+ require File.join(File.dirname(__FILE__), '..', 'lib', 'sinatra', 'responder')
4
+ require 'sinatra/test_helpers'
5
+ require 'json'
6
+
7
+ RSpec.configure do |c|
8
+ c.include Sinatra::TestHelpers
9
+ end
10
+
11
+
metadata ADDED
@@ -0,0 +1,89 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: sinatra-responder
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Leo Shemesh
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2011-10-14 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: sinatra-contrib
16
+ requirement: &2151870400 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *2151870400
25
+ - !ruby/object:Gem::Dependency
26
+ name: json
27
+ requirement: &2151869480 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: *2151869480
36
+ - !ruby/object:Gem::Dependency
37
+ name: rspec
38
+ requirement: &2151868700 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: *2151868700
47
+ description: This extension makes all sinatra routes automatically call to_json on
48
+ whatever the routes block evaluates to
49
+ email:
50
+ - leoshemesh@gmail.com
51
+ executables: []
52
+ extensions: []
53
+ extra_rdoc_files: []
54
+ files:
55
+ - .gitignore
56
+ - Gemfile
57
+ - Rakefile
58
+ - lib/sinatra-responder/version.rb
59
+ - lib/sinatra/responder.rb
60
+ - sinatra-responder.gemspec
61
+ - spec/responder_spec.rb
62
+ - spec/spec_helper.rb
63
+ homepage: ''
64
+ licenses: []
65
+ post_install_message:
66
+ rdoc_options: []
67
+ require_paths:
68
+ - lib
69
+ required_ruby_version: !ruby/object:Gem::Requirement
70
+ none: false
71
+ requirements:
72
+ - - ! '>='
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
75
+ required_rubygems_version: !ruby/object:Gem::Requirement
76
+ none: false
77
+ requirements:
78
+ - - ! '>='
79
+ - !ruby/object:Gem::Version
80
+ version: '0'
81
+ requirements: []
82
+ rubyforge_project: sinatra-responder
83
+ rubygems_version: 1.8.10
84
+ signing_key:
85
+ specification_version: 3
86
+ summary: Small addition to sinatra's respond_with extension
87
+ test_files:
88
+ - spec/responder_spec.rb
89
+ - spec/spec_helper.rb