tiny-rack-flash 0.0.1 → 0.0.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
- MGNiNmE4NjQ3MmY3YTFmYjljN2U5OTFjOTY3ZWY2N2VkMTI2OGIxYg==
4
+ NDZkNzU5YzEwNmNiMDE3ZWE0MzEzMWJkYTBhNTEyM2NjOGYyOTk1MA==
5
5
  data.tar.gz: !binary |-
6
- OGZlYTkzOWZiMmE0N2U0MjM5MjVmODFjOWRjM2QyMzVkY2Q4ZGY5MA==
6
+ YTZlZjM1ZGZiYjg2YWYyZmNmOTM4OWNiNjdhNDI0YjYxYjdlZDYyMQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- ODBkNzZmZjYwODliZWUwMTY1YjY3YWUzZDU2ZDUxOThmODgyZTA5ODAwMGNi
10
- NWZhNWU0ZDFiZmRkOTRkOGNmOGMwNmJjMjdmOWJkNTJhYTNlMzZlM2ZhMTFi
11
- ZDZjY2UwM2Q0NDI1MWQ4NDMzNjU5OGUxYWIxMmQwMmFkY2Q4ZjM=
9
+ NjhkOTY5MzI5NTk0MjNmZDcxYTYzMjFmN2E2MGFmNmIwYzU2NmIxMmE0ODdk
10
+ ZTliOGZjZjAxYzRjYjlmMzJjMDY4YTA5ZGFkZWVlM2RjNGJmMDVlZDdlODMx
11
+ ZjBiYTU5OGVjMGRiZGQ5NjVkZWVhZmRiYmY4ZGE2OWYwNjE5OTQ=
12
12
  data.tar.gz: !binary |-
13
- ZGU1Y2U3ZmVhNTc0MTYwMjE3NDYyYTA0MWI2NmI0YzgzMmQzNmI0YmRjNGNm
14
- ZDFhOWQyOGM4N2QzYzNhZjRhMGE0MGJmZGEyNTA3NTg1OTM3MTNhYjhlYWMz
15
- NDM4YzcwZWI5NTZjYTZhMDU5ZDAwZTllNzIyMzM2ZTQwYzk3NjQ=
13
+ ZGRlNjZkYzMxMGFjNzllZDVmZTk3ZGU4NmRmMzg5ZjI4YTJlYTMyMDE2ZmY1
14
+ NTZkNGU0NDViNjc1MWFmMWY1YTNiODc0YWFkNzdjM2ViZTYyMzliNDE3ODk4
15
+ N2UwMTIxOWU5ZTUwYWE1NzJhMGM0OWU2YTBiZGUxMTU3ODk4Mzg=
data/README.md CHANGED
@@ -23,9 +23,11 @@ Or install it yourself as:
23
23
  Inside your main Rack class (e.g., `Sinatra::Base` or `Cuba`), simply add a
24
24
 
25
25
  require 'tiny_rack_flash'
26
- include TinyRackFlash
26
+ use TinyRackFlash do |helpers|
27
+ include helpers # adds `flash` method to your app class
28
+ end
27
29
 
28
- The `include` will hook up some Rack middleware for rotating the flash and provide a `flash` method for use in your route handlers.
30
+ This will hook up some Rack middleware for rotating the flash and provide a `flash` method for use in your route handlers.
29
31
 
30
32
  See `tests.rb` for examples.
31
33
 
@@ -1,6 +1,6 @@
1
1
  require 'delegate'
2
2
 
3
- module TinyRackFlash
3
+ class TinyRackFlash
4
4
 
5
5
  FlashKey = 'tiny.rack.flash'.freeze
6
6
  SessionKey = 'rack.session'.freeze
@@ -45,28 +45,24 @@ module TinyRackFlash
45
45
  end
46
46
  end
47
47
 
48
- def flash
49
- env[FlashKey] ||= begin
50
- session = env[SessionKey]
51
- FlashHash.new((session ? session[FlashKey] : {}))
48
+ module Helpers
49
+ def flash
50
+ env[FlashKey] ||= begin
51
+ session = env[SessionKey]
52
+ FlashHash.new((session ? session[FlashKey] : {}))
53
+ end
52
54
  end
53
55
  end
54
-
55
- class Middleware
56
56
 
57
- def initialize(app, opts={})
58
- @app, @opts = app, opts
59
- end
60
-
61
- def call(env)
62
- res = @app.call(env)
63
- env[SessionKey][FlashKey] = env[FlashKey].next if env[FlashKey]
64
- res
65
- end
66
-
57
+ def initialize(app, opts={})
58
+ @app, @opts = app, opts
59
+ yield Helpers if block_given?
60
+ end
61
+
62
+ def call(env)
63
+ res = @app.call(env)
64
+ env[SessionKey][FlashKey] = env[FlashKey].next if env[FlashKey]
65
+ res
67
66
  end
68
-
69
- def self.included(app); app.use Middleware; end
70
-
71
67
 
72
68
  end
data/tests.rb CHANGED
@@ -10,7 +10,10 @@ require "cuba"
10
10
 
11
11
  class SinatraApp < Sinatra::Base
12
12
 
13
- include TinyRackFlash
13
+ use TinyRackFlash do |mixins|
14
+ include mixins
15
+ end
16
+
14
17
  set :sessions, true
15
18
 
16
19
  get '/' do
@@ -31,7 +34,9 @@ end
31
34
  class CubaApp < Cuba
32
35
 
33
36
  use Rack::Session::Cookie, secret: "__a_very_long_string__"
34
- include TinyRackFlash
37
+ use TinyRackFlash do |mixins|
38
+ include mixins
39
+ end
35
40
 
36
41
  define do
37
42
  on root do
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
 
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = "tiny-rack-flash"
7
- spec.version = '0.0.1'
7
+ spec.version = '0.0.2'
8
8
  spec.authors = ["Jacob Brown"]
9
9
  spec.email = ["j.h.brown@tcu.edu"]
10
10
  spec.description = %q{ A tiny flash implementation for Rack apps }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tiny-rack-flash
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jacob Brown