flash_helper 1.0.0 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/LICENCE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2008 [Nicolas Cavigneaux]
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/Rakefile ADDED
@@ -0,0 +1,69 @@
1
+ require 'rake/gempackagetask'
2
+ require 'rake/testtask'
3
+ require 'rake/rdoctask'
4
+ require 'rake/contrib/rubyforgepublisher'
5
+ require 'rubyforge'
6
+
7
+ SPEC = Gem::Specification.new do |s|
8
+ s.name = 'flash_helper'
9
+ s.version = '1.0.2'
10
+ s.authors = ['Nicolas Cavigneaux']
11
+ s.email = 'nico@bounga.org'
12
+ s.homepage = 'http://www.bitbucket.org/Bounga/flash-helper'
13
+ s.rubyforge_project = %q{flash-helper}
14
+ s.summary = 'Rails extension to handle flash messages'
15
+ s.description = 'This Rails extension provides a simple way to handle flash messages. You can easily display notices, errors and warnings using the convinience method.'
16
+ s.files = [ "Rakefile", "init.rb", "install.rb", "README", "LICENCE", "uninstall.rb" ] +
17
+ Dir.glob("{bin,assets,doc,lib,tasks,test}/**/*")
18
+ s.test_file = "test/flash_helper_test.rb"
19
+ s.has_rdoc = true
20
+ s.extra_rdoc_files = ['README']
21
+ s.require_paths = ["lib"]
22
+ s.add_dependency('actionpack')
23
+ end
24
+
25
+ desc 'run unit tests'
26
+ task :default => :test
27
+
28
+ task :gem
29
+ Rake::GemPackageTask.new(SPEC) do |pkg|
30
+ pkg.need_zip = true
31
+ pkg.need_tar_bz2 = true
32
+ end
33
+
34
+ desc "Install gem file #{SPEC.name}-#{SPEC.version}.gem"
35
+ task :install => [:gem] do
36
+ sh "gem install pkg/#{SPEC.name}-#{SPEC.version}.gem"
37
+ end
38
+
39
+ desc "Publish documentation to RubyForge"
40
+ task :publish_doc => [:rdoc] do
41
+ rf = Rake::RubyForgePublisher.new(SPEC.rubyforge_project, 'bounga')
42
+ rf.upload
43
+ puts "Published documentation to RubyForge"
44
+ end
45
+
46
+ desc "Release gem #{SPEC.name}-#{SPEC.version}.gem"
47
+ task :release => [:gem, :publish_doc] do
48
+ rf = RubyForge.new.configure
49
+ puts "Logging in"
50
+ rf.login
51
+
52
+ puts "Releasing #{SPEC.name} v.#{SPEC.version}"
53
+
54
+ files = Dir.glob('pkg/*.{zip,bz2,gem}')
55
+ rf.add_release SPEC.rubyforge_project, SPEC.rubyforge_project, SPEC.version, *files
56
+ end
57
+
58
+ Rake::TestTask.new(:test) do |t|
59
+ t.libs << 'lib'
60
+ t.pattern = 'test/**/*_test.rb'
61
+ t.verbose = true
62
+ end
63
+
64
+ Rake::RDocTask.new(:rdoc) do |rdoc|
65
+ rdoc.title = 'FlashHelper'
66
+ rdoc.options << '--line-numbers' << '--inline-source'
67
+ rdoc.rdoc_files.include('README')
68
+ rdoc.rdoc_files.include('lib/**/*.rb')
69
+ end
@@ -0,0 +1,48 @@
1
+ .notice,.errors,.warning {
2
+ padding: 5px 8px;
3
+ margin: 0 0 10px 0;
4
+ }
5
+ .notice {
6
+ background-color: #CFC;
7
+ border: solid 1px #6C6;
8
+ }
9
+ .warning {
10
+ background-color: #fcf100;
11
+ border: solid 1px #ffc707;
12
+ }
13
+ .errors {
14
+ background-color: #FCC;
15
+ border: solid 1px #C66;
16
+ }
17
+ .fieldWithErrors {
18
+ display: inline;
19
+ }
20
+ #errorExplanation {
21
+ width: 400px;
22
+ border: 2px solid #CF0000;
23
+ padding: 0px;
24
+ padding-bottom: 12px;
25
+ margin-bottom: 20px;
26
+ background-color: #f0f0f0;
27
+ }
28
+ #errorExplanation h2 {
29
+ text-align: left;
30
+ font-weight: bold;
31
+ padding: 5px 5px 5px 15px;
32
+ font-size: 12px;
33
+ margin: 0px;
34
+ background-color: #c00;
35
+ color: #fff;
36
+ }
37
+ #errorExplanation p {
38
+ color: #333;
39
+ margin-bottom: 0;
40
+ padding: 8px;
41
+ }
42
+ #errorExplanation ul {
43
+ margin: 2px 24px;
44
+ }
45
+ #errorExplanation ul li {
46
+ font-size: 12px;
47
+ list-style: disc;
48
+ }
data/init.rb ADDED
@@ -0,0 +1 @@
1
+ require 'flash_helper'
data/install.rb ADDED
@@ -0,0 +1 @@
1
+ # Install hook code here
@@ -0,0 +1,76 @@
1
+ require 'active_support'
2
+
3
+ module Bounga
4
+ module FlashHelper
5
+ # This extension provides a simple way to handle flash messages.
6
+ # You can easily display notices, errors and warnings using the convinience method.
7
+ #
8
+ # == Example
9
+ #
10
+ # For example, in your layout use :
11
+ #
12
+ # display_flashes # Use defaults
13
+ #
14
+ # Then in your controllers you can use :
15
+ # flash[:notice] = "Successfully created..."
16
+ # flash[:errors] = "Creation failed!"
17
+ # flash[:errors] = @news.errors
18
+ # flash[:warning] = "The new user has no blog associated..."
19
+
20
+ # == Global options for helpers
21
+ #
22
+ # Options for flash helpers are optional and get their default values from the
23
+ # <tt>Bounga::FlashHelper::ViewHelpers.flash_options</tt> hash. You can write to this hash to
24
+ # override default options on the global level:
25
+ #
26
+ # Bounga::FlashHelper::ViewHelpers.flash_options[:notice_class] = 'my_notice'
27
+ #
28
+ # By putting this into "config/initializers/flash_helper.rb" (or simply environment.rb in
29
+ # older versions of Rails) you can easily override any default option.
30
+ module ViewHelpers
31
+ # default options that can be overridden on the global level
32
+ @@flash_options = {
33
+ :list_class => 'errors_list',
34
+ :notice_class => 'notice',
35
+ :errors_class => 'errors',
36
+ :warning_class => 'warning',
37
+ :default_message => 'There are problems in your submission:'
38
+ }
39
+ mattr_reader :flash_options
40
+
41
+ # Display flash messages.
42
+ # You can pass an optional string as a parameter. It will be display before
43
+ # error messages.
44
+ def display_flashes(message = @@flash_options[:default_message])
45
+ if flash[:notice]
46
+ flash_to_display, level = flash[:notice], @@flash_options[:notice_class]
47
+ elsif flash[:warning]
48
+ flash_to_display, level = flash[:warning], @@flash_options[:warning_class]
49
+ elsif flash[:errors]
50
+ level = @@flash_options[:errors_class]
51
+ if flash[:errors].instance_of? ActiveRecord::Errors
52
+ flash_to_display = message
53
+ flash_to_display << activerecord_error_list(flash[:errors])
54
+ else
55
+ flash_to_display = flash[:errors]
56
+ end
57
+ else
58
+ return
59
+ end
60
+ flash.discard(:notice); flash.discard(:warning); flash.discard(:errors)
61
+ content_tag 'div', flash_to_display, :class => "#{level}"
62
+ end
63
+
64
+
65
+ def activerecord_error_list(errors)
66
+ error_list = '<ul class="' + @@flash_options[:list_class] + '">'
67
+ error_list << errors.collect do |e, m|
68
+ "<li>#{e.humanize unless e == "base"} #{m}</li>"
69
+ end.to_s << '</ul>'
70
+ error_list
71
+ end
72
+ end
73
+ end
74
+ end
75
+
76
+ ActionView::Base.send :include, Bounga::FlashHelper::ViewHelpers
@@ -0,0 +1,15 @@
1
+ namespace :flash_helper do
2
+ PLUGIN_ROOT = File.dirname(__FILE__) + '/../'
3
+
4
+ desc 'Install sample CSS file for flash messages.'
5
+ task :install do
6
+ FileUtils.cp Dir[PLUGIN_ROOT + '/assets/stylesheets/*.css'], RAILS_ROOT + '/public/stylesheets'
7
+ p "Flash messages stylesheet added."
8
+ end
9
+
10
+ desc 'Remove sample CSS file for flash messages..'
11
+ task :remove do
12
+ FileUtils.rm %{flash_helper.css}.collect { |f| RAILS_ROOT + "/public/stylesheets/" + f }
13
+ p "Flash messages stylesheet deleted."
14
+ end
15
+ end
data/uninstall.rb ADDED
@@ -0,0 +1 @@
1
+ # Uninstall hook code here
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flash_helper
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nicolas Cavigneaux
@@ -9,10 +9,19 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-12-05 00:00:00 +01:00
12
+ date: 2008-12-08 00:00:00 +01:00
13
13
  default_executable:
14
- dependencies: []
15
-
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: actionpack
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: "0"
24
+ version:
16
25
  description: This Rails extension provides a simple way to handle flash messages. You can easily display notices, errors and warnings using the convinience method.
17
26
  email: nico@bounga.org
18
27
  executables: []
@@ -22,7 +31,17 @@ extensions: []
22
31
  extra_rdoc_files:
23
32
  - README
24
33
  files:
34
+ - Rakefile
35
+ - init.rb
36
+ - install.rb
25
37
  - README
38
+ - LICENCE
39
+ - uninstall.rb
40
+ - assets/stylesheets
41
+ - assets/stylesheets/flash_helper.css
42
+ - lib/flash_helper.rb
43
+ - tasks/flash_helper_tasks.rake
44
+ - test/flash_helper_test.rb
26
45
  has_rdoc: true
27
46
  homepage: http://www.bitbucket.org/Bounga/flash-helper
28
47
  post_install_message: