glow 0.0.12 → 0.0.13

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,39 +1,39 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- glow (0.0.12)
4
+ glow (0.0.13)
5
5
  jquery-rails
6
6
  rails (>= 3.0.0, < 4.0.0)
7
7
 
8
8
  GEM
9
9
  remote: http://rubygems.org/
10
10
  specs:
11
- actionmailer (3.2.9)
12
- actionpack (= 3.2.9)
13
- mail (~> 2.4.4)
14
- actionpack (3.2.9)
15
- activemodel (= 3.2.9)
16
- activesupport (= 3.2.9)
11
+ actionmailer (3.2.13)
12
+ actionpack (= 3.2.13)
13
+ mail (~> 2.5.3)
14
+ actionpack (3.2.13)
15
+ activemodel (= 3.2.13)
16
+ activesupport (= 3.2.13)
17
17
  builder (~> 3.0.0)
18
18
  erubis (~> 2.7.0)
19
19
  journey (~> 1.0.4)
20
- rack (~> 1.4.0)
20
+ rack (~> 1.4.5)
21
21
  rack-cache (~> 1.2)
22
22
  rack-test (~> 0.6.1)
23
23
  sprockets (~> 2.2.1)
24
- activemodel (3.2.9)
25
- activesupport (= 3.2.9)
24
+ activemodel (3.2.13)
25
+ activesupport (= 3.2.13)
26
26
  builder (~> 3.0.0)
27
- activerecord (3.2.9)
28
- activemodel (= 3.2.9)
29
- activesupport (= 3.2.9)
27
+ activerecord (3.2.13)
28
+ activemodel (= 3.2.13)
29
+ activesupport (= 3.2.13)
30
30
  arel (~> 3.0.2)
31
31
  tzinfo (~> 0.3.29)
32
- activeresource (3.2.9)
33
- activemodel (= 3.2.9)
34
- activesupport (= 3.2.9)
35
- activesupport (3.2.9)
36
- i18n (~> 0.6)
32
+ activeresource (3.2.13)
33
+ activemodel (= 3.2.13)
34
+ activesupport (= 3.2.13)
35
+ activesupport (3.2.13)
36
+ i18n (= 0.6.1)
37
37
  multi_json (~> 1.0)
38
38
  arel (3.0.2)
39
39
  builder (3.0.4)
@@ -41,53 +41,53 @@ GEM
41
41
  hike (1.2.1)
42
42
  i18n (0.6.1)
43
43
  journey (1.0.4)
44
- jquery-rails (2.1.3)
45
- railties (>= 3.1.0, < 5.0)
46
- thor (~> 0.14)
47
- json (1.7.5)
48
- mail (2.4.4)
44
+ jquery-rails (2.1.4)
45
+ railties (>= 3.0, < 5.0)
46
+ thor (>= 0.14, < 2.0)
47
+ json (1.7.7)
48
+ mail (2.5.3)
49
49
  i18n (>= 0.4.0)
50
50
  mime-types (~> 1.16)
51
51
  treetop (~> 1.4.8)
52
- mime-types (1.19)
53
- multi_json (1.3.7)
52
+ mime-types (1.21)
53
+ multi_json (1.7.1)
54
54
  polyglot (0.3.3)
55
- rack (1.4.1)
55
+ rack (1.4.5)
56
56
  rack-cache (1.2)
57
57
  rack (>= 0.4)
58
- rack-ssl (1.3.2)
58
+ rack-ssl (1.3.3)
59
59
  rack
60
60
  rack-test (0.6.2)
61
61
  rack (>= 1.0)
62
- rails (3.2.9)
63
- actionmailer (= 3.2.9)
64
- actionpack (= 3.2.9)
65
- activerecord (= 3.2.9)
66
- activeresource (= 3.2.9)
67
- activesupport (= 3.2.9)
62
+ rails (3.2.13)
63
+ actionmailer (= 3.2.13)
64
+ actionpack (= 3.2.13)
65
+ activerecord (= 3.2.13)
66
+ activeresource (= 3.2.13)
67
+ activesupport (= 3.2.13)
68
68
  bundler (~> 1.0)
69
- railties (= 3.2.9)
70
- railties (3.2.9)
71
- actionpack (= 3.2.9)
72
- activesupport (= 3.2.9)
69
+ railties (= 3.2.13)
70
+ railties (3.2.13)
71
+ actionpack (= 3.2.13)
72
+ activesupport (= 3.2.13)
73
73
  rack-ssl (~> 1.3.2)
74
74
  rake (>= 0.8.7)
75
75
  rdoc (~> 3.4)
76
76
  thor (>= 0.14.6, < 2.0)
77
- rake (10.0.2)
78
- rdoc (3.12)
77
+ rake (10.0.3)
78
+ rdoc (3.12.2)
79
79
  json (~> 1.4)
80
- sprockets (2.2.1)
80
+ sprockets (2.2.2)
81
81
  hike (~> 1.2)
82
82
  multi_json (~> 1.0)
83
83
  rack (~> 1.0)
84
84
  tilt (~> 1.1, != 1.3.0)
85
- thor (0.16.0)
86
- tilt (1.3.3)
85
+ thor (0.17.0)
86
+ tilt (1.3.6)
87
87
  treetop (1.4.12)
88
88
  polyglot
89
89
  polyglot (>= 0.3.1)
90
- tzinfo (0.3.35)
90
+ tzinfo (0.3.37)
91
91
 
92
92
  PLATFORMS
93
93
  ruby
data/README.md CHANGED
@@ -8,17 +8,21 @@ Fash Hash in Javascript. Depends on jQuery.
8
8
  Any flash messages set in ajax responses fire a `glow:flash`
9
9
  event on `document`.
10
10
 
11
- flash[:notice] = 'Ajax man!'
12
- respond_to do |format|
13
- format.js { head :ok }
14
- end
11
+ ```ruby
12
+ flash[:notice] = 'Ajax man!'
13
+ respond_to do |format|
14
+ format.js { head :ok }
15
+ end
16
+ ```
15
17
 
16
18
  Handle it any way you want:
17
19
 
18
- $(document).bind('glow:flash', function(evt, flash) {
19
- alert(flash.type);
20
- alert(flash.message);
21
- });
20
+ ```javascript
21
+ $(document).bind('glow:flash', function(evt, flash) {
22
+ alert(flash.type);
23
+ alert(flash.message);
24
+ });
25
+ ```
22
26
 
23
27
  Also adds a `Flash` object that enables you to fire `glow:flash`.
24
28
 
@@ -37,6 +41,33 @@ responses).
37
41
 
38
42
  If you want to skip the glow after_filter just set `flash[:skip_glow]`.
39
43
 
44
+
45
+ You can also use glow with APIs by using `headerize_flash_for` and passing
46
+ in the request formats you want the flash messages passed back.
47
+
48
+ ``` ruby
49
+ class API::Base < ActionController::Base
50
+ headerize_flash_for :json
51
+ end
52
+ ```
53
+
54
+ Controllers inheriting from a controller using `headerize_format_for` will
55
+ inherit the capability or it can be overridden.
56
+
57
+ ``` ruby
58
+ class API::JSON < API::Base
59
+ # will headerize flash for JSON requests
60
+ end
61
+
62
+ class API::XML < API::Base
63
+ headerize_flash_for :xml
64
+ # will NOT headerize flash for JSON requests
65
+ # but will headerize flash for XML requests
66
+ end
67
+ ```
68
+
69
+
70
+
40
71
  ## Installation
41
72
 
42
73
  In your gemfile add
@@ -4,11 +4,12 @@ module Glow
4
4
  module Filter
5
5
  extend ActiveSupport::Concern
6
6
  included do
7
- after_filter :flash_to_headers
7
+ after_filter :flash_to_headers
8
+ class_attribute :glow_request_formats
8
9
  end
9
10
 
10
11
  def flash_to_headers
11
- return unless flash.any? && request.xhr?
12
+ return unless flash.any? && flash_to_headers?
12
13
  return if flash[:skip_glow] and flash.delete(:skip_glow)
13
14
 
14
15
  type, message = flash.first
@@ -17,5 +18,17 @@ module Glow
17
18
  flash.discard # don't want the flash to appear when you reload page
18
19
  end
19
20
 
21
+ def flash_to_headers?
22
+ request.xhr? ||
23
+ glow_request_formats? && glow_request_formats.include?(request.format.to_sym)
24
+ end
25
+
26
+
27
+ module ClassMethods
28
+ def headerize_flash_for *formats
29
+ self.glow_request_formats = formats
30
+ end
31
+ end
32
+
20
33
  end
21
34
  end
@@ -1,3 +1,3 @@
1
1
  module Glow
2
- VERSION = "0.0.12"
2
+ VERSION = "0.0.13"
3
3
  end
@@ -1,4 +1,4 @@
1
- source :rubygems
1
+ source 'https://rubygems.org'
2
2
  gem 'rails', "~> 3.0.0"
3
3
  gem 'jquery-rails'
4
4
  gem 'glow', path: '../..'
@@ -1,12 +1,12 @@
1
1
  PATH
2
2
  remote: ../..
3
3
  specs:
4
- glow (0.0.10)
4
+ glow (0.0.13)
5
5
  jquery-rails
6
6
  rails (>= 3.0.0, < 4.0.0)
7
7
 
8
8
  GEM
9
- remote: http://rubygems.org/
9
+ remote: https://rubygems.org/
10
10
  specs:
11
11
  abstract (1.0.0)
12
12
  actionmailer (3.0.17)
@@ -1,20 +1,25 @@
1
1
  class FlashController < ApplicationController
2
+
3
+ headerize_flash_for :json
4
+
2
5
  def show
3
6
  # show.html.erb
4
7
  end
5
8
 
6
9
  def redirect
7
- flash[params[:type]] = params[:message]
10
+ flash[params[:type].to_sym] = params[:message]
8
11
  redirect_to action: 'show'
9
12
  end
10
13
 
11
14
  def ajax
12
15
  respond_to do |wants|
13
- wants.js {
14
- flash[params[:type]] = params[:message]
15
- flash[:skip_glow] = params[:skip_glow].present?
16
- head :ok
17
- }
16
+ [:js, :json, :xml].each do |fmt|
17
+ wants.send(fmt) {
18
+ flash[params[:type].to_sym] = params[:message]
19
+ flash[:skip_glow] = params[:skip_glow].present?
20
+ head :ok
21
+ }
22
+ end
18
23
  end
19
24
  end
20
25
  end
@@ -15,7 +15,7 @@ describe FlashController do
15
15
  flash.keep?(:notice).should be true
16
16
  end
17
17
 
18
- it "should display flash message on xhr" do
18
+ it "should display flash message on xhr" do
19
19
  xhr :get, :ajax, type: :notice, message: 'Glow!'
20
20
 
21
21
  flash[:notice].should be == 'Glow!'
@@ -35,4 +35,21 @@ describe FlashController do
35
35
  xhr :get, :ajax, type: :notice, message: 'utf8: ✓', skip_glow: true
36
36
  @response.headers.should_not have_key 'X-Message-Type'
37
37
  end
38
+
39
+ it "should pass flash message on JSON requests" do
40
+ get :ajax, type: :notice, message: 'Glow!', format: :json
41
+
42
+ flash[:notice].should be == 'Glow!'
43
+ flash.discard?(:notice).should be true
44
+
45
+ @response.headers['X-Message-Type'].should be == 'notice'
46
+ HTMLEntities.new.decode(@response.headers['X-Message']).should be == 'Glow!'
47
+ end
48
+
49
+ it "should not pass flash message on XML requests" do
50
+ get :ajax, type: :notice, message: 'Glow!', format: :xml
51
+
52
+ @response.headers['X-Message-Type'].should be_nil
53
+ @response.headers['X-Message'].should be_nil
54
+ end
38
55
  end
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: ../..
3
3
  specs:
4
- glow (0.0.11)
4
+ glow (0.0.13)
5
5
  jquery-rails
6
6
  rails (>= 3.0.0, < 4.0.0)
7
7
 
@@ -1,4 +1,7 @@
1
1
  class FlashController < ApplicationController
2
+
3
+ headerize_flash_for :json
4
+
2
5
  def show
3
6
  # show.html.erb
4
7
  end
@@ -10,11 +13,13 @@ class FlashController < ApplicationController
10
13
 
11
14
  def ajax
12
15
  respond_to do |wants|
13
- wants.js {
14
- flash[params[:type].to_sym] = params[:message]
15
- flash[:skip_glow] = params[:skip_glow].present?
16
- head :ok
17
- }
16
+ [:js, :json, :xml].each do |fmt|
17
+ wants.send(fmt) {
18
+ flash[params[:type].to_sym] = params[:message]
19
+ flash[:skip_glow] = params[:skip_glow].present?
20
+ head :ok
21
+ }
22
+ end
18
23
  end
19
24
  end
20
25
  end
@@ -15,7 +15,7 @@ describe FlashController do
15
15
  flash.keep?(:notice).should be true
16
16
  end
17
17
 
18
- it "should display flash message on xhr" do
18
+ it "should display flash message on xhr" do
19
19
  xhr :get, :ajax, type: :notice, message: 'Glow!'
20
20
 
21
21
  flash[:notice].should be == 'Glow!'
@@ -35,4 +35,21 @@ describe FlashController do
35
35
  xhr :get, :ajax, type: :notice, message: 'utf8: ✓', skip_glow: true
36
36
  @response.headers.should_not have_key 'X-Message-Type'
37
37
  end
38
+
39
+ it "should pass flash message on JSON requests" do
40
+ get :ajax, type: :notice, message: 'Glow!', format: :json
41
+
42
+ flash[:notice].should be == 'Glow!'
43
+ flash.discard?(:notice).should be true
44
+
45
+ @response.headers['X-Message-Type'].should be == 'notice'
46
+ HTMLEntities.new.decode(@response.headers['X-Message']).should be == 'Glow!'
47
+ end
48
+
49
+ it "should not pass flash message on XML requests" do
50
+ get :ajax, type: :notice, message: 'Glow!', format: :xml
51
+
52
+ @response.headers['X-Message-Type'].should be_nil
53
+ @response.headers['X-Message'].should be_nil
54
+ end
38
55
  end
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: ../..
3
3
  specs:
4
- glow (0.0.10)
4
+ glow (0.0.13)
5
5
  jquery-rails
6
6
  rails (>= 3.0.0, < 4.0.0)
7
7
 
@@ -1,4 +1,7 @@
1
1
  class FlashController < ApplicationController
2
+
3
+ headerize_flash_for :json
4
+
2
5
  def show
3
6
  # show.html.erb
4
7
  end
@@ -10,11 +13,13 @@ class FlashController < ApplicationController
10
13
 
11
14
  def ajax
12
15
  respond_to do |wants|
13
- wants.js {
14
- flash[params[:type].to_sym] = params[:message]
15
- flash[:skip_glow] = params[:skip_glow].present?
16
- head :ok
17
- }
16
+ [:js, :json, :xml].each do |fmt|
17
+ wants.send(fmt) {
18
+ flash[params[:type].to_sym] = params[:message]
19
+ flash[:skip_glow] = params[:skip_glow].present?
20
+ head :ok
21
+ }
22
+ end
18
23
  end
19
24
  end
20
25
  end
@@ -15,7 +15,7 @@ describe FlashController do
15
15
  flash.keep?(:notice).should be true
16
16
  end
17
17
 
18
- it "should display flash message on xhr" do
18
+ it "should display flash message on xhr" do
19
19
  xhr :get, :ajax, type: :notice, message: 'Glow!'
20
20
 
21
21
  flash[:notice].should be == 'Glow!'
@@ -35,4 +35,21 @@ describe FlashController do
35
35
  xhr :get, :ajax, type: :notice, message: 'utf8: ✓', skip_glow: true
36
36
  @response.headers.should_not have_key 'X-Message-Type'
37
37
  end
38
+
39
+ it "should pass flash message on JSON requests" do
40
+ get :ajax, type: :notice, message: 'Glow!', format: :json
41
+
42
+ flash[:notice].should be == 'Glow!'
43
+ flash.discard?(:notice).should be true
44
+
45
+ @response.headers['X-Message-Type'].should be == 'notice'
46
+ HTMLEntities.new.decode(@response.headers['X-Message']).should be == 'Glow!'
47
+ end
48
+
49
+ it "should not pass flash message on XML requests" do
50
+ get :ajax, type: :notice, message: 'Glow!', format: :xml
51
+
52
+ @response.headers['X-Message-Type'].should be_nil
53
+ @response.headers['X-Message'].should be_nil
54
+ end
38
55
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: glow
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.12
5
+ version: 0.0.13
6
6
  platform: ruby
7
7
  authors:
8
8
  - Daniel Kirsch
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-12-14 00:00:00.000000000 Z
13
+ date: 2013-05-10 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  version_requirements: !ruby/object:Gem::Requirement
@@ -210,7 +210,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
210
210
  version: '0'
211
211
  segments:
212
212
  - 0
213
- hash: 3382820471934454932
213
+ hash: -1114898616114158001
214
214
  none: false
215
215
  required_rubygems_version: !ruby/object:Gem::Requirement
216
216
  requirements:
@@ -219,7 +219,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
219
219
  version: '0'
220
220
  segments:
221
221
  - 0
222
- hash: 3382820471934454932
222
+ hash: -1114898616114158001
223
223
  none: false
224
224
  requirements: []
225
225
  rubyforge_project: