cacheable_flash 0.3.4 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG +49 -21
- data/README.rdoc +12 -8
- data/init.rb +1 -1
- data/install.rb +4 -4
- data/lib/cacheable_flash.rb +9 -2
- data/lib/cacheable_flash/railtie.rb +1 -1
- data/lib/cacheable_flash/version.rb +1 -1
- data/lib/generators/cacheable_flash/install/install_generator.rb +2 -2
- data/spec/cacheable_flash/cacheable_flash_spec.rb +3 -3
- data/vendor/assets/javascripts/flash.js.erb +3 -3
- data/vendor/assets/javascripts/js.cookie.js +137 -0
- metadata +4 -5
- data/vendor/assets/javascripts/jquery.cookie.js +0 -47
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 521a436267aa47429182e2543c6e31484b5a26a7
|
4
|
+
data.tar.gz: caa107e1cf418fa914f15841a216dd56907bf047
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ec4cb4e9f1e8d4851c69fc437d23fb7dcc89bf831774ce7710f580b1d40cc3efdc9d3bfd4b6082f523cbc0ed9d32ccd804f1788440280e4f2b5e63f337254182
|
7
|
+
data.tar.gz: 6cc0f31452e25ea430027c07725f9cdcbdfb6966fbc66145735d7ecab781cd2fdad7adef3a7c42a9cdb3777eb9be36fbc7dce92afab6a28169757655a34da62b
|
data/CHANGELOG
CHANGED
@@ -1,26 +1,38 @@
|
|
1
|
-
0.
|
1
|
+
### 1.0.0 - APR.11.2017
|
2
|
+
* Moved from jquery.cookie to js.cookie
|
3
|
+
|
4
|
+
|
5
|
+
### 0.3.5 - AUG.18.2016 (unreleased)
|
6
|
+
* `around_filter` is deprecated in Rails 5 and will be removed in Rails 5.1. Uses `around_action` if available and falls back to `around_filter` otherwise.
|
7
|
+
|
8
|
+
|
9
|
+
### 0.3.4 - SEP.28.2015
|
2
10
|
* Maintenance release with minor changes and a security fix
|
3
11
|
* fix JS error when flash cookie is not set (new version of jquery.cookie returns undefined when a cookie does not exist) [nickurban]
|
4
12
|
* Reflected XSS vulnerability fix [rubyconvict]
|
5
13
|
* If domain is not set, do not force as empty string. Breaks IE. [ndreckshage]
|
6
14
|
* Update CacheableFlash::RspecMatchers and rspec test suite for latest Rspec v3.3 [Peter Boling]
|
7
15
|
|
8
|
-
|
16
|
+
|
17
|
+
### 0.3.3 - SEP.13.2013
|
9
18
|
* Maintenance release with lots of minor changes and fixes.
|
10
19
|
* Main gem should be API compatible.
|
11
20
|
* Small changes to test helpers which will require updating tests using them.
|
12
21
|
|
13
|
-
|
22
|
+
|
23
|
+
### 0.3.2 - AUG.23.2012
|
14
24
|
* Properly handles stacked flash in cookie flash according to config :append_as option [Peter Boling]
|
15
25
|
|
16
|
-
|
26
|
+
|
27
|
+
### 0.3.1 - AUG.22.2012
|
17
28
|
* Add specs for non stacking use [Peter Boling]
|
18
29
|
* Use stackable_flash/test_helpers instead of reinventing the wheel [Peter Boling]
|
19
30
|
* Config now works! [Peter Boling]
|
20
31
|
* Update to stackable_flash 0.0.7 (working config) [Peter Boling]
|
21
32
|
* default to non stacking [Peter Boling]
|
22
33
|
|
23
|
-
|
34
|
+
|
35
|
+
### 0.3.0 - AUG.21.2012
|
24
36
|
- Completed integration with stackable_flash (http://github.com/pboling/stackable_flash)
|
25
37
|
- Test::Unit helpers and Rspec Matchers updated to be stackable
|
26
38
|
- Expanded test suite
|
@@ -32,7 +44,8 @@
|
|
32
44
|
- (v0.2.X converted everything to string)
|
33
45
|
- the CacheableFlash::Config class is experimental, and no code uses the config settings yet.
|
34
46
|
|
35
|
-
|
47
|
+
|
48
|
+
### 0.2.10 - AUG.13.2012
|
36
49
|
- Split test_helpers from rspec_matchers (test_helpers may be useful in TestUnit
|
37
50
|
- When using Middleware: Flash Cookies now stay in the cookie until cleared out by the javascript: closer to guaranteed delivery.
|
38
51
|
- Improved spec suite
|
@@ -41,44 +54,54 @@
|
|
41
54
|
- Added facets runtime dependency
|
42
55
|
- corrected namespace of CacheableFlash::CookieFlash
|
43
56
|
|
44
|
-
|
57
|
+
|
58
|
+
### 0.2.9 - AUG.08.2012
|
45
59
|
- More rearranging
|
46
60
|
- Improved integration test of CacheableFlash & CacheableFlash::TestHelpers
|
47
61
|
- Updated to latest jquery.cookie
|
48
62
|
|
49
|
-
|
63
|
+
|
64
|
+
### 0.2.8 - AUG.07.2012
|
50
65
|
- switch from jeweler to gem-release for bumping and tagging
|
51
66
|
- bundler update (1.0.24)
|
52
67
|
- Escape HTML in flash values unless they're html_safe
|
53
68
|
- Add CacheableFlash rack middleware
|
54
69
|
|
55
|
-
|
70
|
+
|
71
|
+
### 0.2.7 - JUN.21.2012
|
56
72
|
- Note: Does not support flash.now feature of the FlashHash in Rails
|
57
73
|
- Corrected directory names for controllers/layouts
|
58
74
|
|
59
|
-
|
75
|
+
|
76
|
+
### 0.2.6 - unreleased
|
60
77
|
- all specs pass with rspec 2.10
|
61
78
|
|
62
|
-
|
79
|
+
|
80
|
+
### 0.2.5 - MAR.01.2012
|
63
81
|
- Real integration test!
|
64
82
|
|
65
|
-
|
83
|
+
|
84
|
+
### 0.2.4 - FEB.27.2012
|
66
85
|
- Dependency diet! No longer requires all of rails - only railties.
|
67
86
|
|
68
|
-
|
87
|
+
|
88
|
+
### 0.2.3 - JAN.13.2012
|
69
89
|
- Fixed problems loading assets: Sprockets::FileNotFound - thanks jlxw
|
70
90
|
- reflect move back to pivotal's repo in README.
|
71
91
|
- Updated specs, to running and passing condition!
|
72
92
|
- Made rails > 3.0 a dependency, since it is (uses ::Rails::Engine and :Rails::Railtie)
|
73
93
|
|
74
|
-
|
94
|
+
|
95
|
+
### 0.2.2 - SEP.10.2011
|
75
96
|
- Improved deprecation warnings about using the generator (not needed with asset pipeline)
|
76
97
|
- Improved README setup instructions
|
77
98
|
|
78
|
-
|
99
|
+
|
100
|
+
### 0.2.1 - SEP.10.2011
|
79
101
|
- Fixed bug in generator for those not using asset pipeline, or pre Rails 3.1
|
80
102
|
|
81
|
-
|
103
|
+
|
104
|
+
### 0.2.0 - SEP.10.2011 [Peter Boling begins gemification process]
|
82
105
|
- Converted to a gem
|
83
106
|
- Updated to improved, patched jquery.cookie from https://github.com/pboling/jquery-cookie
|
84
107
|
- Merged a few other forks of cacheable-flash
|
@@ -89,21 +112,26 @@
|
|
89
112
|
Unreleased
|
90
113
|
- Implicitly adding js files to Rails include defaults (Patch from Michael Erb)
|
91
114
|
|
92
|
-
|
115
|
+
|
116
|
+
### 0.1.5
|
93
117
|
- Requiring version >= 1.1.2 of the json gem
|
94
118
|
- Converted tests into specs
|
95
119
|
|
96
|
-
|
120
|
+
|
121
|
+
### 0.1.4
|
97
122
|
- Added TestHelpers
|
98
123
|
- Added flash_cookie method for tests
|
99
124
|
|
100
|
-
|
125
|
+
|
126
|
+
### 0.1.3
|
101
127
|
- Require json in init.rb
|
102
128
|
|
103
|
-
|
129
|
+
|
130
|
+
### 0.1.2
|
104
131
|
- Flash on the Rails side is cleared when written to the cookie
|
105
132
|
- Uses existing cookie flash value
|
106
133
|
- Using Scriptaculous cookie.js library
|
107
134
|
|
108
|
-
|
135
|
+
|
136
|
+
### 0.1.1
|
109
137
|
- Added cookies.js
|
data/README.rdoc
CHANGED
@@ -27,13 +27,13 @@ So if you have config.assets.enabled = false in application.rb then in your layo
|
|
27
27
|
javascript_include_tag :cacheable_flash
|
28
28
|
|
29
29
|
Otherwise, in your layout, just source them like normal:
|
30
|
-
javascript_include_tag 'flash', '
|
30
|
+
javascript_include_tag 'flash', 'js.cookie'
|
31
31
|
|
32
32
|
=== With asset pipeline (requires Rails 3.1)
|
33
33
|
|
34
34
|
The asset pipeline should have access to the assets in this gem via your app/assets/javascripts/application.js:
|
35
35
|
//= require flash
|
36
|
-
//= require
|
36
|
+
//= require js.cookie
|
37
37
|
|
38
38
|
== Mailing List
|
39
39
|
|
@@ -95,6 +95,10 @@ Use this method if you set flash messages inside a rescue_from block:
|
|
95
95
|
Flash.writeDataTo('notice', $('#notice_div_id'));
|
96
96
|
</script>
|
97
97
|
|
98
|
+
== Security warning
|
99
|
+
The gem is susceptible to reflected XSS attack. Make sure no non-alphanumerical
|
100
|
+
user-generated content is stored inside flash messages (html or plain text).
|
101
|
+
|
98
102
|
== Testing
|
99
103
|
You can test your flash cookies by making assertions on the json of the "flash" cookie.
|
100
104
|
Cacheable Flash provides test helpers which includes the flash_cookie method.
|
@@ -134,7 +138,7 @@ Cacheable Flash provides test helpers which includes the flash_cookie method.
|
|
134
138
|
|
135
139
|
describe TestController, "#index" do
|
136
140
|
include CacheableFlash::TestHelpers
|
137
|
-
|
141
|
+
|
138
142
|
it "writes to the flash cookie" do
|
139
143
|
get :index
|
140
144
|
flash_cookie["notice"].should == "In index"
|
@@ -153,14 +157,14 @@ Cacheable Flash provides test helpers which includes the flash_cookie method.
|
|
153
157
|
== Versioning
|
154
158
|
|
155
159
|
This library aims to adhere to {Semantic Versioning 2.0.0}[http://semver.org/].
|
156
|
-
Violations of this scheme should be reported as bugs. Specifically,
|
157
|
-
if a minor or patch version is released that breaks backward
|
160
|
+
Violations of this scheme should be reported as bugs. Specifically,
|
161
|
+
if a minor or patch version is released that breaks backward
|
158
162
|
compatibility, a new version should be immediately released that
|
159
|
-
restores compatibility. Breaking changes to the public API will
|
163
|
+
restores compatibility. Breaking changes to the public API will
|
160
164
|
only be introduced with new major versions.
|
161
165
|
|
162
|
-
As a result of this policy, you can (and should) specify a
|
163
|
-
dependency on this gem using the {Pessimistic Version Constraint}[http://docs.rubygems.org/read/chapter/16#page74] with two digits of precision.
|
166
|
+
As a result of this policy, you can (and should) specify a
|
167
|
+
dependency on this gem using the {Pessimistic Version Constraint}[http://docs.rubygems.org/read/chapter/16#page74] with two digits of precision.
|
164
168
|
|
165
169
|
For example:
|
166
170
|
|
data/init.rb
CHANGED
@@ -2,5 +2,5 @@ require "json"
|
|
2
2
|
require "cacheable_flash"
|
3
3
|
#use Rails::VERSION::STRING for rails < 1 somehow -- or perhaps, who cares??
|
4
4
|
if ::Rails::VERSION::MAJOR == 2
|
5
|
-
ActionView::Helpers::AssetTagHelper.register_javascript_include_default('
|
5
|
+
ActionView::Helpers::AssetTagHelper.register_javascript_include_default('js.cookie','flash')
|
6
6
|
end
|
data/install.rb
CHANGED
@@ -10,9 +10,9 @@ rails_javascripts_dir = "#{Rails.root}/public/javascripts"
|
|
10
10
|
puts "copying flash.js to #{rails_javascripts_dir}"
|
11
11
|
cp "#{dir}/flash.js", rails_javascripts_dir
|
12
12
|
|
13
|
-
if File.exists?("#{rails_javascripts_dir}/
|
14
|
-
puts "#{rails_javascripts_dir}/
|
13
|
+
if File.exists?("#{rails_javascripts_dir}/js.cookie.js")
|
14
|
+
puts "#{rails_javascripts_dir}/js.cookie.js already exists"
|
15
15
|
else
|
16
|
-
puts "copying
|
17
|
-
cp "#{dir}/
|
16
|
+
puts "copying js.cookie.js to #{rails_javascripts_dir}"
|
17
|
+
cp "#{dir}/js.cookie.js", rails_javascripts_dir
|
18
18
|
end
|
data/lib/cacheable_flash.rb
CHANGED
@@ -23,8 +23,15 @@ module CacheableFlash
|
|
23
23
|
include CacheableFlash::CookieFlash
|
24
24
|
|
25
25
|
def self.included(base)
|
26
|
-
#base must define around_filter, as in Rails
|
27
|
-
|
26
|
+
#base must define around_action or around_filter, as in Rails
|
27
|
+
|
28
|
+
around_method = if base.respond_to?(:around_action)
|
29
|
+
:around_action
|
30
|
+
else
|
31
|
+
:around_filter
|
32
|
+
end
|
33
|
+
|
34
|
+
base.send around_method, :write_flash_to_cookie
|
28
35
|
end
|
29
36
|
|
30
37
|
def write_flash_to_cookie
|
@@ -3,7 +3,7 @@ module CacheableFlash
|
|
3
3
|
# Add cacheable flash JS to defaults for Rails < 3.1 (not needed with asset pipeline)
|
4
4
|
if ::Rails::VERSION::MAJOR == 3 && ::Rails::VERSION::MINOR == 0
|
5
5
|
config.before_configuration do
|
6
|
-
config.action_view.javascript_expansions[:cacheable_flash] = %w(
|
6
|
+
config.action_view.javascript_expansions[:cacheable_flash] = %w(js.cookie flash)
|
7
7
|
end
|
8
8
|
end
|
9
9
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
|
3
3
|
module CacheableFlash
|
4
|
-
# Copies javascript libraries flash.js and
|
4
|
+
# Copies javascript libraries flash.js and js.cookie.js to public/javascripts/ (Rails 3.0.X only, Rails 3.1 has asset pipeline)
|
5
5
|
#
|
6
6
|
# @example
|
7
7
|
# $ rails generate cacheable_flash:install
|
@@ -18,7 +18,7 @@ module CacheableFlash
|
|
18
18
|
ActiveSupport::Deprecation.warn("Rails 3.1 has the asset pipeline, so you only need to copy javascript files if you aren't using it.")
|
19
19
|
end
|
20
20
|
template 'flash.js', 'public/javascripts/flash.js'
|
21
|
-
template '
|
21
|
+
template 'js.cookie.js', 'public/javascripts/js.cookie.js'
|
22
22
|
end
|
23
23
|
end
|
24
24
|
end
|
@@ -4,7 +4,7 @@ describe 'CacheableFlash' do
|
|
4
4
|
attr_reader :controller_class, :controller, :cookies
|
5
5
|
before do
|
6
6
|
@controller_class = Struct.new(:cookies, :flash)
|
7
|
-
allow(@controller_class).to receive(:
|
7
|
+
allow(@controller_class).to receive(:around_action)
|
8
8
|
@controller_class.send(:include, CacheableFlash)
|
9
9
|
@controller = @controller_class.new({}, {})
|
10
10
|
@cookies = {}
|
@@ -120,8 +120,8 @@ describe 'CacheableFlash' do
|
|
120
120
|
end
|
121
121
|
|
122
122
|
describe ".included" do
|
123
|
-
it "sets the
|
124
|
-
expect(@controller_class).to receive(:
|
123
|
+
it "sets the around_action on the controller to call #write_flash_to_cookie" do
|
124
|
+
expect(@controller_class).to receive(:around_action).with(:write_flash_to_cookie)
|
125
125
|
@controller_class.send(:include, CacheableFlash)
|
126
126
|
end
|
127
127
|
end
|
@@ -4,10 +4,10 @@ var Flash = new Object();
|
|
4
4
|
Flash.data = {};
|
5
5
|
|
6
6
|
Flash.transferFromCookies = function() {
|
7
|
-
var data = JSON.parse(unescape(
|
7
|
+
var data = JSON.parse(unescape(Cookies.get("flash") || '{}'));
|
8
8
|
if(!data) data = {};
|
9
9
|
Flash.data = data;
|
10
|
-
|
10
|
+
Cookies.set('flash', null, {path: '/', domain: '<%=CacheableFlash::Config.config[:domain]%>'});
|
11
11
|
};
|
12
12
|
|
13
13
|
Flash.writeDataTo = function(name, element, callback) {
|
@@ -15,7 +15,7 @@ Flash.writeDataTo = function(name, element, callback) {
|
|
15
15
|
var message = "";
|
16
16
|
if (Flash.data[name]) {
|
17
17
|
message = Flash.data[name].toString().replace(/\+/g, ' ');
|
18
|
-
element.
|
18
|
+
element.html(message);
|
19
19
|
if (callback && typeof(callback) === 'function') {
|
20
20
|
callback(element);
|
21
21
|
} else {
|
@@ -0,0 +1,137 @@
|
|
1
|
+
/*!
|
2
|
+
* JavaScript Cookie v2.0.0-beta.1
|
3
|
+
* https://github.com/js-cookie/js-cookie
|
4
|
+
*
|
5
|
+
* Copyright 2006, 2015 Klaus Hartl
|
6
|
+
* Released under the MIT license
|
7
|
+
*/
|
8
|
+
(function (factory) {
|
9
|
+
if (typeof define === 'function' && define.amd) {
|
10
|
+
define(factory);
|
11
|
+
} else if (typeof exports === 'object') {
|
12
|
+
module.exports = factory();
|
13
|
+
} else {
|
14
|
+
var _OldCookies = window.Cookies;
|
15
|
+
var api = window.Cookies = factory(window.jQuery);
|
16
|
+
api.noConflict = function () {
|
17
|
+
window.Cookies = _OldCookies;
|
18
|
+
return api;
|
19
|
+
};
|
20
|
+
}
|
21
|
+
}(function () {
|
22
|
+
function extend () {
|
23
|
+
var i = 0;
|
24
|
+
var result = {};
|
25
|
+
for (; i < arguments.length; i++) {
|
26
|
+
var attributes = arguments[ i ];
|
27
|
+
for (var key in attributes) {
|
28
|
+
result[key] = attributes[key];
|
29
|
+
}
|
30
|
+
}
|
31
|
+
return result;
|
32
|
+
}
|
33
|
+
|
34
|
+
function init (converter) {
|
35
|
+
function api (key, value, attributes) {
|
36
|
+
var result;
|
37
|
+
|
38
|
+
// Write
|
39
|
+
|
40
|
+
if (arguments.length > 1) {
|
41
|
+
attributes = extend({
|
42
|
+
path: '/'
|
43
|
+
}, api.defaults, attributes);
|
44
|
+
|
45
|
+
if (typeof attributes.expires === 'number') {
|
46
|
+
var expires = new Date();
|
47
|
+
expires.setMilliseconds(expires.getMilliseconds() + attributes.expires * 864e+5);
|
48
|
+
attributes.expires = expires;
|
49
|
+
}
|
50
|
+
|
51
|
+
try {
|
52
|
+
result = JSON.stringify(value);
|
53
|
+
if (/^[\{\[]/.test(result)) {
|
54
|
+
value = result;
|
55
|
+
}
|
56
|
+
} catch (e) {}
|
57
|
+
|
58
|
+
value = encodeURIComponent(String(value));
|
59
|
+
value = value.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);
|
60
|
+
|
61
|
+
key = encodeURIComponent(String(key));
|
62
|
+
key = key.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent);
|
63
|
+
key = key.replace(/[\(\)]/g, escape);
|
64
|
+
|
65
|
+
return (document.cookie = [
|
66
|
+
key, '=', value,
|
67
|
+
attributes.expires && '; expires=' + attributes.expires.toUTCString(), // use expires attribute, max-age is not supported by IE
|
68
|
+
attributes.path && '; path=' + attributes.path,
|
69
|
+
attributes.domain && '; domain=' + attributes.domain,
|
70
|
+
attributes.secure && '; secure'
|
71
|
+
].join(''));
|
72
|
+
}
|
73
|
+
|
74
|
+
// Read
|
75
|
+
|
76
|
+
if (!key) {
|
77
|
+
result = {};
|
78
|
+
}
|
79
|
+
|
80
|
+
// To prevent the for loop in the first place assign an empty array
|
81
|
+
// in case there are no cookies at all. Also prevents odd result when
|
82
|
+
// calling "get()"
|
83
|
+
var cookies = document.cookie ? document.cookie.split('; ') : [];
|
84
|
+
var rdecode = /(%[0-9A-Z]{2})+/g;
|
85
|
+
var i = 0;
|
86
|
+
|
87
|
+
for (; i < cookies.length; i++) {
|
88
|
+
var parts = cookies[i].split('=');
|
89
|
+
var name = parts[0].replace(rdecode, decodeURIComponent);
|
90
|
+
var cookie = parts.slice(1).join('=');
|
91
|
+
|
92
|
+
if (cookie.charAt(0) === '"') {
|
93
|
+
cookie = cookie.slice(1, -1);
|
94
|
+
}
|
95
|
+
|
96
|
+
cookie = converter && converter(cookie, name) || cookie.replace(rdecode, decodeURIComponent);
|
97
|
+
|
98
|
+
if (this.json) {
|
99
|
+
try {
|
100
|
+
cookie = JSON.parse(cookie);
|
101
|
+
} catch (e) {}
|
102
|
+
}
|
103
|
+
|
104
|
+
if (key === name) {
|
105
|
+
result = cookie;
|
106
|
+
break;
|
107
|
+
}
|
108
|
+
|
109
|
+
if (!key) {
|
110
|
+
result[name] = cookie;
|
111
|
+
}
|
112
|
+
}
|
113
|
+
|
114
|
+
return result;
|
115
|
+
}
|
116
|
+
|
117
|
+
api.get = api.set = api;
|
118
|
+
api.getJSON = function () {
|
119
|
+
return api.apply({
|
120
|
+
json: true
|
121
|
+
}, [].slice.call(arguments));
|
122
|
+
};
|
123
|
+
api.defaults = {};
|
124
|
+
|
125
|
+
api.remove = function (key, attributes) {
|
126
|
+
api(key, '', extend(attributes, {
|
127
|
+
expires: -1
|
128
|
+
}));
|
129
|
+
};
|
130
|
+
|
131
|
+
api.withConverter = init;
|
132
|
+
|
133
|
+
return api;
|
134
|
+
}
|
135
|
+
|
136
|
+
return init();
|
137
|
+
}));
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cacheable_flash
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Peter H. Boling
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2017-04-11 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: stackable_flash
|
@@ -219,7 +219,7 @@ files:
|
|
219
219
|
- spec/spec_helper.rb
|
220
220
|
- tasks/cacheable_flash_tasks.rake
|
221
221
|
- vendor/assets/javascripts/flash.js.erb
|
222
|
-
- vendor/assets/javascripts/
|
222
|
+
- vendor/assets/javascripts/js.cookie.js
|
223
223
|
homepage: http://github.com/pivotal/cacheable-flash
|
224
224
|
licenses:
|
225
225
|
- MIT
|
@@ -240,7 +240,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
240
240
|
version: '0'
|
241
241
|
requirements: []
|
242
242
|
rubyforge_project:
|
243
|
-
rubygems_version: 2.
|
243
|
+
rubygems_version: 2.6.8
|
244
244
|
signing_key:
|
245
245
|
specification_version: 4
|
246
246
|
summary: Render flash messages from a cookie using JavaScript, instead of in your
|
@@ -292,4 +292,3 @@ test_files:
|
|
292
292
|
- spec/js_unit/flash_test.html
|
293
293
|
- spec/requests/integration_spec.rb
|
294
294
|
- spec/spec_helper.rb
|
295
|
-
has_rdoc:
|
@@ -1,47 +0,0 @@
|
|
1
|
-
/*!
|
2
|
-
* jQuery Cookie Plugin
|
3
|
-
* https://github.com/carhartl/jquery-cookie
|
4
|
-
*
|
5
|
-
* Copyright 2011, Klaus Hartl
|
6
|
-
* Dual licensed under the MIT or GPL Version 2 licenses.
|
7
|
-
* http://www.opensource.org/licenses/mit-license.php
|
8
|
-
* http://www.opensource.org/licenses/GPL-2.0
|
9
|
-
*/
|
10
|
-
(function($) {
|
11
|
-
$.cookie = function(key, value, options) {
|
12
|
-
|
13
|
-
// key and at least value given, set cookie...
|
14
|
-
if (arguments.length > 1 && (!/Object/.test(Object.prototype.toString.call(value)) || value === null || value === undefined)) {
|
15
|
-
options = $.extend({}, options);
|
16
|
-
|
17
|
-
if (value === null || value === undefined) {
|
18
|
-
options.expires = -1;
|
19
|
-
}
|
20
|
-
|
21
|
-
if (typeof options.expires === 'number') {
|
22
|
-
var days = options.expires, t = options.expires = new Date();
|
23
|
-
t.setDate(t.getDate() + days);
|
24
|
-
}
|
25
|
-
|
26
|
-
value = String(value);
|
27
|
-
|
28
|
-
return (document.cookie = [
|
29
|
-
encodeURIComponent(key), '=', options.raw ? value : encodeURIComponent(value),
|
30
|
-
options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
|
31
|
-
options.path ? '; path=' + options.path : '',
|
32
|
-
options.domain ? '; domain=' + options.domain : '',
|
33
|
-
options.secure ? '; secure' : ''
|
34
|
-
].join(''));
|
35
|
-
}
|
36
|
-
|
37
|
-
// key and possibly options given, get cookie...
|
38
|
-
options = value || {};
|
39
|
-
var decode = options.raw ? function(s) { return s; } : decodeURIComponent;
|
40
|
-
|
41
|
-
var pairs = document.cookie.split('; ');
|
42
|
-
for (var i = 0, pair; pair = pairs[i] && pairs[i].split('='); i++) {
|
43
|
-
if (decode(pair[0]) === key) return decode(pair[1] || ''); // IE saves cookies with empty string as "c; ", e.g. without "=" as opposed to EOMB, thus pair[1] may be undefined
|
44
|
-
}
|
45
|
-
return null;
|
46
|
-
};
|
47
|
-
})(jQuery);
|