padrino-flash 0.1.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/.gitignore ADDED
@@ -0,0 +1,6 @@
1
+ *.gem
2
+ archive/*
3
+ doc/*
4
+ .yardoc
5
+ .bundle
6
+ Gemfile.lock
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --format documentation
2
+ --color
data/.yardopts ADDED
@@ -0,0 +1,9 @@
1
+ --no-save
2
+ --no-private
3
+ --title Padrino Flash
4
+ --markup-provider redcarpet
5
+ --markup markdown
6
+ lib/**/*.rb
7
+ -
8
+ README.md
9
+ LICENSE
data/LICENSE ADDED
@@ -0,0 +1,19 @@
1
+ Copyright (c) 2012 Benjamin Bloch
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ of this software and associated documentation files (the "Software"), to deal
5
+ in the Software without restriction, including without limitation the rights
6
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ copies of the Software, and to permit persons to whom the Software is
8
+ furnished to do so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in
11
+ all copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+ THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,28 @@
1
+ ### Overview
2
+
3
+ Padrino Flash is a plugin for the [Padrino](https://github.com/padrino/padrino-framework) web framework which adds support for [Rails](https://github.com/rails/rails) like flash messages.
4
+
5
+ ### Setup & Installation
6
+
7
+ Include it in your project's `Gemfile` with Bundler:
8
+
9
+ ``` ruby
10
+ gem 'padrino-flash'
11
+ ```
12
+
13
+ Modify your `app/app.rb` file to register the plugin:
14
+
15
+ ``` ruby
16
+ class ExampleApplication < Padrino::Application
17
+ register Padrino::Flash
18
+ end
19
+ ```
20
+
21
+ ### Dependencies
22
+
23
+ * [Padrino-Core](https://github.com/padrino/padrino-framework) and [Padrino-Helpers](https://github.com/padrino/padrino-framework)
24
+ * [Ruby](http://www.ruby-lang.org/en) >= 1.9.2
25
+
26
+ ### Copyright
27
+
28
+ Copyright � 2012 Benjamin Bloch (Cirex). See LICENSE for details.
data/Rakefile ADDED
@@ -0,0 +1,30 @@
1
+ $LOAD_PATH.unshift File.expand_path('../lib', __FILE__)
2
+ require 'padrino-flash/version'
3
+
4
+ require 'rake'
5
+ require 'yard'
6
+ require 'rspec'
7
+ require 'rspec/core/rake_task'
8
+
9
+ RSpec::Core::RakeTask.new do |task|
10
+ task.pattern = 'spec/**/*_spec.rb'
11
+ end
12
+
13
+ YARD::Rake::YardocTask.new
14
+
15
+ task :build do
16
+ `gem build padrino-flash.gemspec`
17
+ end
18
+
19
+ task :install => :build do
20
+ `gem install padrino-flash-#{Padrino::Flash::VERSION}.gem`
21
+ end
22
+
23
+ desc 'Releases the current version into the wild'
24
+ task :release => :build do
25
+ `git tag -a v#{Padrino::Flash::VERSION} -m "Version #{Padrino::Flash::VERSION}"`
26
+ `gem push padrino-flash-#{Padrino::Flash::VERSION}.gem`
27
+ `git push --tags`
28
+ end
29
+
30
+ task :default => :spec
@@ -0,0 +1,102 @@
1
+ # encoding: UTF-8
2
+ module Padrino
3
+ module Flash
4
+ module Helpers
5
+ ###
6
+ # Overloads the existing redirect helper in-order to provide support for flash messages
7
+ #
8
+ # @overload redirect(url)
9
+ # @param [String] url
10
+ #
11
+ # @overload redirect(url, status_code)
12
+ # @param [String] url
13
+ # @param [Fixnum] status_code
14
+ #
15
+ # @overload redirect(url, status_code, flash_messages)
16
+ # @param [String] url
17
+ # @param [Fixnum] status_code
18
+ # @param [Hash] flash_messages
19
+ #
20
+ # @overload redirect(url, flash_messages)
21
+ # @param [String] url
22
+ # @param [Hash] flash_messages
23
+ #
24
+ # @example
25
+ # redirect(dashboard, :success => :user_created)
26
+ # redirect(new_location, 301, notice: 'This page has moved. Please update your bookmarks!!')
27
+ #
28
+ # @since 0.1.0
29
+ # @api public
30
+ def redirect(url, *args)
31
+ flashes = args.extract_options!
32
+
33
+ flashes.each do |type, message|
34
+ message = I18n.translate(message) if message.is_a?(Symbol)
35
+ flash[type] = message
36
+ end
37
+
38
+ super(url, args)
39
+ end
40
+ alias_method :redirect_to, :redirect
41
+
42
+ ###
43
+ # Returns HTML tags to display the current flash messages
44
+ #
45
+ # @return [String]
46
+ # Generated HTML for flash messages
47
+ #
48
+ # @example
49
+ # flash_messages
50
+ # # => <div id="flash">
51
+ # # => <span class="warning" title="Warning">Danger, Will Robinson!</span>
52
+ # # => </div>
53
+ #
54
+ # @since 0.1.0
55
+ # @api public
56
+ def flash_messages
57
+ flashes = flash.collect do |type, message|
58
+ content_tag(:span, message, title: type.to_s.titleize, class: type)
59
+ end.join("\n")
60
+
61
+ # Create the tag even if we don't need it so it can be dynamically altered
62
+ content_tag(:div, flashes, id: 'flash')
63
+ end
64
+
65
+ ###
66
+ # Returns an HTML div to display the specified flash if it exists
67
+ #
68
+ # @return [String]
69
+ # Generated HTML for the specified flash message
70
+ #
71
+ # @example
72
+ # flash_message :error
73
+ # # => <div id="flash-error" title="Error" class="error">
74
+ # # => Invalid Handle/Password Combination
75
+ # # => </div>
76
+ #
77
+ # flash_message :success
78
+ # # => <div id="flash-success" title="Success" class="success">
79
+ # # => Your account has been successfully registered!
80
+ # # => </div>
81
+ #
82
+ # @since 0.1.0
83
+ # @api public
84
+ def flash_message(type)
85
+ if flash[type]
86
+ content_tag(:div, flash[type], id: "flash-#{type}", title: type.to_s.titleize, class: type)
87
+ end
88
+ end
89
+
90
+ ###
91
+ # Returns the flash storage object
92
+ #
93
+ # @return [Storage]
94
+ #
95
+ # @since 0.1.0
96
+ # @api public
97
+ def flash
98
+ @_flash ||= Storage.new(session[:_flash])
99
+ end
100
+ end # Helpers
101
+ end # Flash
102
+ end # Padrino
@@ -0,0 +1,157 @@
1
+ # encoding: UTF-8
2
+ module Padrino
3
+ module Flash
4
+ class Storage
5
+ include Enumerable
6
+
7
+ attr_reader :now
8
+ attr_reader :next
9
+
10
+ # @private
11
+ def initialize(session)
12
+ @now = session || {}
13
+ @next = {}
14
+ end
15
+
16
+ # @since 0.1.0
17
+ # @api public
18
+ def [](type)
19
+ @now[type]
20
+ end
21
+
22
+ # @since 0.1.0
23
+ # @api public
24
+ def []=(type, message)
25
+ @next[type] = message
26
+ end
27
+
28
+ # @since 0.1.0
29
+ # @api public
30
+ def delete(type)
31
+ @now.delete(type)
32
+ self
33
+ end
34
+
35
+ # @since 0.1.0
36
+ # @api public
37
+ def keys
38
+ @now.keys
39
+ end
40
+
41
+ # @since 0.1.0
42
+ # @api public
43
+ def key?(type)
44
+ @now.key?(type)
45
+ end
46
+
47
+ # @since 0.1.0
48
+ # @api public
49
+ def each(&block)
50
+ @now.each(&block)
51
+ end
52
+
53
+ # @since 0.1.0
54
+ # @api public
55
+ def replace(hash)
56
+ @now.replace(hash)
57
+ self
58
+ end
59
+
60
+ # @since 0.1.0
61
+ # @api public
62
+ def update(hash)
63
+ @now.update(hash)
64
+ self
65
+ end
66
+ alias_method :merge!, :update
67
+
68
+ # @since 0.1.0
69
+ # @api public
70
+ def sweep
71
+ @now.replace(@next)
72
+ @next = {}
73
+ self
74
+ end
75
+
76
+ # @since 0.1.0
77
+ # @api public
78
+ def keep(key = nil)
79
+ if key
80
+ @next[key] = @now[key]
81
+ else
82
+ @next.merge!(@now)
83
+ end
84
+ end
85
+
86
+ # @since 0.1.0
87
+ # @api public
88
+ def discard(key = nil)
89
+ if key
90
+ @next.delete(key)
91
+ else
92
+ @next = {}
93
+ end
94
+ end
95
+
96
+ # @since 0.1.0
97
+ # @api public
98
+ def clear
99
+ @now.clear
100
+ end
101
+
102
+ # @since 0.1.0
103
+ # @api public
104
+ def empty?
105
+ @now.empty?
106
+ end
107
+
108
+ # @since 0.1.0
109
+ # @api public
110
+ def to_hash
111
+ @now.dup
112
+ end
113
+
114
+ # @since 0.1.0
115
+ # @api public
116
+ def to_s
117
+ @now.to_s
118
+ end
119
+
120
+ # @since 0.1.0
121
+ # @api public
122
+ def error=(message)
123
+ self[:error] = message
124
+ end
125
+
126
+ # @since 0.1.0
127
+ # @api public
128
+ def error
129
+ self[:error]
130
+ end
131
+
132
+ # @since 0.1.0
133
+ # @api public
134
+ def notice=(message)
135
+ self[:notice] = message
136
+ end
137
+
138
+ # @since 0.1.0
139
+ # @api public
140
+ def notice
141
+ self[:notice]
142
+ end
143
+
144
+ # @since 0.1.0
145
+ # @api public
146
+ def success=(message)
147
+ self[:success] = message
148
+ end
149
+
150
+ # @since 0.1.0
151
+ # @api public
152
+ def success
153
+ self[:success]
154
+ end
155
+ end # Storage
156
+ end # Flash
157
+ end # Padrino
@@ -0,0 +1,6 @@
1
+ # encoding: UTF-8
2
+ module Padrino
3
+ module Flash
4
+ VERSION = '0.1.0'
5
+ end # Flash
6
+ end # Padrino
@@ -0,0 +1,22 @@
1
+ # encoding: utf-8
2
+ require 'padrino-core'
3
+ require 'padrino-helpers'
4
+
5
+ FileSet.glob_require('padrino-flash/**/*.rb', __FILE__)
6
+
7
+ module Padrino
8
+ module Flash
9
+ class << self
10
+ # @private
11
+ def registered(app)
12
+ app.helpers Helpers
13
+ app.enable :sessions
14
+ app.enable :flash
15
+
16
+ app.after do
17
+ session[:_flash] = @_flash.next if @_flash && app.flash?
18
+ end
19
+ end
20
+ end # self
21
+ end # Flash
22
+ end # Padrino
@@ -0,0 +1,25 @@
1
+ # encoding: utf-8
2
+ $:.push File.expand_path('../lib', __FILE__)
3
+ require 'padrino-flash/version'
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = 'padrino-flash'
7
+ s.version = Padrino::Flash::VERSION
8
+ s.authors = ['Benjamin Bloch']
9
+ s.email = ['cirex@gamesol.org']
10
+ s.homepage = 'https://github.com/Cirex/padrino-flash'
11
+ s.description = 'A plugin for the Padrino web framework which adds support for Rails like flash messages'
12
+ s.summary = s.description
13
+
14
+ s.files = `git ls-files`.split("\n")
15
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
16
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
17
+ s.require_paths = ['lib']
18
+
19
+ s.add_dependency 'padrino-core'
20
+ s.add_dependency 'padrino-helpers'
21
+
22
+ s.add_development_dependency 'rspec', '>= 2.0.0'
23
+ s.add_development_dependency 'rspec-html-matchers'
24
+ s.add_development_dependency 'rack-test'
25
+ end
@@ -0,0 +1,2 @@
1
+ en:
2
+ redirected: 'Redirected'
@@ -0,0 +1,15 @@
1
+ require_relative 'spec'
2
+
3
+ describe Padrino::Flash do
4
+ it 'can set the future flash' do
5
+ post '/flash', { notice: 'Flash' }
6
+ post '/flash', { success: 'Flash' }
7
+ last_response.body.should == '{:notice=>"Flash"}'
8
+ end
9
+
10
+ it 'knows the future flash' do
11
+ post '/flash', { notice: 'Flash' }
12
+ get '/flash'
13
+ last_response.body.should == '{:notice=>"Flash"}'
14
+ end
15
+ end
@@ -0,0 +1,72 @@
1
+ require_relative 'spec'
2
+
3
+ describe Padrino::Flash::Helpers do
4
+ include Padrino::Helpers::OutputHelpers
5
+ include Padrino::Helpers::TagHelpers
6
+ include Padrino::Flash::Helpers
7
+
8
+ context '#redirect' do
9
+ it 'should let you to use a string to set a flash message' do
10
+ app.get(:redirect) { redirect('/flash', notice: 'Redirected') }
11
+ get '/redirect'
12
+ follow_redirect!
13
+ last_response.body.should == '{:notice=>"Redirected"}'
14
+ end
15
+
16
+ it 'should localize flash message when a :symbol is used' do
17
+ app.get(:redirect) { redirect('/flash', :notice => :redirected) }
18
+ get '/redirect'
19
+ follow_redirect!
20
+ last_response.body.should == '{:notice=>"Redirected"}'
21
+ end
22
+
23
+ it 'should allow you to set multiple flash messages' do
24
+ app.get(:redirect) { redirect('/flash', notice: 'Redirected', success: 'Redirected') }
25
+ get '/redirect'
26
+ follow_redirect!
27
+ last_response.body.should == '{:notice=>"Redirected", :success=>"Redirected"}'
28
+ end
29
+
30
+ it 'should allow you to set the status code' do
31
+ app.get(:redirect) { redirect('/flash', 301) }
32
+ get '/redirect'
33
+ last_response.status.should == 301
34
+ end
35
+
36
+ it 'should allow you to set the status code with flash messages' do
37
+ app.get(:redirect) { redirect('/flash', 301, notice: 'Redirected') }
38
+ get '/redirect'
39
+ last_response.status.should == 301
40
+ follow_redirect!
41
+ last_response.body.should == '{:notice=>"Redirected"}'
42
+ end
43
+ end
44
+
45
+ context '#flash_message' do
46
+ it 'should return the contents of the specified flash' do
47
+ flash = flash_message(:success)
48
+ flash.should have_tag(:div, count: 1, with: { id: 'flash-success', class: 'success', title: 'Success' })
49
+ end
50
+
51
+ it 'should return nil when the specified flash is not set' do
52
+ flash = flash_message(:error)
53
+ flash.should be_nil
54
+ end
55
+ end
56
+
57
+ context '#flash_messages' do
58
+ it 'should return the contents of all flashes' do
59
+ flashes = flash_messages
60
+ flashes.should have_tag(:div, count: 1, with: { id: 'flash' }) do
61
+ with_tag(:span, text: 'Flash Success', with: { class: 'success', title: 'Success' })
62
+ with_tag(:span, text: 'Flash Notice', with: { class: 'notice', title: 'Notice' })
63
+ end
64
+ end
65
+
66
+ it 'should return an empty div when no flash messages set' do
67
+ session.clear
68
+ flashes = flash_messages
69
+ flashes.should have_tag(:div, count: 1, with: { id: 'flash' })
70
+ end
71
+ end
72
+ end
data/spec/spec.rb ADDED
@@ -0,0 +1,35 @@
1
+ PADRINO_ENV = 'test'
2
+
3
+ require 'rspec'
4
+ require 'rspec-html-matchers'
5
+ require 'rack/test'
6
+ require 'padrino-flash'
7
+
8
+ module TestHelpers
9
+ def app
10
+ @app ||= Sinatra.new(Padrino::Application) do
11
+ register Padrino::Flash
12
+ set :logging, false
13
+
14
+ get :flash do
15
+ flash.inspect
16
+ end
17
+
18
+ post :flash do
19
+ params.each { |type, message| flash[type.to_sym] = message }
20
+ flash.inspect
21
+ end
22
+ end
23
+ end
24
+
25
+ def session
26
+ @session ||= { _flash: { notice: 'Flash Notice', success: 'Flash Success' }}
27
+ end
28
+ end
29
+
30
+ RSpec.configure do |configuration|
31
+ configuration.include TestHelpers
32
+ configuration.include Rack::Test::Methods
33
+ end
34
+
35
+ I18n.load_path += Dir[(File.dirname(__FILE__) + '/fixtures/locale/*.yml')]
@@ -0,0 +1,104 @@
1
+ require_relative 'spec'
2
+
3
+ describe Padrino::Flash::Storage do
4
+ let :flash do
5
+ Padrino::Flash::Storage.new(session[:_flash])
6
+ end
7
+
8
+ before do
9
+ flash[:one] = 'One'
10
+ flash[:two] = 'Two'
11
+ end
12
+
13
+ it 'can delete a single flash' do
14
+ flash[:notice].should == 'Flash Notice'
15
+ flash.delete :notice
16
+ flash.key?(:notice).should be_false
17
+ flash[:notice].should be_nil
18
+ end
19
+
20
+ it 'can delete the entire flash' do
21
+ flash[:notice].should == 'Flash Notice'
22
+ flash[:success].should == 'Flash Success'
23
+ flash.clear
24
+ flash[:notice].should be_nil
25
+ flash[:success].should be_nil
26
+ end
27
+
28
+ it 'should set future flash messages' do
29
+ flash[:future] = 'Test'
30
+ flash[:future].should be_nil
31
+ end
32
+
33
+ it 'should allow you to set the present flash' do
34
+ flash.now[:present] = 'Test'
35
+ flash[:present].should == 'Test'
36
+ end
37
+
38
+ it 'can discard the entire flash' do
39
+ flash.discard
40
+ flash.sweep
41
+ flash[:one].should_not == 'One'
42
+ flash[:two].should_not == 'Two'
43
+ end
44
+
45
+ it 'can discard a single flash' do
46
+ flash.discard :one
47
+ flash.sweep
48
+ flash[:one].should_not == 'One'
49
+ flash[:two].should == 'Two'
50
+ end
51
+
52
+ it 'can keep the entire flash' do
53
+ flash.keep
54
+ flash.sweep
55
+ flash[:notice].should == 'Flash Notice'
56
+ end
57
+
58
+ it 'can keep a single flash' do
59
+ flash.keep :notice
60
+ flash.sweep
61
+ flash[:notice].should == 'Flash Notice'
62
+ flash[:success].should_not == 'Flash Success'
63
+ end
64
+
65
+ it 'can iterate through flash messages' do
66
+ flashes = []
67
+ flash.each do |type, message|
68
+ flashes << [type, message]
69
+ end
70
+ flashes[0].should == [:notice, 'Flash Notice']
71
+ flashes[1].should == [:success, 'Flash Success']
72
+ end
73
+
74
+ it 'can sweep up the old to make room for the new' do
75
+ flash[:notice].should == 'Flash Notice'
76
+ flash[:one].should be_nil
77
+ flash.sweep
78
+ flash[:notice].should be_nil
79
+ flash[:one].should == 'One'
80
+ end
81
+
82
+ it 'can replace the current flash messages' do
83
+ flash[:notice].should == 'Flash Notice'
84
+ flash.replace(:error => 'Replaced')
85
+ flash[:notice].should be_nil
86
+ flash[:error].should == 'Replaced'
87
+ end
88
+
89
+ it 'can return the existing flash keys' do
90
+ flash.keys.should == [:notice, :success]
91
+ flash.keys.should_not include(:one, :two)
92
+ end
93
+
94
+ it 'can tell you if a key is set' do
95
+ flash.key?(:notice).should be_true
96
+ flash.key?(:one).should be_false
97
+ end
98
+
99
+ it 'can merge flash messages' do
100
+ flash[:notice].should == 'Flash Notice'
101
+ flash.update(:notice => 'Flash Success')
102
+ flash[:notice].should == 'Flash Success'
103
+ end
104
+ end
metadata ADDED
@@ -0,0 +1,119 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: padrino-flash
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Benjamin Bloch
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-02-17 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: padrino-core
16
+ requirement: &15843012 !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: *15843012
25
+ - !ruby/object:Gem::Dependency
26
+ name: padrino-helpers
27
+ requirement: &15841152 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *15841152
36
+ - !ruby/object:Gem::Dependency
37
+ name: rspec
38
+ requirement: &15840744 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: 2.0.0
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: *15840744
47
+ - !ruby/object:Gem::Dependency
48
+ name: rspec-html-matchers
49
+ requirement: &15839976 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: *15839976
58
+ - !ruby/object:Gem::Dependency
59
+ name: rack-test
60
+ requirement: &15839256 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ type: :development
67
+ prerelease: false
68
+ version_requirements: *15839256
69
+ description: A plugin for the Padrino web framework which adds support for Rails like
70
+ flash messages
71
+ email:
72
+ - cirex@gamesol.org
73
+ executables: []
74
+ extensions: []
75
+ extra_rdoc_files: []
76
+ files:
77
+ - .gitignore
78
+ - .rspec
79
+ - .yardopts
80
+ - LICENSE
81
+ - README.md
82
+ - Rakefile
83
+ - lib/padrino-flash.rb
84
+ - lib/padrino-flash/helpers.rb
85
+ - lib/padrino-flash/storage.rb
86
+ - lib/padrino-flash/version.rb
87
+ - padrino-flash.gemspec
88
+ - spec/fixtures/locale/en.yml
89
+ - spec/flash_spec.rb
90
+ - spec/helpers_spec.rb
91
+ - spec/spec.rb
92
+ - spec/storage_spec.rb
93
+ homepage: https://github.com/Cirex/padrino-flash
94
+ licenses: []
95
+ post_install_message:
96
+ rdoc_options: []
97
+ require_paths:
98
+ - lib
99
+ required_ruby_version: !ruby/object:Gem::Requirement
100
+ none: false
101
+ requirements:
102
+ - - ! '>='
103
+ - !ruby/object:Gem::Version
104
+ version: '0'
105
+ required_rubygems_version: !ruby/object:Gem::Requirement
106
+ none: false
107
+ requirements:
108
+ - - ! '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ requirements: []
112
+ rubyforge_project:
113
+ rubygems_version: 1.8.15
114
+ signing_key:
115
+ specification_version: 3
116
+ summary: A plugin for the Padrino web framework which adds support for Rails like
117
+ flash messages
118
+ test_files: []
119
+ has_rdoc: