growlyflash 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/growlyflash.gemspec +3 -3
- data/lib/growlyflash.rb +4 -14
- data/lib/growlyflash/version.rb +1 -1
- data/vendor/assets/javascripts/growlyflash/growlyflash.js.coffee +30 -14
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
NGNhYTdjMDY2NzNiMTQ0OTg2NDg2ZTg2NmNmZWNkN2NiNmMwODc2MA==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
ZTEzN2IyNDY0YTE3NDI0NjJjNWI2ZmY0YmEwYzdiYWQzMmQ5ODgzNA==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
OGIyMDQ5YmJkM2FlZmI0YTAzZTc3ZWU1MDMwNzA3ODYzYmFlNzYwN2ZhZTE5
|
10
|
+
OGZlY2ZmMjdjMTliODAzYWJjZWI3NjMxNmUxOTM4NzNiNTIzM2ZiMGZmZTM5
|
11
|
+
NGNjMTQ3YzQyZTJkOTcwOTE0MjU0NWQ4ZjI5NDQ1MWZhZDdlYzY=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
Y2Y0Zjk5MzVhZTdkZGY1OGQwMThhODZjY2JiZDNlYTIyNDVjY2RiYTBkMWVj
|
14
|
+
MjY3Y2RmMjM2OGFmYWI5ZDcyNTJiYzA3NDFiNDk5Yzc5YjE2NWYyOWM3MmY5
|
15
|
+
MzlmM2YwZWJmY2QwYWI2ZTgzY2EzOWIyNjBjNzFjMDU0MWYwOTA=
|
data/growlyflash.gemspec
CHANGED
@@ -6,11 +6,11 @@ require 'growlyflash/version'
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = "growlyflash"
|
8
8
|
spec.version = Growlyflash::VERSION
|
9
|
-
spec.authors = ["
|
9
|
+
spec.authors = ["Tõnis Simo"]
|
10
10
|
spec.email = ["anton.estum@gmail.com"]
|
11
11
|
spec.homepage = "https://github.com/tonissimo/growlyflash"
|
12
12
|
spec.summary = %q{Tiny gem which provides growl-styled flash messages for Ruby on Rails with Bootstrap.}
|
13
|
-
spec.description = %q{For XHR requests flash messages are transfering in 'X-Messages' headers, otherwise they are storing in js variables.}
|
13
|
+
spec.description = %q{Tiny gem which provides growl-styled flash messages for Ruby on Rails with Bootstrap. For XHR requests flash messages are transfering in 'X-Messages' headers, otherwise they are storing in js variables.}
|
14
14
|
|
15
15
|
spec.files = `git ls-files`.split($/)
|
16
16
|
spec.require_paths = %w(lib vendor)
|
@@ -21,4 +21,4 @@ Gem::Specification.new do |spec|
|
|
21
21
|
spec.add_development_dependency "rails", '>= 3.2.0'
|
22
22
|
spec.add_development_dependency 'coffee-rails', '~> 3.2.1'
|
23
23
|
spec.add_development_dependency "bundler", "~> 1.3"
|
24
|
-
end
|
24
|
+
end
|
data/lib/growlyflash.rb
CHANGED
@@ -4,19 +4,9 @@ require "growlyflash/version"
|
|
4
4
|
require "uri"
|
5
5
|
|
6
6
|
module Growlyflash
|
7
|
-
# class << self
|
8
|
-
# def logger
|
9
|
-
# @@logger ||= nil
|
10
|
-
# end
|
11
|
-
#
|
12
|
-
# def logger=(logger)
|
13
|
-
# @@logger = logger
|
14
|
-
# end
|
15
|
-
# end
|
16
7
|
|
17
8
|
module XMessageHeaders
|
18
9
|
def flash_to_headers
|
19
|
-
# logger.info(response.headers)
|
20
10
|
xmessage = URI.escape(Hash[flash].to_json) # URI escape to fix strange things with headers encoding
|
21
11
|
response.headers['X-Message'] = xmessage
|
22
12
|
flash.discard # discard flash to prevent it appear again after refreshing page
|
@@ -28,6 +18,7 @@ module Growlyflash
|
|
28
18
|
end
|
29
19
|
end
|
30
20
|
|
21
|
+
|
31
22
|
module NoticeHelpers
|
32
23
|
def growlyflash_static_notices
|
33
24
|
return nil unless flash.any?
|
@@ -35,10 +26,10 @@ module Growlyflash
|
|
35
26
|
end
|
36
27
|
end
|
37
28
|
|
38
|
-
|
29
|
+
|
30
|
+
class Engine < ::Rails::Engine
|
39
31
|
initializer :growlyflash_xmessage_headers do |config|
|
40
|
-
|
41
|
-
|
32
|
+
|
42
33
|
ActionController::Base.class_eval do
|
43
34
|
include XMessageHeaders
|
44
35
|
helper NoticeHelpers
|
@@ -48,5 +39,4 @@ module Growlyflash
|
|
48
39
|
|
49
40
|
end
|
50
41
|
end
|
51
|
-
|
52
42
|
end
|
data/lib/growlyflash/version.rb
CHANGED
@@ -1,8 +1,6 @@
|
|
1
1
|
#= require growlyflash/bootstrap-growl
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
root = global ? window
|
3
|
+
root = window ? this
|
6
4
|
|
7
5
|
class Growlyflash
|
8
6
|
TYPE_MAPPING =
|
@@ -10,31 +8,49 @@ class Growlyflash
|
|
10
8
|
error : 'error'
|
11
9
|
notice : 'info'
|
12
10
|
success: 'success'
|
13
|
-
|
11
|
+
|
14
12
|
constructor: (@context) ->
|
15
|
-
@
|
13
|
+
@flash_log = []
|
14
|
+
@growl window.flashes if window.flashes?
|
16
15
|
$(@context).on 'ajax:complete ajaxComplete', @ajax_complete
|
17
16
|
|
18
17
|
growl: (flashes) ->
|
19
18
|
for type, msg of flashes when msg?
|
19
|
+
@log type:type, msg:msg
|
20
20
|
$.bootstrapGrowl msg, type: TYPE_MAPPING[type]
|
21
21
|
|
22
|
+
log: (xmessage) -> @flash_log.push(xmessage)
|
23
|
+
log_is_not_empty: -> @flash_log.length > 0
|
24
|
+
purge_log: ->
|
25
|
+
@flash_log = []
|
26
|
+
true
|
27
|
+
|
22
28
|
messages: (flashes) ->
|
23
29
|
{ type:type, msg:msg } for type, msg of flashes
|
24
30
|
|
25
31
|
ajax_complete: (e, response, settings) =>
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
true
|
32
|
+
if flashes = @get_x_message.call response
|
33
|
+
messages = @messages flashes
|
34
|
+
@reduce_duplicates messages, => @growl flashes
|
35
|
+
true
|
31
36
|
|
32
37
|
get_x_message: ->
|
33
|
-
encoded = @getResponseHeader
|
34
|
-
decodeURIComponent encoded
|
35
|
-
|
38
|
+
encoded = @getResponseHeader 'X-Message'
|
39
|
+
decoded = decodeURIComponent encoded
|
40
|
+
$.parseJSON decoded if decoded?
|
41
|
+
|
42
|
+
reduce_duplicates: (messages, callback) ->
|
43
|
+
if @log_is_not_empty()
|
44
|
+
return @purge_log unless @get_log_matches messages
|
45
|
+
do callback
|
46
|
+
|
47
|
+
get_log_matches: (messages) ->
|
48
|
+
last_log = @flashes_log.slice -messages.length
|
49
|
+
not_matches = 0
|
50
|
+
not_matches++ for id, f of messages when (last_log[id].type isnt f.type) and (last_log[id].msg isnt f.msg)
|
51
|
+
not_matches > 0
|
36
52
|
|
37
53
|
root.Growlyflash = Growlyflash
|
38
54
|
|
39
55
|
jQuery ->
|
40
|
-
|
56
|
+
new Growlyflash document
|
metadata
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: growlyflash
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
7
|
+
- Tõnis Simo
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
@@ -80,8 +80,9 @@ dependencies:
|
|
80
80
|
- - ~>
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '1.3'
|
83
|
-
description:
|
84
|
-
|
83
|
+
description: Tiny gem which provides growl-styled flash messages for Ruby on Rails
|
84
|
+
with Bootstrap. For XHR requests flash messages are transfering in 'X-Messages'
|
85
|
+
headers, otherwise they are storing in js variables.
|
85
86
|
email:
|
86
87
|
- anton.estum@gmail.com
|
87
88
|
executables: []
|