simply_messages 0.0.1 → 0.0.2
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.rdoc +23 -14
- data/Rakefile +8 -1
- data/lib/simply_messages/action_view_extension.rb +33 -30
- data/lib/simply_messages/railtie.rb +0 -1
- data/lib/simply_messages/version.rb +1 -1
- data/simply_messages.gemspec +3 -0
- metadata +46 -4
data/README.rdoc
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
= simply_messages
|
2
2
|
|
3
3
|
simply_messages is a Rails plugin providing a unified notice/alert messages handling (like those: flash.now[:notice] = 'Yeah').
|
4
|
-
Based on the message_block
|
4
|
+
Based on the message_block by Ben Hughes (http://github.com/railsgarden/message_block).
|
5
5
|
|
6
6
|
|
7
7
|
== Requirements
|
@@ -20,17 +20,26 @@ Then bundle:
|
|
20
20
|
bundle
|
21
21
|
|
22
22
|
|
23
|
-
|
23
|
+
simply_messages uses standard I18n translations to display errors and as such requires at least the following keys to be present:
|
24
24
|
|
25
|
-
|
25
|
+
activerecord:
|
26
|
+
errors:
|
27
|
+
template:
|
28
|
+
header:
|
29
|
+
one: "1 error prohibited this %{model} from being saved"
|
30
|
+
other: "%{count} errors prohibited this %{model} from being saved"
|
31
|
+
|
32
|
+
|
33
|
+
== Usage
|
26
34
|
|
35
|
+
In `app/views/layouts/application.html.erb`:
|
27
36
|
|
28
|
-
|
37
|
+
<%= messages_block %>
|
29
38
|
|
30
|
-
Will also display appropriate messages for :success and :error flash keys.
|
31
39
|
|
40
|
+
By default the messages_block function will display all flash[:notice] and flash[:alert] messages and all errors for model object associated by name with the current controller (so it will display all model errors for @user model when 'users' is the current controller). Will also display appropriate messages for :success and :error flash keys.
|
32
41
|
|
33
|
-
We can also
|
42
|
+
We can also explicitly set the model we would like to display errors for, like this:
|
34
43
|
|
35
44
|
<%= messages_block :for => :comment %>
|
36
45
|
|
@@ -52,27 +61,27 @@ view:
|
|
52
61
|
will result in:
|
53
62
|
|
54
63
|
<div class="notice">
|
55
|
-
<p>Post saved
|
64
|
+
<p>Post saved</p>
|
56
65
|
</div>
|
57
66
|
|
58
67
|
|
59
68
|
=== EXAMPLE 2
|
60
69
|
|
61
|
-
|
70
|
+
Given a User model instance with one validation error:
|
62
71
|
|
63
|
-
|
64
|
-
|
72
|
+
user.errors
|
73
|
+
=> #<OrderedHash {:name=>["can't be blank"]}>
|
65
74
|
|
66
|
-
view:
|
75
|
+
and this in view in the users controller:
|
67
76
|
|
68
77
|
<%= messages_block %>
|
69
78
|
|
70
|
-
will
|
79
|
+
will render:
|
71
80
|
|
72
81
|
<div class="alert">
|
73
|
-
<p>
|
82
|
+
<p>1 error prohibited this User from being saved:</p>
|
74
83
|
<ul>
|
75
|
-
<li>
|
84
|
+
<li>Name can't be blank</li>
|
76
85
|
</ul>
|
77
86
|
</div>
|
78
87
|
|
data/Rakefile
CHANGED
@@ -3,10 +3,17 @@
|
|
3
3
|
require 'bundler'
|
4
4
|
Bundler::GemHelper.install_tasks
|
5
5
|
|
6
|
+
require 'rspec/core'
|
7
|
+
require 'rspec/core/rake_task'
|
8
|
+
RSpec::Core::RakeTask.new(:spec) do |spec|
|
9
|
+
spec.pattern = FileList['spec/**/*_spec.rb']
|
10
|
+
end
|
11
|
+
|
12
|
+
task :default => :spec
|
13
|
+
|
6
14
|
require 'rake/rdoctask'
|
7
15
|
Rake::RDocTask.new do |rdoc|
|
8
16
|
require 'simply_messages/version'
|
9
|
-
|
10
17
|
rdoc.rdoc_dir = 'rdoc'
|
11
18
|
rdoc.title = "simply_messages #{SimplyMessages::VERSION}"
|
12
19
|
rdoc.rdoc_files.include('README*')
|
@@ -5,8 +5,8 @@ module SimplyMessages
|
|
5
5
|
extend ::ActiveSupport::Concern
|
6
6
|
|
7
7
|
module InstanceMethods
|
8
|
-
def messages_block(options = {})
|
9
8
|
|
9
|
+
def messages_block(options = {})
|
10
10
|
# make options[:for] an array
|
11
11
|
options[:for] ||= []
|
12
12
|
options[:for] = [options[:for]] unless options[:for].is_a?(Array)
|
@@ -21,48 +21,51 @@ module SimplyMessages
|
|
21
21
|
else
|
22
22
|
model_object
|
23
23
|
end
|
24
|
-
end.select {|m|
|
25
|
-
|
26
|
-
# all models errors
|
27
|
-
models_errors = []
|
28
|
-
model_objects.each do |m|
|
29
|
-
errors = m.errors.entries.collect {|field, message| message}.select {|m| m.present?}
|
30
|
-
models_errors.concat(errors) if errors.any?
|
31
|
-
end
|
24
|
+
end.select { |m| m.present? }.uniq
|
32
25
|
|
33
26
|
# messages_block
|
34
27
|
messages_block = ''
|
35
28
|
|
36
|
-
#
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
29
|
+
# notice/success
|
30
|
+
flash_msg = ''
|
31
|
+
[:notice, :success].each do |key|
|
32
|
+
if flash[key].present?
|
33
|
+
flash_msg += content_tag(:p, flash[key])
|
34
|
+
messages_block += content_tag(:div, flash_msg.html_safe, :class => key.to_s)
|
35
|
+
end
|
43
36
|
end
|
44
37
|
|
45
|
-
#
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
38
|
+
# alert/error
|
39
|
+
flash_msg = ''
|
40
|
+
html_class = ''
|
41
|
+
[:alert, :error].each do |key|
|
50
42
|
if flash[key].present?
|
51
|
-
|
43
|
+
flash_msg += content_tag(:p, flash[key])
|
44
|
+
html_class += key.to_s
|
52
45
|
end
|
46
|
+
end
|
53
47
|
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
48
|
+
# all models errors
|
49
|
+
errors = ''
|
50
|
+
model_objects.each do |model|
|
51
|
+
if model.errors.any?
|
52
|
+
errors += content_tag(:p, I18n.translate(
|
53
|
+
model.errors.count > 1 ? :other : :one,
|
54
|
+
:count => model.errors.count,
|
55
|
+
:model => model.class.model_name.human,
|
56
|
+
:scope => [:activerecord, :errors, :template, :header]) + ':')
|
57
|
+
|
58
|
+
msg = ''
|
59
|
+
model.errors.full_messages.each do |e|
|
60
|
+
msg += content_tag(:li, e)
|
58
61
|
end
|
59
|
-
|
62
|
+
errors += content_tag(:ul, msg.html_safe)
|
60
63
|
end
|
61
|
-
|
62
|
-
messages_block += content_tag(:div, msg, :class => key.to_s)
|
63
64
|
end
|
64
65
|
|
65
|
-
messages_block
|
66
|
+
messages_block += content_tag(:div, flash_msg.html_safe + errors.html_safe, :class => (html_class.presence || 'alert'))
|
67
|
+
|
68
|
+
messages_block.html_safe
|
66
69
|
end
|
67
70
|
|
68
71
|
end
|
data/simply_messages.gemspec
CHANGED
@@ -25,4 +25,7 @@ Gem::Specification.new do |s|
|
|
25
25
|
s.add_dependency 'rails', ['>= 3.0.0']
|
26
26
|
s.add_development_dependency 'bundler', ['>= 1.0.0']
|
27
27
|
s.add_development_dependency 'sqlite3', ['>= 0']
|
28
|
+
s.add_development_dependency 'rspec', ['>= 0']
|
29
|
+
s.add_development_dependency 'rspec-rails', ['>= 0']
|
30
|
+
s.add_development_dependency 'webrat', ['>= 0']
|
28
31
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simply_messages
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 27
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 2
|
10
|
+
version: 0.0.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- "Pawe\xC5\x82 Go\xC5\x9Bcicki"
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-05-
|
18
|
+
date: 2011-05-15 00:00:00 +02:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -64,6 +64,48 @@ dependencies:
|
|
64
64
|
version: "0"
|
65
65
|
type: :development
|
66
66
|
version_requirements: *id003
|
67
|
+
- !ruby/object:Gem::Dependency
|
68
|
+
name: rspec
|
69
|
+
prerelease: false
|
70
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
71
|
+
none: false
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
hash: 3
|
76
|
+
segments:
|
77
|
+
- 0
|
78
|
+
version: "0"
|
79
|
+
type: :development
|
80
|
+
version_requirements: *id004
|
81
|
+
- !ruby/object:Gem::Dependency
|
82
|
+
name: rspec-rails
|
83
|
+
prerelease: false
|
84
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
85
|
+
none: false
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
hash: 3
|
90
|
+
segments:
|
91
|
+
- 0
|
92
|
+
version: "0"
|
93
|
+
type: :development
|
94
|
+
version_requirements: *id005
|
95
|
+
- !ruby/object:Gem::Dependency
|
96
|
+
name: webrat
|
97
|
+
prerelease: false
|
98
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
99
|
+
none: false
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
hash: 3
|
104
|
+
segments:
|
105
|
+
- 0
|
106
|
+
version: "0"
|
107
|
+
type: :development
|
108
|
+
version_requirements: *id006
|
67
109
|
description: simply_messages is a unified flash and error messages display solution
|
68
110
|
email:
|
69
111
|
- pawel.goscicki@gmail.com
|