noodles 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
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