xhr_flash 0.0.2 → 0.0.3

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/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