growlyflash 0.1.1 → 0.1.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.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- YWY1NDI1MzcxMzgyZTMyZjBjM2Q4MzRlZmYzNGFlNWZmZTBkOWExYw==
4
+ MTk4OGQ3ZGM2Y2JlNzZiNTE5MDY2ODQzODc4ODRjMjBjN2Q5YzdhMA==
5
5
  data.tar.gz: !binary |-
6
- NzBkNGY1NTJmN2EyZmExMWQ3NjZiZGQwNjk3NzBjNGU0N2RiY2IyZA==
6
+ MTZmNTliNjdmM2IxMjY2MzkzODEyMzQ0MzgxNDM4ODEwYWRkOGY5ZA==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- YzRhMzU4OWE2NzI1Mjg3YjVmZTQzNjRjMWNiYjZhZDlmYmRmZWVmN2U2NTQx
10
- ZGZlOThiZGFiNDhkNmE0NzQ1NWQ3NDRiM2FjMWRhMDUwMmI5YTMyYzM2Zjcw
11
- ZWQ1N2ZmYWI2ZWI0ZTUwYWNiYTlkNTE0N2QxMDVlZTQ0Yjc1ZmE=
9
+ N2U4ODA2MDczYTQ0ZDE5NDE1MDMxNzAxMmNlOTEwMDkzZDgzMTk3NWQxOTJk
10
+ ZjRhNjc4NDc4YmEzMWY3M2M4NmZmNzkwMjgyODhiZjJhMzM1NTY2OWFlMzU3
11
+ NWViM2RhMzg1ODM5Zjg0OTQzM2MxM2RmMGU0OGE3ODVmOTVjOTM=
12
12
  data.tar.gz: !binary |-
13
- ZGU3ODg0ODA4YTAzNTg3NGJmZWUwNTg4MTAyNDEzODg3OTdiOWRkYzVhN2Jl
14
- MDEwYmNkY2YyNzljMmY1YTEwOWQ0NmZjNDJiZTEzYWUwNTI3MzVjNzgyN2E0
15
- NDYxMTc4ODI3ODJhMmZiNzA5ZTI2Yzc2NmZkNTQxMmMzZTBiZGQ=
13
+ ZDRmNTk4ZDdhMDY0MTk0MzU3NjRkN2Q5ZjQ2OWVkZTRlMmZiZGRhZjA4ZTFm
14
+ N2JlOGIzODE2NDhhNzc3MDM5OTVkOTY3ZDRlZjY1NjgxOTYzZjgzOTI2NjNk
15
+ MDVmNjVmMTRiNDA2Yzk2MTY0NDRjNjgwMWFlNWUzNGNhYmIzNzM=
data/growlyflash.gemspec CHANGED
@@ -1,4 +1,4 @@
1
- # coding: utf-8
1
+ # encoding: utf-8
2
2
  lib = File.expand_path('../lib', __FILE__)
3
3
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
  require 'growlyflash/version'
data/lib/growlyflash.rb CHANGED
@@ -1,22 +1,52 @@
1
+ # encoding: utf-8
2
+
1
3
  require "growlyflash/version"
2
- require "growlyflash/controller"
3
- require "growlyflash/helpers"
4
+ require "uri"
4
5
 
5
6
  module Growlyflash
6
- # Your code goes here...
7
- def self.initialize
8
- return if @initialized
9
- raise "ActionController is not available yet." unless defined?(ActionController)
10
- ActionController::Base.send(:helper, Growlyflash::Helpers)
11
- ActionController::Base.send(:include, Growlyflash::Controller)
12
- @initialized = true
7
+ # class << self
8
+ # def logger
9
+ # @@logger ||= nil
10
+ # end
11
+ #
12
+ # def logger=(logger)
13
+ # @@logger = logger
14
+ # end
15
+ # end
16
+
17
+ module XMessageHeaders
18
+ def flash_to_headers
19
+ # logger.info(response.headers)
20
+ xmessage = URI.escape(Hash[flash].to_json) # URI escape to fix strange things with headers encoding
21
+ response.headers['X-Message'] = xmessage
22
+ flash.discard # discard flash to prevent it appear again after refreshing page
23
+ end
24
+
25
+ private
26
+ def is_xhr_request?
27
+ request.xhr?
28
+ end
29
+ end
30
+
31
+ module NoticeHelpers
32
+ def growlyflash_static_notices
33
+ return nil unless flash.any?
34
+ javascript_tag("window.flashes = #{ raw(Hash[ flash ].to_json) };", defer: 'defer')
35
+ end
36
+ end
37
+
38
+ class Engine < ::Rails::Engine
39
+ initializer :growlyflash_xmessage_headers do |config|
40
+ # Growlyflash.logger = ::Rails.logger
41
+
42
+ ActionController::Base.class_eval do
43
+ include XMessageHeaders
44
+ helper NoticeHelpers
45
+
46
+ after_filter :flash_to_headers, if: :is_xhr_request?
47
+ end
48
+
49
+ end
13
50
  end
14
- end
15
-
16
- if defined?(Rails)
17
- require 'growlyflash/engine'
18
- end
19
51
 
20
- if defined?(Rails::Railtie)
21
- require 'growlyflash/railtie'
22
52
  end
@@ -1,3 +1,3 @@
1
1
  module Growlyflash
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
@@ -16,8 +16,6 @@ $.extend
16
16
 
17
17
  settings = $.extend settings, options
18
18
 
19
- console.log settings
20
-
21
19
  html_attrs =
22
20
  class: 'bootstrap-growl alert'
23
21
  html: ''
@@ -11,41 +11,30 @@ class Growlyflash
11
11
  notice : 'info'
12
12
  success: 'success'
13
13
 
14
- constructor: () ->
15
- @flashes_log = []
14
+ constructor: (@context) ->
16
15
  @growl(window.flashes) if window.flashes?
17
- $(document).on 'ajax:complete', @ajax_complete
18
- $(document).ajaxComplete @ajax_complete
16
+ $(@context).on 'ajax:complete ajaxComplete', @ajax_complete
19
17
 
20
18
  growl: (flashes) ->
21
19
  for type, msg of flashes when msg?
22
- @flashes_log.push type:type, msg:msg
23
- $.bootstrapGrowl msg,
24
- type: TYPE_MAPPING[type]
20
+ $.bootstrapGrowl msg, type: TYPE_MAPPING[type]
25
21
 
26
22
  messages: (flashes) ->
27
23
  { type:type, msg:msg } for type, msg of flashes
28
-
29
- ajax_complete: (e, req) =>
30
- flashes = $.parseJSON req.getResponseHeader 'X-Message'
31
- return false if $.isEmptyObject flashes
32
-
33
- messages = @messages flashes
34
-
35
- if @flashes_log.length > 0
36
- last_log = @flashes_log.slice( - messages.length )
37
- not_matches = 0
38
- not_matches++ for id, f of messages when (last_log[id].type isnt f.type) and (last_log[id].msg isnt f.msg)
39
- unless not_matches > 0
40
- @flashes_log = []
41
- return true
42
-
43
- $.merge @flashes_log, messages
44
- @growl flashes
24
+
25
+ ajax_complete: (e, response, settings) =>
26
+ xmessage = @get_x_message.call response
27
+ if xmessage?
28
+ flashes = $.parseJSON xmessage
29
+ @growl flashes
45
30
  true
31
+
32
+ get_x_message: ->
33
+ encoded = @getResponseHeader('X-Message')
34
+ decodeURIComponent encoded
35
+
46
36
 
47
37
  root.Growlyflash = Growlyflash
48
38
 
49
39
  jQuery ->
50
-
51
- new Growlyflash()
40
+ growlyflash = new Growlyflash document
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: growlyflash
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tõnis Simo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-04-06 00:00:00.000000000 Z
11
+ date: 2013-05-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties
@@ -94,10 +94,6 @@ files:
94
94
  - Rakefile
95
95
  - growlyflash.gemspec
96
96
  - lib/growlyflash.rb
97
- - lib/growlyflash/controller.rb
98
- - lib/growlyflash/engine.rb
99
- - lib/growlyflash/helpers.rb
100
- - lib/growlyflash/railtie.rb
101
97
  - lib/growlyflash/version.rb
102
98
  - vendor/assets/javascripts/growlyflash/bootstrap-growl.js.coffee
103
99
  - vendor/assets/javascripts/growlyflash/growlyflash.js.coffee
@@ -127,3 +123,4 @@ specification_version: 4
127
123
  summary: Tiny gem which provides growl-styled flash messages for Ruby on Rails with
128
124
  Bootstrap.
129
125
  test_files: []
126
+ has_rdoc:
@@ -1,22 +0,0 @@
1
- require 'active_support/concern'
2
-
3
- module Growlyflash
4
- module Controller
5
- extend ActiveSupport::Concern
6
-
7
- included do
8
- after_filter :flash_to_headers, if: :is_xhr_request?
9
-
10
- def flash_to_headers
11
- flash_json = Hash[ flash.map { |type, msg| [type, msg] } ].to_json
12
- response.headers['X-Message'] = flash_json.clone
13
- flash.discard # don't want the flash to appear when you reload page
14
- end
15
-
16
- private
17
- def is_xhr_request?
18
- request.xhr?
19
- end
20
- end
21
- end
22
- end
@@ -1,6 +0,0 @@
1
- module Growlyflash
2
- module Rails
3
- class Engine < ::Rails::Engine
4
- end
5
- end
6
- end
@@ -1,11 +0,0 @@
1
- module Growlyflash
2
- module Helpers
3
-
4
- # Insert in head tag in your layout before any js.
5
- def growlyflash_static_notices
6
- if flash.any?
7
- javascript_tag "window.flashes = #{ raw(Hash[ flash.map { |type, msg| [type, msg] } ].to_json) };", defer: 'defer'
8
- end
9
- end
10
- end
11
- end
@@ -1,14 +0,0 @@
1
- if defined?(Rails::Railtie)
2
- module Growlyflash
3
-
4
- class Railtie < ::Rails::Railtie
5
- # initializer 'growlyflash.active_controller' do
6
- initializer :growlyflash do
7
- Growlyflash.initialize
8
- # ActiveSupport.on_load(:action_controller) do
9
- # include Growlyflash::Controller
10
- # end
11
- end
12
- end
13
- end
14
- end