noodles 0.0.6 → 0.0.7

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,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a896063e69e7bb35bc1e1cf23c8100d421d408d6
4
- data.tar.gz: 1282c8f3b37bef8dddada044f10f81ff8f6a1472
3
+ metadata.gz: 77dea08d283195f08a4216f683833c5151ac76d0
4
+ data.tar.gz: bf824b114fcf8e4c33092a6b9ec7b85db7a3b5c0
5
5
  SHA512:
6
- metadata.gz: 54a6721974b100c1904f77b019f41e5452066aa6cfc3fa0801da3ad62338899d90efe0cc7fb0a3cd4b9bb2b2f06cc50fdc7056b7d4229b07a63da6636c9c082f
7
- data.tar.gz: 68039d453bc0109a1d6cc1da5f766f13e6635f15f16af2f6c77f4dc1c252d9e65691cf342ba1684ddf6ecd635b31e3f7fd860fbab002de1d69ff0c12b84655ad
6
+ metadata.gz: 17e06e1c394343d1e75193645b49e430ff1563092210b0b5b2d30bf50862bbc0f1112cbc296bcab81c9f72ae02ff78046f73e67a7c18ce6fe72a925f5f9604de
7
+ data.tar.gz: f0c55f8b9b2699c412a2a4b0ac97035b27d446e8747d5b09e6bf073ec5e813c47efd7ebe3885f7c5bcf1fd4845a776c730a420591ef473fd4cfb4011d35666db
@@ -1,3 +1,4 @@
1
1
  Noodles.setup do |config|
2
2
  config.cache_store_name = 'my_noodles_app'
3
+ config.use_memached_as_session_storage = false
3
4
  end
@@ -14,7 +14,7 @@ module Noodles
14
14
  @routing_params = {}
15
15
  @request = Rack::Request.new(env)
16
16
  @response = Rack::Response.new([], 200, {'Content-Type' => 'text/html'})
17
- @session = @env['rack.session']
17
+ @session = Noodles.use_memached_as_session_storage ? Noodles::MemcachedSession.new(env) : @env['rack.session']
18
18
  end
19
19
 
20
20
  def text(textual_response)
@@ -0,0 +1,44 @@
1
+ module Noodles
2
+ class MemcachedSession
3
+
4
+ def initialize(env)
5
+ @env = env
6
+ end
7
+
8
+ def session_id
9
+ @env['rack.session']['init'] = true unless @env['rack.session'].loaded?
10
+ @env['rack.session']['session_id']
11
+ end
12
+
13
+ def [](key)
14
+ _internal_session_storage[key]
15
+ end
16
+
17
+ def []=(key, value)
18
+ session_data = _internal_session_storage
19
+ session_data[key] = value
20
+ Noodles.cache.set(session_id, session_data)
21
+ end
22
+
23
+ def delete(key)
24
+ session_data = _internal_session_storage
25
+ session_data.delete(key)
26
+ Noodles.cache.set(session_id, session_data)
27
+ end
28
+
29
+ def inspect
30
+ _internal_session_storage
31
+ end
32
+
33
+ private
34
+
35
+ def _internal_session_storage
36
+ session_data = Noodles.cache.get(session_id)
37
+ if session_data.nil?
38
+ session_data = {}
39
+ Noodles.cache.set(session_id, session_data)
40
+ end
41
+ session_data
42
+ end
43
+ end
44
+ end
@@ -1,3 +1,3 @@
1
1
  module Noodles
2
- VERSION = "0.0.6"
2
+ VERSION = "0.0.7"
3
3
  end
@@ -6,19 +6,16 @@ module Noodles
6
6
 
7
7
  @@connections ||= []
8
8
 
9
- # def connection
10
- # @websocket_handler.instance_variable_get("@connection")
11
- # end
12
-
13
- def add_connection handler
14
- @@connections << handler
9
+ def register_connection!
10
+ @@connections << self
15
11
  end
16
12
 
17
-
18
- def remove_connection handler
19
- @@connections.delete handler
13
+ def unregister_connection!
14
+ @@connections.delete self
20
15
  end
21
16
 
17
+ alias_method :deregister_method!, :unregister_connection!
18
+
22
19
  def broadcast msg
23
20
  @@connections.each do |connection|
24
21
  connection.send_data msg
@@ -39,8 +36,8 @@ module Noodles
39
36
  request(env).params
40
37
  end
41
38
 
42
- def connection_storage
43
-
39
+ def session
40
+ @session
44
41
  end
45
42
  end
46
43
  end
data/lib/noodles.rb CHANGED
@@ -4,6 +4,7 @@ require 'noodles/utils'
4
4
  require 'noodles/application'
5
5
  require 'noodles/environment'
6
6
  require 'noodles/cache'
7
+ require 'noodles/memcached_session'
7
8
  require 'multi_json'
8
9
 
9
10
  module Noodles
@@ -48,6 +49,6 @@ module Noodles
48
49
  yield self
49
50
  end
50
51
 
51
- attr_accessor :cache_store_name
52
+ attr_accessor :cache_store_name, :use_memached_as_session_storage
52
53
  end
53
54
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: noodles
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Damir Svrtan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-17 00:00:00.000000000 Z
11
+ date: 2014-06-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -274,6 +274,7 @@ files:
274
274
  - lib/noodles/http/errors/no_router_error.rb
275
275
  - lib/noodles/http/router.rb
276
276
  - lib/noodles/http/view.rb
277
+ - lib/noodles/memcached_session.rb
277
278
  - lib/noodles/utils.rb
278
279
  - lib/noodles/version.rb
279
280
  - lib/noodles/websocket/application.rb