xhr_flash 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -66,3 +66,7 @@ Yes, you can customize it a bit. You can pass the following parameters to xhrfla
66
66
  3. Commit your changes (`git commit -am 'Added some feature'`)
67
67
  4. Push to the branch (`git push origin my-new-feature`)
68
68
  5. Create new Pull Request
69
+
70
+
71
+ [![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/ungue/xhr_flash/trend.png)](https://bitdeli.com/free "Bitdeli Badge")
72
+
@@ -1,3 +1,3 @@
1
1
  module XhrFlash
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -1,64 +1,45 @@
1
- $ = jQuery
2
-
3
- class Flash
4
-
5
- constructor: (object, settings) ->
6
- # Set timeout to hide current alerts if any
7
- @msgArea = object
8
- @msgList = settings.msgs
9
- @tag = settings.tag
10
- @class = settings.class
11
- @timeout = settings.timeout
12
-
13
- @slideUpTimer() if @msgArea.find('.alert').length > 0
14
-
15
- $(document).ajaxComplete (e, xhr) =>
16
- # Removes previous messages
17
- headers = @flashHeaders(xhr)
18
-
19
- @msgArea.hide().empty()
20
- return if $.isEmptyObject(headers)
21
-
22
- @msgArea.append(@messageTag(type, msg)) for type, msg of headers
23
- @msgArea.slideDown('fast', @slideUpTimer)
24
-
25
- messageTag: (type, msg) ->
26
- "<#{@tag} class=\"#{@class} #{@class}-#{type.toLowerCase()}\">#{msg}</#{@tag}>"
27
-
28
- flashHeaders: (xhr) ->
29
- @msgList.reduce(
30
- (h, type) ->
31
- msg = xhr.getResponseHeader("X-Flash-#{type}")
32
- h[type.toLowerCase()] = msg if msg?
33
- h
34
- , {}
35
- )
36
-
37
- slideUpTimer: =>
38
- clearTimeout(@_timer) if @_timer?
39
- @_timer = setTimeout(
40
- =>
41
- @msgArea.slideUp()
42
- , @timeout
43
- )
44
-
45
- $.fn.xhrflash = (options) ->
46
- $container = @
47
-
48
- settings =
49
- msgs : ['Success', 'Warning', 'Error', 'Notice']
50
- tag : 'div'
51
- class : 'alert'
52
- timeout : 5000
53
-
54
- settings = $.extend settings, options
55
-
56
- @each ->
57
- $this = $(@)
58
- data = $this.data 'xhrflash'
59
-
60
- unless data
61
- # Logic
62
- new Flash($this, settings)
63
-
64
- $this.data 'xhrflash', true
1
+ do ($ = jQuery) ->
2
+
3
+ class Flash
4
+
5
+ defaults:
6
+ msgs : ['Success', 'Warning', 'Error', 'Notice', 'Alert']
7
+ timeout : 5000
8
+ template : (data) ->
9
+ fn = ->
10
+ messages = for messageType, msg of @
11
+ "<div class='alert alert-#{messageType}'>#{msg}</div>"
12
+ messages.join ''
13
+ fn.call(data)
14
+
15
+ constructor: (el, settings) ->
16
+ @$el = el
17
+ {@msgs, @timeout, @template} = $.extend({}, @defaults, settings)
18
+
19
+ @$el.delay(@timeout).slideUp('fast') unless @$el.is(':empty')
20
+
21
+ $(document).ajaxComplete (e, xhr) =>
22
+ headers = @flashHeaders(xhr)
23
+ html = ''
24
+ html = @template(headers) unless $.isEmptyObject(headers)
25
+
26
+ @$el.html html
27
+ @$el.stop(true, true).slideDown('fast')
28
+ .delay(@timeout)
29
+ .slideUp('fast')
30
+
31
+ flashHeaders: (xhr) ->
32
+ @msgs.reduce(
33
+ (h, type) ->
34
+ msg = xhr.getResponseHeader("X-Flash-#{type}")
35
+ h[type.toLowerCase()] = msg if msg?
36
+ h
37
+ , {}
38
+ )
39
+
40
+ $.fn.xhrflash = (options) ->
41
+ @each ->
42
+ $this = $(@)
43
+ data = $this.data 'xhrflash'
44
+
45
+ $this.data('xhrflash', new Flash($this, options)) unless data
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xhr_flash
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-05-12 00:00:00.000000000 Z
12
+ date: 2013-10-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
- requirement: &10222960 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,15 @@ dependencies:
21
21
  version: '3.1'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *10222960
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: '3.1'
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: coffee-rails
27
- requirement: &10222100 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
35
  - - ~>
@@ -32,10 +37,15 @@ dependencies:
32
37
  version: '3.1'
33
38
  type: :runtime
34
39
  prerelease: false
35
- version_requirements: *10222100
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: '3.1'
36
46
  - !ruby/object:Gem::Dependency
37
47
  name: sqlite3
38
- requirement: &10221440 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
39
49
  none: false
40
50
  requirements:
41
51
  - - ! '>='
@@ -43,10 +53,15 @@ dependencies:
43
53
  version: '0'
44
54
  type: :development
45
55
  prerelease: false
46
- version_requirements: *10221440
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
47
62
  - !ruby/object:Gem::Dependency
48
63
  name: rspec-rails
49
- requirement: &10220940 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
50
65
  none: false
51
66
  requirements:
52
67
  - - ! '>='
@@ -54,7 +69,12 @@ dependencies:
54
69
  version: '0'
55
70
  type: :development
56
71
  prerelease: false
57
- version_requirements: *10220940
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
58
78
  description:
59
79
  email:
60
80
  - javier.rodriguez@h1labs.com
@@ -131,7 +151,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
131
151
  version: '0'
132
152
  requirements: []
133
153
  rubyforge_project:
134
- rubygems_version: 1.8.10
154
+ rubygems_version: 1.8.23
135
155
  signing_key:
136
156
  specification_version: 3
137
157
  summary: Flash object management in AJAX requests