message_block 1.0.4 → 1.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.
@@ -1,94 +1,70 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- message_block (1.0.3)
4
+ message_block (1.0.4)
5
5
  rails (>= 3.0.0)
6
6
 
7
7
  GEM
8
8
  remote: http://rubygems.org/
9
9
  specs:
10
10
  abstract (1.0.0)
11
- actionmailer (3.0.0)
12
- actionpack (= 3.0.0)
13
- mail (~> 2.2.5)
14
- actionpack (3.0.0)
15
- activemodel (= 3.0.0)
16
- activesupport (= 3.0.0)
11
+ actionmailer (3.0.3)
12
+ actionpack (= 3.0.3)
13
+ mail (~> 2.2.9)
14
+ actionpack (3.0.3)
15
+ activemodel (= 3.0.3)
16
+ activesupport (= 3.0.3)
17
17
  builder (~> 2.1.2)
18
18
  erubis (~> 2.6.6)
19
- i18n (~> 0.4.1)
19
+ i18n (~> 0.4)
20
20
  rack (~> 1.2.1)
21
- rack-mount (~> 0.6.12)
22
- rack-test (~> 0.5.4)
21
+ rack-mount (~> 0.6.13)
22
+ rack-test (~> 0.5.6)
23
23
  tzinfo (~> 0.3.23)
24
- activemodel (3.0.0)
25
- activesupport (= 3.0.0)
24
+ activemodel (3.0.3)
25
+ activesupport (= 3.0.3)
26
26
  builder (~> 2.1.2)
27
- i18n (~> 0.4.1)
28
- activerecord (3.0.0)
29
- activemodel (= 3.0.0)
30
- activesupport (= 3.0.0)
31
- arel (~> 1.0.0)
27
+ i18n (~> 0.4)
28
+ activerecord (3.0.3)
29
+ activemodel (= 3.0.3)
30
+ activesupport (= 3.0.3)
31
+ arel (~> 2.0.2)
32
32
  tzinfo (~> 0.3.23)
33
- activeresource (3.0.0)
34
- activemodel (= 3.0.0)
35
- activesupport (= 3.0.0)
36
- activesupport (3.0.0)
37
- arel (1.0.1)
38
- activesupport (~> 3.0.0)
33
+ activeresource (3.0.3)
34
+ activemodel (= 3.0.3)
35
+ activesupport (= 3.0.3)
36
+ activesupport (3.0.3)
37
+ arel (2.0.10)
39
38
  builder (2.1.2)
40
- capybara (0.3.9)
41
- culerity (>= 0.2.4)
42
- mime-types (>= 1.16)
43
- nokogiri (>= 1.3.3)
44
- rack (>= 1.0.0)
45
- rack-test (>= 0.5.4)
46
- selenium-webdriver (>= 0.0.3)
47
- childprocess (0.0.7)
48
- ffi (~> 0.6.3)
49
- cucumber (0.9.2)
50
- builder (~> 2.1.2)
51
- diff-lcs (~> 1.1.2)
52
- gherkin (~> 2.2.5)
53
- json (~> 1.4.6)
54
- term-ansicolor (~> 1.0.5)
55
- culerity (0.2.12)
56
39
  diff-lcs (1.1.2)
57
40
  erubis (2.6.6)
58
41
  abstract (>= 1.0.0)
59
- ffi (0.6.3)
60
- rake (>= 0.8.7)
61
- gherkin (2.2.8)
62
- json (~> 1.4.6)
63
- term-ansicolor (~> 1.0.5)
64
- i18n (0.4.1)
65
- json (1.4.6)
66
- json_pure (1.4.6)
67
- mail (2.2.7)
42
+ i18n (0.6.0)
43
+ mail (2.2.19)
68
44
  activesupport (>= 2.3.6)
69
- mime-types
70
- treetop (>= 1.4.5)
45
+ i18n (>= 0.4.0)
46
+ mime-types (~> 1.16)
47
+ treetop (~> 1.4.8)
71
48
  mime-types (1.16)
72
- nokogiri (1.4.3.1)
73
- polyglot (0.3.1)
49
+ polyglot (0.3.3)
74
50
  rack (1.2.1)
75
- rack-mount (0.6.13)
51
+ rack-mount (0.6.14)
76
52
  rack (>= 1.0.0)
77
53
  rack-test (0.5.6)
78
54
  rack (>= 1.0)
79
- rails (3.0.0)
80
- actionmailer (= 3.0.0)
81
- actionpack (= 3.0.0)
82
- activerecord (= 3.0.0)
83
- activeresource (= 3.0.0)
84
- activesupport (= 3.0.0)
85
- bundler (~> 1.0.0)
86
- railties (= 3.0.0)
87
- railties (3.0.0)
88
- actionpack (= 3.0.0)
89
- activesupport (= 3.0.0)
90
- rake (>= 0.8.4)
91
- thor (~> 0.14.0)
55
+ rails (3.0.3)
56
+ actionmailer (= 3.0.3)
57
+ actionpack (= 3.0.3)
58
+ activerecord (= 3.0.3)
59
+ activeresource (= 3.0.3)
60
+ activesupport (= 3.0.3)
61
+ bundler (~> 1.0)
62
+ railties (= 3.0.3)
63
+ railties (3.0.3)
64
+ actionpack (= 3.0.3)
65
+ activesupport (= 3.0.3)
66
+ rake (>= 0.8.7)
67
+ thor (~> 0.14.4)
92
68
  rake (0.8.7)
93
69
  rspec (2.0.0)
94
70
  rspec-core (= 2.0.0)
@@ -100,26 +76,17 @@ GEM
100
76
  rspec-mocks (2.0.0)
101
77
  rspec-core (= 2.0.0)
102
78
  rspec-expectations (= 2.0.0)
103
- rubyzip (0.9.4)
104
- selenium-webdriver (0.0.29)
105
- childprocess (>= 0.0.7)
106
- ffi (~> 0.6.3)
107
- json_pure
108
- rubyzip
109
79
  sqlite3-ruby (1.3.1)
110
- term-ansicolor (1.0.5)
111
- thor (0.14.3)
112
- treetop (1.4.8)
80
+ thor (0.14.6)
81
+ treetop (1.4.10)
82
+ polyglot
113
83
  polyglot (>= 0.3.1)
114
- tzinfo (0.3.23)
84
+ tzinfo (0.3.33)
115
85
 
116
86
  PLATFORMS
117
87
  ruby
118
88
 
119
89
  DEPENDENCIES
120
- capybara (~> 0.3.9)
121
- cucumber (~> 0.9.2)
122
90
  message_block!
123
- rails (>= 3.0.0)
124
91
  rspec (~> 2.0)
125
92
  sqlite3-ruby (~> 1.3.1)
@@ -1,3 +1,5 @@
1
+ {<img src="https://secure.travis-ci.org/rubiety/message_block.png?branch=master" alt="Build Status" />}[http://travis-ci.org/rubiety/message_block]
2
+
1
3
  == Message Block
2
4
 
3
5
  Implements the common view pattern by which a list of messages are shown at the top,
@@ -76,59 +78,3 @@ given that both user and comment fail ActiveRecord validation:
76
78
  </div>
77
79
 
78
80
  Note that instead of manually specifying models you wish to report errors on, you can instead use the special <tt>:all</tt> value which will automatically use all view assign values that contain an ActiveModel::Errors "errors" method.
79
-
80
- === Ajax & JavaScript Integration
81
-
82
- Sometimes you'll want to use the message block pattern within JavaScript. Wouldn't it be nice to just populate
83
- the message_block DOM tree based on a JavaScript object not unlike Rails flash?
84
-
85
- Included in the plugin is a Prototype JS implementation to make this easier. Note that this file is *not* automatically
86
- copied when the plugin is installed. Currently this only works with prototype, but will be converted to jQuery before long:
87
-
88
- assets/javascripts/message_block.js
89
-
90
- Example Usage:
91
-
92
- <div id="something">
93
- <%= message_block :on => :job %>
94
- </div>
95
-
96
- <script type="text/javascript">
97
- document.observe('dom:loaded', function() {
98
- message_block = new MessageBlock('message_block'); // Default ID is message_block, being explicit
99
-
100
- // Updates with two errors and one confirmation
101
- message_block.update({
102
- error: ['Error One', 'Error Two'],
103
- confirm: ['Confirmation Message']
104
- });
105
-
106
- // Clears the message block
107
- message_block.clear();
108
-
109
- // Same as above...
110
- message_block.update({});
111
- });
112
- </script>
113
-
114
- This could be useful if you're interacting with stuff via Ajax, for example:
115
-
116
- # In Controller
117
- wants.json do
118
- render :status => :unprocessable_entity, :json => { 'error' => @job.errors.full_messages }
119
- end
120
-
121
- # JavaScript Ajax
122
- new Ajax.Request("/jobs", {
123
- method: 'get',
124
-
125
- onFailure: function(transport) {
126
- this.message_block.update(transport.responseJSON);
127
- },
128
-
129
- onSuccess: function(transport) {
130
- this.message_block.clear();
131
-
132
- // Do something...
133
- }
134
- });
data/Rakefile CHANGED
@@ -2,6 +2,29 @@ require 'rubygems'
2
2
  require 'rake'
3
3
  require 'rake/rdoctask'
4
4
 
5
+ require 'rubygems'
6
+ require 'bundler/setup'
7
+
8
+ require 'rake'
9
+ require 'rspec/core/rake_task'
10
+
11
+ Bundler::GemHelper.install_tasks
12
+
13
+ desc 'Default: run unit tests.'
14
+ task :default => [:clean, :test]
15
+
16
+ desc "Run Specs"
17
+ RSpec::Core::RakeTask.new(:spec) do |t|
18
+ end
19
+
20
+ task :test => :spec
21
+
22
+ desc "Clean up files."
23
+ task :clean do |t|
24
+ FileUtils.rm_rf "tmp"
25
+ Dir.glob("message_block-*.gem").each {|f| FileUtils.rm f }
26
+ end
27
+
5
28
  desc "Generate documentation for the plugin."
6
29
  Rake::RDocTask.new(:rdoc) do |rdoc|
7
30
  rdoc.rdoc_dir = "rdoc"
@@ -12,3 +35,5 @@ Rake::RDocTask.new(:rdoc) do |rdoc|
12
35
  end
13
36
 
14
37
  Dir["#{File.dirname(__FILE__)}/lib/tasks/*.rake"].sort.each { |ext| load ext }
38
+
39
+
@@ -43,10 +43,12 @@ module MessageBlock
43
43
  "<ul class=\"#{type}\">" + flash_messages[type.to_sym].map {|message| "<li>#{message}</li>" }.join + "</ul>"
44
44
  end.join
45
45
 
46
- if options[:container]
47
- content_tag(options[:container], contents, options[:html], false)
48
- else
49
- contents
46
+ unless contents.blank?
47
+ if options[:container]
48
+ content_tag(options[:container], contents, options[:html], false)
49
+ else
50
+ contents
51
+ end
50
52
  end
51
53
  end
52
54
 
@@ -1,3 +1,3 @@
1
1
  module MessageBlock
2
- VERSION = "1.0.4"
2
+ VERSION = "1.1.0"
3
3
  end
@@ -5,11 +5,9 @@ namespace :message_block do
5
5
 
6
6
  images_source = File.join(File.dirname(__FILE__), "..", "..", "assets", "images")
7
7
  stylesheets_source = File.join(File.dirname(__FILE__), "..", "..", "assets", "stylesheets", "message_block.css")
8
- javascripts_source = File.join(File.dirname(__FILE__), "..", "..", "assets", "javascripts", "message_block.js")
9
8
 
10
9
  images_target = Rails.root.join("public", "images", "message_block")
11
10
  stylesheets_target = Rails.root.join("public", "stylesheets", "message_block.css")
12
- javascripts_target = Rails.root.join("public", "javascripts", "message_block.js")
13
11
 
14
12
  unless File.exists?(images_target)
15
13
  FileUtils.cp_r(images_source, images_target)
@@ -25,12 +23,5 @@ namespace :message_block do
25
23
  puts " Stylesheet appears to already be installed, not copying"
26
24
  end
27
25
 
28
- unless File.exists?(javascripts_target)
29
- FileUtils.cp(javascripts_source, javascripts_target)
30
- puts " Copied Javascript"
31
- else
32
- puts " Javascript appears to already be installed, not copying"
33
- end
34
-
35
26
  end
36
- end
27
+ end
@@ -22,7 +22,7 @@ describe MessageBlock::Helpers do
22
22
  end
23
23
 
24
24
  it "should show nothing with no errors" do
25
- message_block.should == %(<div class="message_block" id="message_block"></div>)
25
+ message_block.should be_nil
26
26
  end
27
27
 
28
28
  it "should automatically find post errors with posts controller" do
@@ -67,18 +67,21 @@ describe MessageBlock::Helpers do
67
67
  end
68
68
 
69
69
  it "should be able to specify id for containing div" do
70
+ @controller = posts_controller
70
71
  output = message_block(:id => "messages")
71
- output.should == %(<div class="message_block" id="messages"></div>)
72
+ output.should == %(<div class="message_block" id="messages"><ul class="error"><li>name can't be blank</li></ul></div>)
72
73
  end
73
74
 
74
75
  it "should be able to specify class for containing div" do
76
+ @controller = posts_controller
75
77
  output = message_block(:class => "messages")
76
- output.should == %(<div class="messages" id="message_block"></div>)
78
+ output.should == %(<div class="messages" id="message_block"><ul class="error"><li>name can't be blank</li></ul></div>)
77
79
  end
78
80
 
79
81
  it "should be able to specify html options for containing div" do
82
+ @controller = posts_controller
80
83
  output = message_block(:html => {:id => "block", :class => "messages"})
81
- output.should == %(<div class="messages" id="block"></div>)
84
+ output.should == %(<div class="messages" id="block"><ul class="error"><li>name can't be blank</li></ul></div>)
82
85
  end
83
86
 
84
87
  it "should be able to specify container option as false" do
metadata CHANGED
@@ -1,111 +1,72 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: message_block
3
- version: !ruby/object:Gem::Version
4
- hash: 31
5
- prerelease: false
6
- segments:
7
- - 1
8
- - 0
9
- - 4
10
- version: 1.0.4
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.1.0
5
+ prerelease:
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Ben Hughes
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2011-04-15 00:00:00 -04:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
12
+ date: 2012-08-12 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
22
15
  name: rails
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
25
17
  none: false
26
- requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- hash: 7
30
- segments:
31
- - 3
32
- - 0
33
- - 0
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
34
21
  version: 3.0.0
35
22
  type: :runtime
36
- version_requirements: *id001
37
- - !ruby/object:Gem::Dependency
38
- name: rspec
39
23
  prerelease: false
40
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: 3.0.0
30
+ - !ruby/object:Gem::Dependency
31
+ name: rspec
32
+ requirement: !ruby/object:Gem::Requirement
41
33
  none: false
42
- requirements:
34
+ requirements:
43
35
  - - ~>
44
- - !ruby/object:Gem::Version
45
- hash: 3
46
- segments:
47
- - 2
48
- - 0
49
- version: "2.0"
36
+ - !ruby/object:Gem::Version
37
+ version: '2.0'
50
38
  type: :development
51
- version_requirements: *id002
52
- - !ruby/object:Gem::Dependency
53
- name: cucumber
54
39
  prerelease: false
55
- requirement: &id003 !ruby/object:Gem::Requirement
40
+ version_requirements: !ruby/object:Gem::Requirement
56
41
  none: false
57
- requirements:
42
+ requirements:
58
43
  - - ~>
59
- - !ruby/object:Gem::Version
60
- hash: 63
61
- segments:
62
- - 0
63
- - 9
64
- - 2
65
- version: 0.9.2
66
- type: :development
67
- version_requirements: *id003
68
- - !ruby/object:Gem::Dependency
69
- name: capybara
70
- prerelease: false
71
- requirement: &id004 !ruby/object:Gem::Requirement
44
+ - !ruby/object:Gem::Version
45
+ version: '2.0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: sqlite3-ruby
48
+ requirement: !ruby/object:Gem::Requirement
72
49
  none: false
73
- requirements:
50
+ requirements:
74
51
  - - ~>
75
- - !ruby/object:Gem::Version
76
- hash: 1
77
- segments:
78
- - 0
79
- - 3
80
- - 9
81
- version: 0.3.9
52
+ - !ruby/object:Gem::Version
53
+ version: 1.3.1
82
54
  type: :development
83
- version_requirements: *id004
84
- - !ruby/object:Gem::Dependency
85
- name: sqlite3-ruby
86
55
  prerelease: false
87
- requirement: &id005 !ruby/object:Gem::Requirement
56
+ version_requirements: !ruby/object:Gem::Requirement
88
57
  none: false
89
- requirements:
58
+ requirements:
90
59
  - - ~>
91
- - !ruby/object:Gem::Version
92
- hash: 25
93
- segments:
94
- - 1
95
- - 3
96
- - 1
60
+ - !ruby/object:Gem::Version
97
61
  version: 1.3.1
98
- type: :development
99
- version_requirements: *id005
100
- description: Implements the common view pattern by which a list of messages are shown at the top, often a combination of flash messages and ActiveRecord validation issues on one or more models.
62
+ description: Implements the common view pattern by which a list of messages are shown
63
+ at the top, often a combination of flash messages and ActiveRecord validation issues
64
+ on one or more models.
101
65
  email: ben@railsgarden.com
102
66
  executables: []
103
-
104
67
  extensions: []
105
-
106
68
  extra_rdoc_files: []
107
-
108
- files:
69
+ files:
109
70
  - lib/message_block/helpers.rb
110
71
  - lib/message_block/railtie.rb
111
72
  - lib/message_block/version.rb
@@ -119,7 +80,6 @@ files:
119
80
  - assets/images/info.gif
120
81
  - assets/images/notice.gif
121
82
  - assets/images/warn.gif
122
- - assets/javascripts/message_block.js
123
83
  - assets/stylesheets/message_block.css
124
84
  - rails/init.rb
125
85
  - Gemfile
@@ -128,41 +88,28 @@ files:
128
88
  - Rakefile
129
89
  - README.rdoc
130
90
  - init.rb
131
- has_rdoc: true
132
91
  homepage: http://github.com/rubiety/message_block
133
92
  licenses: []
134
-
135
93
  post_install_message:
136
94
  rdoc_options: []
137
-
138
- require_paths:
95
+ require_paths:
139
96
  - lib
140
- required_ruby_version: !ruby/object:Gem::Requirement
97
+ required_ruby_version: !ruby/object:Gem::Requirement
141
98
  none: false
142
- requirements:
143
- - - ">="
144
- - !ruby/object:Gem::Version
145
- hash: 3
146
- segments:
147
- - 0
148
- version: "0"
149
- required_rubygems_version: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ! '>='
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
+ required_rubygems_version: !ruby/object:Gem::Requirement
150
104
  none: false
151
- requirements:
152
- - - ">="
153
- - !ruby/object:Gem::Version
154
- hash: 19
155
- segments:
156
- - 1
157
- - 3
158
- - 4
105
+ requirements:
106
+ - - ! '>='
107
+ - !ruby/object:Gem::Version
159
108
  version: 1.3.4
160
109
  requirements: []
161
-
162
110
  rubyforge_project: message_block
163
- rubygems_version: 1.3.7
111
+ rubygems_version: 1.8.22
164
112
  signing_key:
165
113
  specification_version: 3
166
114
  summary: Flash message and error_messages_for handling with a common interface.
167
115
  test_files: []
168
-
@@ -1,37 +0,0 @@
1
- /**
2
- * Message Block JavaScript Interface
3
- *
4
- * Allows for updating a message block with JSON errors
5
- **/
6
-
7
- var MessageBlock = Class.create({
8
- initialize: function(message_block) {
9
- this.message_block = $(message_block ? message_block : "message_block");
10
- },
11
-
12
- clear: function() {
13
- this.message_block.update("");
14
- new Effect.Fade(this.message_block);
15
- },
16
-
17
- update: function(errors) {
18
- if (!errors || Object.keys(errors).size() == 0) {
19
- new Effect.Fade(this.message_block);
20
- return;
21
- }
22
-
23
- this.message_block.update("");
24
-
25
- for (error_type in errors) {
26
- $(this.message_block).appendChild(
27
- Builder.node('ul', { 'class': error_type },
28
- $A(errors[error_type]).map(function(error) {
29
- return Builder.node('li', error);
30
- })
31
- )
32
- );
33
- }
34
-
35
- new Effect.Appear(this.message_block);
36
- }
37
- });