sinatra-redirect-with-flash 0.1.2 → 0.2.0
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/README.md +37 -11
- data/Rakefile +3 -3
- data/lib/sinatra/redirect_with_flash.rb +1 -1
- data/test/sinatra_app.rb +3 -3
- data/test/sinatra_redirect_with_flash_test.rb +7 -7
- metadata +14 -14
data/README.md
CHANGED
@@ -1,38 +1,56 @@
|
|
1
1
|
#Sinatra Extension: redirect with flash
|
2
2
|
|
3
|
-
Shortly: sinatra-redirect-with-flash provides `redirect` helper that can
|
4
|
-
|
3
|
+
Shortly: sinatra-redirect-with-flash provides `redirect` helper that can
|
4
|
+
set proper flash (rack-flash or sinatra-flash) before the redirection.
|
5
5
|
|
6
|
-
In fact, every time you set a flash parameter the very next step is often to
|
6
|
+
In fact, every time you set a flash parameter the very next step is often to
|
7
|
+
perform your redirect:
|
7
8
|
|
8
9
|
post '/posts/?' do
|
9
|
-
@post = Post.
|
10
|
+
@post = Post.create(params)
|
10
11
|
flash[:notice] = 'The post was successfully created'
|
11
12
|
redirect "/posts/#{@post.id}"
|
12
13
|
end
|
13
14
|
|
14
|
-
With sinatra-redirect-with-flash you can do one-line redirects. For instance,
|
15
|
+
With sinatra-redirect-with-flash you can do one-line redirects. For instance,
|
16
|
+
to rewrite the above example:
|
15
17
|
|
16
18
|
post '/posts/?' do
|
17
|
-
@post = Post.
|
19
|
+
@post = Post.create(params)
|
18
20
|
redirect "/posts/#{@post.id}", :notice => 'The post was successfully created'
|
19
21
|
end
|
20
22
|
|
23
|
+
|
21
24
|
##Installation
|
22
25
|
|
23
|
-
|
26
|
+
If you use [bundler](http://gembundler.com/), simply specify
|
27
|
+
`sinatra-redirect-with-flash` as a dependency in a Gemfile
|
28
|
+
in your project's root:
|
29
|
+
|
30
|
+
gem 'sinatra-flash' # or `gem 'rack-flash'`
|
31
|
+
gem 'sinatra-redirect-with-flash'
|
32
|
+
|
33
|
+
and run `bundle install`.
|
34
|
+
|
35
|
+
|
36
|
+
Otherwise install the gem as usual:
|
37
|
+
|
38
|
+
[sudo] gem install sinatra-redirect-with-flash
|
39
|
+
|
40
|
+
|
24
41
|
|
25
42
|
##Example
|
43
|
+
|
26
44
|
require 'rubygems'
|
27
45
|
require 'sinatra'
|
28
|
-
require 'rack-flash'
|
46
|
+
require 'sinatra/flash' # or `require 'rack-flash'`
|
29
47
|
require 'sinatra/redirect_with_flash'
|
30
48
|
|
31
|
-
use Rack::Flash
|
32
49
|
enable :sessions
|
33
50
|
|
34
51
|
post '/sessions/new' do
|
35
|
-
redirect '/secret', :notice => 'Logged in'
|
52
|
+
redirect '/secret', :notice => 'Logged in'
|
53
|
+
# predefined keys are: :notice, :error, :warning, :alert, :info, :success
|
36
54
|
end
|
37
55
|
|
38
56
|
get '/foo' do
|
@@ -43,5 +61,13 @@ With sinatra-redirect-with-flash you can do one-line redirects. For instance, to
|
|
43
61
|
redirect '/posts/', :flash => {:my_msg => 'Moving on!'}
|
44
62
|
end
|
45
63
|
|
64
|
+
*Note* that if your application subclasses `Sinatra::Base` (modular app),
|
65
|
+
you have to register the extension in your subclass:
|
66
|
+
|
67
|
+
helpers Sinatra::RedirectWithFlash
|
68
|
+
|
69
|
+
|
46
70
|
##Requirements
|
47
|
-
|
71
|
+
|
72
|
+
Either [rack-flash](http://nakajima.github.com/rack-flash/) or
|
73
|
+
[sinatra-flash](https://github.com/SFEley/sinatra-flash).
|
data/Rakefile
CHANGED
@@ -8,16 +8,16 @@ begin
|
|
8
8
|
require 'jeweler'
|
9
9
|
Jeweler::Tasks.new do |gemspec|
|
10
10
|
gemspec.name = "sinatra-redirect-with-flash"
|
11
|
-
gemspec.version = "0.
|
11
|
+
gemspec.version = "0.2.0"
|
12
12
|
gemspec.summary = gemspec.description = "redirect with flash helper for Sinatra"
|
13
13
|
gemspec.email = "vasily@polovnyov.ru"
|
14
14
|
gemspec.homepage = "http://github.com/vast/sinatra-redirect-with-flash"
|
15
15
|
gemspec.authors = ["Vasily Polovnyov"]
|
16
16
|
|
17
|
-
gemspec.add_dependency 'sinatra', '>=0.
|
18
|
-
gemspec.add_dependency 'rack-flash', '>=0.1.1'
|
17
|
+
gemspec.add_dependency 'sinatra', '>=1.0.0'
|
19
18
|
|
20
19
|
gemspec.add_development_dependency 'rack-test', '>=0.3.0'
|
20
|
+
gemspec.add_development_dependency 'sinatra-flash', '>=0.3.0'
|
21
21
|
|
22
22
|
gemspec.test_files = Dir.glob('test/*')
|
23
23
|
gemspec.files = ["LICENSE", "README.md", "Rakefile"] + Dir.glob('lib/**/*') + gemspec.test_files
|
data/test/sinatra_app.rb
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
require 'rubygems'
|
2
2
|
require 'sinatra'
|
3
|
-
require '
|
3
|
+
require 'sinatra/flash'
|
4
4
|
require 'lib/sinatra/redirect_with_flash'
|
5
5
|
|
6
|
-
|
6
|
+
enable :sessions
|
7
7
|
|
8
8
|
get '/' do
|
9
9
|
redirect '/fff', :flash => {:info => 'sample info'}
|
10
10
|
end
|
11
11
|
|
12
|
-
|
12
|
+
Sinatra::RedirectWithFlash::COMMON_FLASH_NAMES.each do |k|
|
13
13
|
get "/#{k.to_s}" do
|
14
14
|
redirect '/fff', k => "sample #{k.to_s}"
|
15
15
|
end
|
@@ -1,7 +1,7 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rack/test'
|
1
3
|
require 'sinatra_app'
|
2
4
|
require 'test/unit'
|
3
|
-
require 'rack/test'
|
4
|
-
require 'rack/flash/test'
|
5
5
|
|
6
6
|
set :environment, :test
|
7
7
|
|
@@ -13,7 +13,7 @@ class SinatraRedirectWithFlashTest < Test::Unit::TestCase
|
|
13
13
|
end
|
14
14
|
|
15
15
|
def flash
|
16
|
-
last_request.env['x-rack.flash']
|
16
|
+
last_request.env['x-rack.flash'] || last_request.env['rack.session']['flash']
|
17
17
|
end
|
18
18
|
|
19
19
|
def test_redirect_with_custom_flash_opts
|
@@ -23,7 +23,7 @@ class SinatraRedirectWithFlashTest < Test::Unit::TestCase
|
|
23
23
|
end
|
24
24
|
|
25
25
|
def test_common_flash_names
|
26
|
-
|
26
|
+
Sinatra::RedirectWithFlash::COMMON_FLASH_NAMES.each do |k|
|
27
27
|
get "/#{k.to_s}"
|
28
28
|
assert_not_nil flash
|
29
29
|
assert_equal "sample #{k.to_s}", flash[k]
|
@@ -37,21 +37,21 @@ class SinatraRedirectWithFlashTest < Test::Unit::TestCase
|
|
37
37
|
|
38
38
|
assert_equal last_response.status, 301
|
39
39
|
assert_equal last_response.body, ''
|
40
|
-
|
40
|
+
assert last_response.headers['Location'] =~ /\/fff$/
|
41
41
|
end
|
42
42
|
|
43
43
|
def test_old_school_redirect
|
44
44
|
get '/old-school-redirect'
|
45
45
|
assert_equal last_response.status, 302
|
46
46
|
assert_equal last_response.body, ''
|
47
|
-
|
47
|
+
assert last_response.headers['Location'] =~ /\/aaa$/
|
48
48
|
end
|
49
49
|
|
50
50
|
def test_old_school_redirect_with_code
|
51
51
|
get '/old-school-redirect-with-code'
|
52
52
|
assert_equal last_response.status, 301
|
53
53
|
assert_equal last_response.body, ''
|
54
|
-
|
54
|
+
assert last_response.headers['Location'] =~ /\/aaa$/
|
55
55
|
end
|
56
56
|
|
57
57
|
end
|
metadata
CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
|
|
4
4
|
prerelease: false
|
5
5
|
segments:
|
6
6
|
- 0
|
7
|
-
- 1
|
8
7
|
- 2
|
9
|
-
|
8
|
+
- 0
|
9
|
+
version: 0.2.0
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Vasily Polovnyov
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date:
|
17
|
+
date: 2012-02-13 00:00:00 +04:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -25,14 +25,14 @@ dependencies:
|
|
25
25
|
- - ">="
|
26
26
|
- !ruby/object:Gem::Version
|
27
27
|
segments:
|
28
|
-
- 0
|
29
|
-
- 9
|
30
28
|
- 1
|
31
|
-
|
29
|
+
- 0
|
30
|
+
- 0
|
31
|
+
version: 1.0.0
|
32
32
|
type: :runtime
|
33
33
|
version_requirements: *id001
|
34
34
|
- !ruby/object:Gem::Dependency
|
35
|
-
name: rack-
|
35
|
+
name: rack-test
|
36
36
|
prerelease: false
|
37
37
|
requirement: &id002 !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
@@ -40,13 +40,13 @@ dependencies:
|
|
40
40
|
- !ruby/object:Gem::Version
|
41
41
|
segments:
|
42
42
|
- 0
|
43
|
-
-
|
44
|
-
-
|
45
|
-
version: 0.
|
46
|
-
type: :
|
43
|
+
- 3
|
44
|
+
- 0
|
45
|
+
version: 0.3.0
|
46
|
+
type: :development
|
47
47
|
version_requirements: *id002
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
|
-
name:
|
49
|
+
name: sinatra-flash
|
50
50
|
prerelease: false
|
51
51
|
requirement: &id003 !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
@@ -80,8 +80,8 @@ homepage: http://github.com/vast/sinatra-redirect-with-flash
|
|
80
80
|
licenses: []
|
81
81
|
|
82
82
|
post_install_message:
|
83
|
-
rdoc_options:
|
84
|
-
|
83
|
+
rdoc_options: []
|
84
|
+
|
85
85
|
require_paths:
|
86
86
|
- lib
|
87
87
|
required_ruby_version: !ruby/object:Gem::Requirement
|