stackable_flash 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -31,13 +31,13 @@ In an environment file, or application.rb
31
31
  # You can use a lambda instead of a proc
32
32
  StackableFlash::Config.configure do
33
33
  # Leave it as an array
34
- config[:stack_with_proc] = Proc.new {|arr| arr } )
34
+ config[:stack_with_proc] = Proc.new {|arr| arr }
35
35
  # Make a set of statements separated by br tags
36
- config[:stack_with_proc] = Proc.new {|arr| arr.join('<br/>') } ) # THIS IS DEFAULT IF LEFT UNCONFIGURED
36
+ config[:stack_with_proc] = Proc.new {|arr| arr.join('<br/>') } # THIS IS DEFAULT IF LEFT UNCONFIGURED
37
37
  # Make a set of p tags:
38
- config[:stack_with_proc] = Proc.new {|arr| arr.map! {|x| "<p>#{x}</p>"}.join } } )
38
+ config[:stack_with_proc] = Proc.new {|arr| arr.map! {|x| "<p>#{x}</p>"}.join }
39
39
  # Make an unordered list of tags:
40
- config[:stack_with_proc] = Proc.new {|arr| '<ul>' + arr.map! {|x| "<li>#{x}</li>"}.join + '</ul> } } )
40
+ config[:stack_with_proc] = Proc.new {|arr| '<ul>' + arr.map! {|x| "<li>#{x}</li>"}.join + '</ul>' }
41
41
  end
42
42
 
43
43
  ## Usage
@@ -96,10 +96,21 @@ And
96
96
  flash[:notice].stack # => NoMethodError !!!
97
97
  end
98
98
 
99
+ ## Sightings
100
+
101
+ This gem is used by the cacheable_flash gem to provide stacking flashes. You can check it out for a working example.
102
+
99
103
  ## Contributing
100
104
 
101
105
  1. Fork it
102
106
  2. Create your feature branch (`git checkout -b my-new-feature`)
103
107
  3. Commit your changes (`git commit -am 'Added some feature'`)
104
108
  4. Push to the branch (`git push origin my-new-feature`)
105
- 5. Create new Pull Request
109
+ 5. Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
110
+ 6. Create new Pull Request
111
+
112
+ == Copyright
113
+
114
+ Licensed under the MIT License.
115
+
116
+ - Copyright (c) 2012 Peter H. Boling (http://peterboling.com). See LICENSE for further details.
@@ -5,9 +5,26 @@ module StackableFlash
5
5
  def self.included(base)
6
6
  base.class_eval do
7
7
  alias_method_chain :[]=, :stacking
8
+ alias_method_chain :[], :stacking
8
9
  end
9
10
  end
10
11
 
12
+ define_method "[]_with_stacking" do |key|
13
+ if StackableFlash.stacking
14
+ #Do it in a non-stacking block so we get normal behavior from flash[:notice] calls
15
+ StackableFlash.not_stacked do
16
+ actual = send("[]_without_stacking", key)
17
+ if actual.nil?
18
+ send("[]_with_stacking=", key, StackableFlash::FlashStack.new)
19
+ end
20
+ end
21
+ else
22
+ # All StackableFlash functionality is completely bypassed
23
+ send("[]_without_stacking", key)
24
+ end
25
+ return send("[]_without_stacking", key)
26
+ end
27
+
11
28
  define_method "[]_with_stacking=" do |key, value|
12
29
  if StackableFlash.stacking
13
30
  # Do it in a non-stacking block so we get normal behavior from flash[:notice] calls
@@ -1,3 +1,3 @@
1
1
  module StackableFlash
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -4,18 +4,27 @@ describe DummyController do
4
4
 
5
5
  render_views
6
6
 
7
+ it "should handle multiple keys" do
8
+ get :multiple_keys
9
+ controller.flash[:notice].should == ['This is a Notice']
10
+ controller.flash[:errors].should == ['This is an Error']
11
+ end
12
+
7
13
  it "should override" do
8
14
  get :override
15
+ controller.flash[:notice].should_not == ['original']
9
16
  controller.flash[:notice].should == ['message']
10
17
  end
11
18
 
12
- it "should build a stack" do
19
+ it "should stack" do
13
20
  get :stack
14
21
  controller.flash[:notice].should == ['original','message','another']
22
+ controller.flash[:notice].stack.should == 'original<br/>message<br/>another'
15
23
  end
16
24
 
17
- it "should allow transformation" do
18
- get :stack
25
+ it "should cold boot" do
26
+ get :cold_boot
27
+ controller.flash[:notice].should == ['original','message','another']
19
28
  controller.flash[:notice].stack.should == 'original<br/>message<br/>another'
20
29
  end
21
30
 
@@ -1,14 +1,29 @@
1
1
  class DummyController < ApplicationController
2
- include StackableFlash
2
+
3
+ def multiple_keys
4
+ flash[:notice] = 'This is a Notice'
5
+ flash[:errors] = 'This is an Error'
6
+ render :text => 'Foo'
7
+ end
8
+
3
9
  def override
4
10
  flash[:notice] = 'original'
5
11
  flash[:notice] = 'message'
12
+ render :text => 'Foo'
6
13
  end
7
14
 
8
15
  def stack
9
16
  flash[:notice] = 'original'
10
17
  flash[:notice] << 'message'
11
18
  flash[:notice] << 'another'
19
+ render :text => 'Foo'
20
+ end
21
+
22
+ def cold_boot
23
+ flash[:notice] << 'original'
24
+ flash[:notice] << 'message'
25
+ flash[:notice] << 'another'
26
+ render :text => 'Foo'
12
27
  end
13
28
 
14
29
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stackable_flash
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-08-21 00:00:00.000000000 Z
12
+ date: 2012-08-22 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails