locale_flash 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/.rspec +2 -0
- data/Guardfile +3 -0
- data/Rakefile +6 -1
- data/lib/locale_flash/action_controller.rb +24 -0
- data/lib/locale_flash/action_view.rb +41 -0
- data/lib/locale_flash/version.rb +1 -1
- data/lib/locale_flash.rb +2 -2
- data/locale_flash.gemspec +4 -0
- data/spec/fixtures/en.yml +12 -0
- data/spec/locale_flash/action_controller_spec.rb +29 -0
- data/spec/locale_flash/action_view_spec.rb +54 -0
- data/spec/spec_helper.rb +4 -0
- data/spec/support/controllers.rb +34 -0
- data/spec/support/templates.rb +12 -0
- metadata +53 -6
data/.rspec
ADDED
data/Guardfile
ADDED
data/Rakefile
CHANGED
@@ -0,0 +1,24 @@
|
|
1
|
+
module LocaleFlash
|
2
|
+
module ActionController
|
3
|
+
|
4
|
+
private
|
5
|
+
|
6
|
+
def locale_flash(key)
|
7
|
+
flash[key] = {:controller => controller_name, :action => action_name}
|
8
|
+
end
|
9
|
+
|
10
|
+
def locale_notice
|
11
|
+
locale_flash :notice
|
12
|
+
end
|
13
|
+
|
14
|
+
def locale_alert
|
15
|
+
locale_flash :alert
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
module ActionController
|
21
|
+
class Base
|
22
|
+
include LocaleFlash::ActionController
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
module LocaleFlash
|
2
|
+
module ActionView
|
3
|
+
|
4
|
+
def locale_flash
|
5
|
+
output = ''
|
6
|
+
flash.each do |key, value|
|
7
|
+
if value.is_a?(Hash) && value[:controller] && value[:action]
|
8
|
+
output << locale_flash_wrap(key, t(locale_flash_key(key, value), :default => locale_flash_default(key, value)))
|
9
|
+
else
|
10
|
+
output << locale_flash_wrap(key, value)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
output
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
def locale_flash_wrap(key, value)
|
19
|
+
%Q{<div class="#{key}">#{value}</div>}
|
20
|
+
end
|
21
|
+
|
22
|
+
def locale_flash_key(key, value)
|
23
|
+
['controllers', value[:controller], value[:action], 'flash', key].join('.').to_sym
|
24
|
+
end
|
25
|
+
|
26
|
+
def locale_flash_default(key, value)
|
27
|
+
[ ['controllers', value[:controller], 'flash', key],
|
28
|
+
['controllers', 'flash', value[:action], key],
|
29
|
+
['controllers', 'flash', key]
|
30
|
+
].map { |i| i.join('.').to_sym }
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
|
37
|
+
module ActionView
|
38
|
+
class Base
|
39
|
+
include LocaleFlash::ActionView
|
40
|
+
end
|
41
|
+
end
|
data/lib/locale_flash/version.rb
CHANGED
data/lib/locale_flash.rb
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
require 'locale_flash/action_controller'
|
2
|
+
require 'locale_flash/action_view'
|
data/locale_flash.gemspec
CHANGED
@@ -18,4 +18,8 @@ Gem::Specification.new do |s|
|
|
18
18
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
19
19
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
20
20
|
s.require_paths = ["lib"]
|
21
|
+
|
22
|
+
s.add_development_dependency('i18n')
|
23
|
+
s.add_development_dependency('rspec')
|
24
|
+
s.add_development_dependency('guard-rspec')
|
21
25
|
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
en:
|
2
|
+
controllers:
|
3
|
+
flash:
|
4
|
+
notice: Found in controllers.flash.notice
|
5
|
+
show:
|
6
|
+
notice: Found in controllers.flash.show.notice
|
7
|
+
users:
|
8
|
+
flash:
|
9
|
+
notice: Found in controllers.users.flash.notice
|
10
|
+
create:
|
11
|
+
flash:
|
12
|
+
notice: Found in controllers.users.create.flash.notice
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'support/controllers'
|
3
|
+
|
4
|
+
describe ActionController::Base do
|
5
|
+
before(:each) do
|
6
|
+
@controller = UsersController.new
|
7
|
+
end
|
8
|
+
|
9
|
+
describe '#locale_flash(key)' do
|
10
|
+
it "sets flash[key] to a hash containing the controller name and the action name" do
|
11
|
+
@controller.edit
|
12
|
+
@controller.flash.should == {:warning => {:controller => 'users', :action => 'create'}}
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
describe '#locale_notice' do
|
17
|
+
it "sets flash[:notice] to a hash contianing the controller name and the action name" do
|
18
|
+
@controller.create
|
19
|
+
@controller.flash.should == {:notice => {:controller => 'users', :action => 'create'}}
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
describe '#locale_alert' do
|
24
|
+
it "sets flash[:alert] to a hash contianing the controller name and the action name" do
|
25
|
+
@controller.destroy
|
26
|
+
@controller.flash.should == {:alert => {:controller => 'users', :action => 'create'}}
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'support/templates'
|
3
|
+
|
4
|
+
describe ActionView::Base do
|
5
|
+
before(:each) do
|
6
|
+
@template = UsersTemplate.new
|
7
|
+
end
|
8
|
+
|
9
|
+
describe '#locale_flash' do
|
10
|
+
context "when flash is empty" do
|
11
|
+
it "returns an empty string" do
|
12
|
+
@template.flash = {}
|
13
|
+
@template.locale_flash.should == ''
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
context "when flash is a string" do
|
18
|
+
it "returns an html flash" do
|
19
|
+
@template.flash = {:notice => 'This is a string'}
|
20
|
+
@template.locale_flash.should == %Q{<div class="notice">This is a string</div>}
|
21
|
+
end
|
22
|
+
|
23
|
+
it "returns multiple html flashes" do
|
24
|
+
@template.flash = {:notice => 'This is a string', :alert => 'This is another string'}
|
25
|
+
html = @template.locale_flash
|
26
|
+
html.should include(%Q{<div class="notice">This is a string</div>})
|
27
|
+
html.should include(%Q{<div class="alert">This is another string</div>})
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
context "when flash is a hash containg controller and action keys" do
|
32
|
+
it "returns the flash for the controller and action" do
|
33
|
+
@template.flash = {:notice => {:controller => 'users', :action => 'create'}}
|
34
|
+
@template.locale_flash.should == %Q{<div class="notice">Found in controllers.users.create.flash.notice</div>}
|
35
|
+
end
|
36
|
+
|
37
|
+
it "returns the flash falling back to the controller flash" do
|
38
|
+
@template.flash = {:notice => {:controller => 'users', :action => 'update'}}
|
39
|
+
@template.locale_flash.should == %Q{<div class="notice">Found in controllers.users.flash.notice</div>}
|
40
|
+
end
|
41
|
+
|
42
|
+
it "returns the flash falling back to the action flash" do
|
43
|
+
@template.flash = {:notice => {:controller => 'pages', :action => 'show'}}
|
44
|
+
@template.locale_flash.should == %Q{<div class="notice">Found in controllers.flash.show.notice</div>}
|
45
|
+
end
|
46
|
+
|
47
|
+
it "returns the flash falling back to the key flash" do
|
48
|
+
@template.flash = {:notice => {:controller => 'other', :action => 'index'}}
|
49
|
+
@template.locale_flash.should == %Q{<div class="notice">Found in controllers.flash.notice</div>}
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
54
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
module ActionController
|
2
|
+
class Base
|
3
|
+
attr_accessor :flash
|
4
|
+
|
5
|
+
def initialize
|
6
|
+
@flash = {}
|
7
|
+
end
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
class UsersController < ActionController::Base
|
12
|
+
|
13
|
+
def edit
|
14
|
+
locale_flash(:warning)
|
15
|
+
end
|
16
|
+
|
17
|
+
def create
|
18
|
+
locale_notice
|
19
|
+
end
|
20
|
+
|
21
|
+
def destroy
|
22
|
+
locale_alert
|
23
|
+
end
|
24
|
+
|
25
|
+
private
|
26
|
+
|
27
|
+
def controller_name
|
28
|
+
'users'
|
29
|
+
end
|
30
|
+
|
31
|
+
def action_name
|
32
|
+
'create'
|
33
|
+
end
|
34
|
+
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: locale_flash
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.0.
|
5
|
+
version: 0.0.2
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Christopher Dell
|
@@ -12,8 +12,40 @@ cert_chain: []
|
|
12
12
|
|
13
13
|
date: 2011-05-07 00:00:00 +02:00
|
14
14
|
default_executable:
|
15
|
-
dependencies:
|
16
|
-
|
15
|
+
dependencies:
|
16
|
+
- !ruby/object:Gem::Dependency
|
17
|
+
name: i18n
|
18
|
+
prerelease: false
|
19
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
20
|
+
none: false
|
21
|
+
requirements:
|
22
|
+
- - ">="
|
23
|
+
- !ruby/object:Gem::Version
|
24
|
+
version: "0"
|
25
|
+
type: :development
|
26
|
+
version_requirements: *id001
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rspec
|
29
|
+
prerelease: false
|
30
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
31
|
+
none: false
|
32
|
+
requirements:
|
33
|
+
- - ">="
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: "0"
|
36
|
+
type: :development
|
37
|
+
version_requirements: *id002
|
38
|
+
- !ruby/object:Gem::Dependency
|
39
|
+
name: guard-rspec
|
40
|
+
prerelease: false
|
41
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
42
|
+
none: false
|
43
|
+
requirements:
|
44
|
+
- - ">="
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: "0"
|
47
|
+
type: :development
|
48
|
+
version_requirements: *id003
|
17
49
|
description: locale_flash lets you create flash messages easily with I18n fallbacks
|
18
50
|
email:
|
19
51
|
- chris@tigrish.com
|
@@ -25,12 +57,22 @@ extra_rdoc_files: []
|
|
25
57
|
|
26
58
|
files:
|
27
59
|
- .gitignore
|
60
|
+
- .rspec
|
28
61
|
- .rvmrc
|
29
62
|
- Gemfile
|
63
|
+
- Guardfile
|
30
64
|
- Rakefile
|
31
65
|
- lib/locale_flash.rb
|
66
|
+
- lib/locale_flash/action_controller.rb
|
67
|
+
- lib/locale_flash/action_view.rb
|
32
68
|
- lib/locale_flash/version.rb
|
33
69
|
- locale_flash.gemspec
|
70
|
+
- spec/fixtures/en.yml
|
71
|
+
- spec/locale_flash/action_controller_spec.rb
|
72
|
+
- spec/locale_flash/action_view_spec.rb
|
73
|
+
- spec/spec_helper.rb
|
74
|
+
- spec/support/controllers.rb
|
75
|
+
- spec/support/templates.rb
|
34
76
|
has_rdoc: true
|
35
77
|
homepage: ""
|
36
78
|
licenses: []
|
@@ -55,9 +97,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
55
97
|
requirements: []
|
56
98
|
|
57
99
|
rubyforge_project: locale_flash
|
58
|
-
rubygems_version: 1.
|
100
|
+
rubygems_version: 1.5.0
|
59
101
|
signing_key:
|
60
102
|
specification_version: 3
|
61
103
|
summary: Super charge your flash messages with I18n
|
62
|
-
test_files:
|
63
|
-
|
104
|
+
test_files:
|
105
|
+
- spec/fixtures/en.yml
|
106
|
+
- spec/locale_flash/action_controller_spec.rb
|
107
|
+
- spec/locale_flash/action_view_spec.rb
|
108
|
+
- spec/spec_helper.rb
|
109
|
+
- spec/support/controllers.rb
|
110
|
+
- spec/support/templates.rb
|