sinatra-extension 0.5.0 → 1.0

Sign up to get free protection for your applications and to get access to all the features.
metadata CHANGED
@@ -1,149 +1,55 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: sinatra-extension
3
- version: !ruby/object:Gem::Version
4
- hash: 11
5
- prerelease: false
6
- segments:
7
- - 0
8
- - 5
9
- - 0
10
- version: 0.5.0
3
+ version: !ruby/object:Gem::Version
4
+ version: '1.0'
5
+ prerelease:
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Konstantin Haase
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2010-07-09 00:00:00 +02:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
22
- name: monkey-lib
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
27
- - - ~>
28
- - !ruby/object:Gem::Version
29
- hash: 11
30
- segments:
31
- - 0
32
- - 5
33
- - 0
34
- version: 0.5.0
35
- type: :runtime
36
- version_requirements: *id001
37
- - !ruby/object:Gem::Dependency
38
- name: sinatra-sugar
39
- prerelease: false
40
- requirement: &id002 !ruby/object:Gem::Requirement
12
+ date: 2011-10-28 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: sinatra-contrib
16
+ requirement: &2158670240 !ruby/object:Gem::Requirement
41
17
  none: false
42
- requirements:
43
- - - ~>
44
- - !ruby/object:Gem::Version
45
- hash: 11
46
- segments:
47
- - 0
48
- - 5
49
- - 0
50
- version: 0.5.0
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
51
22
  type: :runtime
52
- version_requirements: *id002
53
- - !ruby/object:Gem::Dependency
54
- name: sinatra-test-helper
55
23
  prerelease: false
56
- requirement: &id003 !ruby/object:Gem::Requirement
57
- none: false
58
- requirements:
59
- - - ~>
60
- - !ruby/object:Gem::Version
61
- hash: 11
62
- segments:
63
- - 0
64
- - 5
65
- - 0
66
- version: 0.5.0
67
- type: :development
68
- version_requirements: *id003
69
- - !ruby/object:Gem::Dependency
70
- name: sinatra
71
- prerelease: false
72
- requirement: &id004 !ruby/object:Gem::Requirement
73
- none: false
74
- requirements:
75
- - - ~>
76
- - !ruby/object:Gem::Version
77
- hash: 15
78
- segments:
79
- - 1
80
- - 0
81
- version: "1.0"
82
- type: :runtime
83
- version_requirements: *id004
84
- - !ruby/object:Gem::Dependency
85
- name: rspec
86
- prerelease: false
87
- requirement: &id005 !ruby/object:Gem::Requirement
88
- none: false
89
- requirements:
90
- - - ">="
91
- - !ruby/object:Gem::Version
92
- hash: 27
93
- segments:
94
- - 1
95
- - 3
96
- - 0
97
- version: 1.3.0
98
- type: :development
99
- version_requirements: *id005
100
- description: Mixin to ease Sinatra extension development (part of BigBand).
24
+ version_requirements: *2158670240
25
+ description: ! 'Dummy gem, sinatra-extension is now part of sinatra-contrib: http://www.sinatrarb.com/contrib/'
101
26
  email: konstantin.mailinglists@googlemail.com
102
27
  executables: []
103
-
104
28
  extensions: []
105
-
106
29
  extra_rdoc_files: []
107
-
108
- files:
109
- - lib/sinatra/extension.rb
110
- - spec/sinatra/extension_spec.rb
111
- - spec/spec_helper.rb
112
- - README.md
113
- - LICENSE
114
- has_rdoc: yard
115
- homepage: http://github.com/rkh/sinatra-extension
30
+ files: []
31
+ homepage: http://github.com/sinatra/sinatra-contrib
116
32
  licenses: []
117
-
118
33
  post_install_message:
119
34
  rdoc_options: []
120
-
121
- require_paths:
35
+ require_paths:
122
36
  - lib
123
- required_ruby_version: !ruby/object:Gem::Requirement
37
+ required_ruby_version: !ruby/object:Gem::Requirement
124
38
  none: false
125
- requirements:
126
- - - ">="
127
- - !ruby/object:Gem::Version
128
- hash: 3
129
- segments:
130
- - 0
131
- version: "0"
132
- required_rubygems_version: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - ! '>='
41
+ - !ruby/object:Gem::Version
42
+ version: '0'
43
+ required_rubygems_version: !ruby/object:Gem::Requirement
133
44
  none: false
134
- requirements:
135
- - - ">="
136
- - !ruby/object:Gem::Version
137
- hash: 3
138
- segments:
139
- - 0
140
- version: "0"
45
+ requirements:
46
+ - - ! '>='
47
+ - !ruby/object:Gem::Version
48
+ version: '0'
141
49
  requirements: []
142
-
143
50
  rubyforge_project:
144
- rubygems_version: 1.3.7
51
+ rubygems_version: 1.8.10
145
52
  signing_key:
146
53
  specification_version: 3
147
- summary: Mixin to ease Sinatra extension development (part of BigBand).
54
+ summary: Dummy gem, sinatra-extension is now part of sinatra-contrib.
148
55
  test_files: []
149
-
data/LICENSE DELETED
@@ -1,27 +0,0 @@
1
- copyright (c) 2010 Konstantin Haase. All rights reserved.
2
-
3
- Developed by: Konstantin Haase
4
- http://github.com/rkh/big_band
5
-
6
- Permission is hereby granted, free of charge, to any person obtaining a copy
7
- of this software and associated documentation files (the "Software"), to
8
- deal with the Software without restriction, including without limitation the
9
- rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
10
- sell copies of the Software, and to permit persons to whom the Software is
11
- furnished to do so, subject to the following conditions:
12
- 1. Redistributions of source code must retain the above copyright notice,
13
- this list of conditions and the following disclaimers.
14
- 2. Redistributions in binary form must reproduce the above copyright
15
- notice, this list of conditions and the following disclaimers in the
16
- documentation and/or other materials provided with the distribution.
17
- 3. Neither the name of Konstantin Haase, nor the names of other contributors
18
- may be used to endorse or promote products derived from this Software without
19
- specific prior written permission.
20
-
21
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
24
- CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
25
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
26
- FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
27
- WITH THE SOFTWARE.
data/README.md DELETED
@@ -1,41 +0,0 @@
1
- Sinatra::Extension
2
- ==================
3
-
4
- Mixin to ease [Sinatra](http://sinatrarb.com) extension development.
5
-
6
- BigBand
7
- -------
8
-
9
- Sinatra::Extension is part of the [BigBand](http://github.com/rkh/big_band) stack.
10
- Check it out if you are looking for other fancy Sinatra extensions.
11
-
12
- Installation
13
- ------------
14
-
15
- gem install sinatra-extension
16
-
17
- Example
18
- -------
19
-
20
- module MyFancyExtension
21
- extend Sinatra::Extension
22
-
23
- enable :session
24
-
25
- get '/foo' do
26
- "bar"
27
- end
28
-
29
- # there also is on_set and on_disable
30
- on_enable :fancy_mode do
31
- use VeryFancyMiddleware
32
- get '/fancy' do
33
- "fancy!"
34
- end
35
- end
36
- end
37
-
38
- class MyApp < Sinatra::Base
39
- register MyFancyExtension
40
- enable :fancy_mode
41
- end
@@ -1,84 +0,0 @@
1
- require 'sinatra/base'
2
- require 'sinatra/sugar'
3
- require 'monkey-lib'
4
-
5
- module Sinatra
6
- module Delegator
7
- def self.delegate(*methods)
8
- methods.each do |method_name|
9
- eval <<-RUBY, binding, '(__DELEGATE__)', 1
10
- def #{method_name}(*args, &b) sinatra_application.send(#{method_name.inspect}, *args, &b) end
11
- private #{method_name.inspect}
12
- RUBY
13
- end
14
- end
15
-
16
- delegate(*private_instance_methods(false))
17
-
18
- def sinatra_application
19
- ::Sinatra::Application
20
- end
21
- end
22
-
23
- module Extension
24
- BasicObject = Object unless defined? BasicObject
25
- class MethodRecorder < BasicObject
26
- def initialize(list) @calls = list end
27
- def method_missing(*a, &b) @calls << [a, b] end
28
- end
29
-
30
- include Delegator
31
-
32
- def method_calls
33
- @method_calls ||= []
34
- end
35
-
36
- def register_hooks
37
- @register_hooks ||= []
38
- end
39
-
40
- def on_register(&block)
41
- register_hooks << block
42
- end
43
-
44
- def on_set(option, default_value = nil, &block)
45
- mod = Module.new
46
- mod.extend Sinatra::Extension
47
- define_method(option) { default_value }
48
- define_method("#{option}?") { !!__send__(option) }
49
- define_method("#{option}=") do |value|
50
- metadef(option) { value }
51
- metadef("#{option}?") { !!value }
52
- instance_yield block
53
- end
54
- end
55
-
56
- def on_disable(option, &block)
57
- on_set(option, true) { instance_yield block unless __send__ option }
58
- end
59
-
60
- def on_enable(option, &block)
61
- on_set(option, false) { instance_yield block if __send__ option }
62
- end
63
-
64
- def register(*extensions)
65
- on_register { register(*extensions) }
66
- end
67
-
68
- def configure(*args, &block)
69
- on_register do
70
- configure(*args) { |klass| klass.instance_yield block }
71
- end
72
- end
73
-
74
- def registered(klass)
75
- register Sinatra::Sugar
76
- method_calls.each { |a,b| klass.__send__(*a, &b) }
77
- register_hooks.each { |hook| klass.instance_yield hook }
78
- end
79
-
80
- def sinatra_application
81
- @sinatra_application ||= MethodRecorder.new method_calls
82
- end
83
- end
84
- end
@@ -1,88 +0,0 @@
1
- require File.expand_path("../../spec_helper", __FILE__)
2
-
3
- module Sinatra
4
- module OtherExtension
5
- end
6
-
7
- module ExampleExtension
8
- extend Sinatra::Extension
9
- register OtherExtension
10
-
11
- %w[get put post delete].each { |verb| __send__(verb, '/foo') { 'bar' } }
12
-
13
- configure(:test) { set :foo, 42 }
14
- configure(:development) { set :foo, 'oh no' }
15
-
16
- on_register do
17
- set :bar,:blah
18
- end
19
-
20
- helpers do
21
- def foo(value) value end
22
- end
23
-
24
- set :counter, 0
25
- on_set(:trigger) { set :counter, counter + 1 }
26
-
27
- on_enable :special_foo do
28
- helpers do
29
- def foo(value) 42 end
30
- end
31
- end
32
- end
33
- end
34
-
35
- describe Sinatra::Extension do
36
- before { app :ExampleExtension }
37
- it_should_behave_like 'sinatra'
38
-
39
- it 'should forward register correctly' do
40
- app.should be_a(Sinatra::OtherExtension)
41
- end
42
-
43
- %w[head get put post delete].each do |verb|
44
- it "should forward #{verb} correctly" do
45
- browse_route(verb, '/foo').should be_ok
46
- last_response.body.should == 'bar' unless verb == 'head'
47
- end
48
- end
49
-
50
- it "should forward configure correctly" do
51
- app.should be_test # just to be sure
52
- app.foo.should == 42
53
- end
54
-
55
- it "should trigger on_register" do
56
- app.bar.should == :blah
57
- end
58
-
59
- it "should forward helpers correctly" do
60
- app.new.foo(10).should == 10
61
- end
62
-
63
- it "should trigger on_set block" do
64
- app.set :counter, 0
65
- app.counter.should == 0
66
- app.enable :trigger
67
- app.counter.should == 1
68
- app.disable :trigger
69
- app.counter.should == 2
70
- app.set :trigger, :foo
71
- app.counter.should == 3
72
- app.trigger = 42
73
- app.counter.should == 4
74
- end
75
-
76
- it "should apply on_enable blocks only if given option has been enabled" do
77
- app.should_not be_special_foo
78
- app.special_foo.should be_false
79
- app.new.foo(10).should == 10
80
- app.disable :special_foo
81
- app.should_not be_special_foo
82
- app.special_foo.should be_false
83
- app.new.foo(10).should == 10
84
- app.enable :special_foo
85
- app.should be_special_foo
86
- app.new.foo(10).should == 42
87
- end
88
- end
@@ -1,2 +0,0 @@
1
- require "sinatra/rspec/shared"
2
- require "sinatra/extension"