global_session 1.1.0 → 2.0.0

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.
@@ -75,15 +75,14 @@ require 'json'
75
75
  require 'openssl'
76
76
 
77
77
  #Require the core suite of GlobalSession classes and modules
78
- basedir = File.dirname(__FILE__)
79
- require File.join(basedir, 'global_session', 'configuration')
80
- require File.join(basedir, 'global_session', 'directory')
81
- require File.join(basedir, 'global_session', 'encoding')
82
- require File.join(basedir, 'global_session', 'session')
83
- require File.join(basedir, 'global_session', 'integrated_session')
78
+ require 'global_session/configuration'
79
+ require 'global_session/directory'
80
+ require 'global_session/encoding'
81
+ require 'global_session/session'
84
82
 
85
83
  #Preemptively try to activate the Rails plugin, ignoring errors
86
84
  begin
87
- require File.join(basedir, 'global_session', 'rails')
85
+ require 'global_session/rails'
88
86
  rescue Exception => e
87
+ #no-op
89
88
  end
@@ -1,27 +1,21 @@
1
- # Common settings of the global session (that apply to all Rails environments)
2
- # are listed here. These may be overidden in the environment-specific section.
1
+ # Common attributes.
2
+ # May be overidden by per-environment settings; see below
3
3
  common:
4
4
  attributes:
5
- # Signed attributes of the global session
6
- signed:
5
+ signed: # integrity-protected attributes
7
6
  - user
8
- # Untrusted attributes of the global session
9
- insecure:
7
+ insecure: # Insecure (unsigned) attributes
10
8
  - account
11
- #If the session cookie is ephemeral, it goes away when the user closes the browser.
12
- #Otherwise it stays around
13
- ephemeral: false
14
-
9
+ ephemeral: true # Ephemeral cookies go away when the browser closes
10
+
15
11
  # Test/spec runs
16
12
  test:
17
13
  timeout: 15 #minutes
18
14
  renew: 5 #minutes before expiration
19
15
  cookie:
20
16
  name: global_session
21
- #the name of the local authority (optional)
22
- authority: test
23
- #which authorities this app will trust
24
- trust:
17
+ authority: test # the name of the local authority (optional)
18
+ trust: #which authorities this app will trust
25
19
  - test
26
20
 
27
21
  # Development mode
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: global_session
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
4
+ hash: 15
5
5
  prerelease: false
6
6
  segments:
7
- - 1
8
- - 1
7
+ - 2
9
8
  - 0
10
- version: 1.1.0
9
+ - 0
10
+ version: 2.0.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Tony Spataro
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-11-01 00:00:00 -07:00
18
+ date: 2012-11-06 00:00:00 -08:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -66,6 +66,21 @@ dependencies:
66
66
  type: :runtime
67
67
  - !ruby/object:Gem::Dependency
68
68
  version_requirements: &id004 !ruby/object:Gem::Requirement
69
+ none: false
70
+ requirements:
71
+ - - ~>
72
+ - !ruby/object:Gem::Version
73
+ hash: 3
74
+ segments:
75
+ - 0
76
+ - 4
77
+ version: "0.4"
78
+ requirement: *id004
79
+ name: msgpack
80
+ prerelease: false
81
+ type: :runtime
82
+ - !ruby/object:Gem::Dependency
83
+ version_requirements: &id005 !ruby/object:Gem::Requirement
69
84
  none: false
70
85
  requirements:
71
86
  - - ~>
@@ -75,7 +90,7 @@ dependencies:
75
90
  - 1
76
91
  - 0
77
92
  version: "1.0"
78
- requirement: *id004
93
+ requirement: *id005
79
94
  name: rack-contrib
80
95
  prerelease: false
81
96
  type: :runtime
@@ -96,12 +111,14 @@ files:
96
111
  - lib/global_session/configuration.rb
97
112
  - lib/global_session/directory.rb
98
113
  - lib/global_session/encoding.rb
99
- - lib/global_session/integrated_session.rb
100
114
  - lib/global_session/rack.rb
101
115
  - lib/global_session/rails.rb
102
116
  - lib/global_session/rails/action_controller_class_methods.rb
103
117
  - lib/global_session/rails/action_controller_instance_methods.rb
104
118
  - lib/global_session/session.rb
119
+ - lib/global_session/session/abstract.rb
120
+ - lib/global_session/session/v1.rb
121
+ - lib/global_session/session/v2.rb
105
122
  - rails/init.rb
106
123
  - rails_generators/global_session/USAGE
107
124
  - rails_generators/global_session/global_session_generator.rb
@@ -1,146 +0,0 @@
1
- # Copyright (c) 2012 RightScale Inc
2
- #
3
- # Permission is hereby granted, free of charge, to any person obtaining
4
- # a copy of this software and associated documentation files (the
5
- # "Software"), to deal in the Software without restriction, including
6
- # without limitation the rights to use, copy, modify, merge, publish,
7
- # distribute, sublicense, and/or sell copies of the Software, and to
8
- # permit persons to whom the Software is furnished to do so, subject to
9
- # the following conditions:
10
- #
11
- # The above copyright notice and this permission notice shall be
12
- # included in all copies or substantial portions of the Software.
13
- #
14
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
- # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
- # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
- # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
- # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
- # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
- # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21
-
22
- module GlobalSession
23
- # Helper class that enables the end user to treat the global and local session as if
24
- # they were the same object. This is accomplished by implementing approximately the
25
- # same interface as a Hash, and dispatching to one or the other session object depending
26
- # on various factors.
27
- #
28
- # This class isn't intended to be used directly by the end user. Instead, set integrated: true
29
- # in the configuration file and the Web framework integration code will manage an integrated
30
- # session object for you, as well as overriding the framework's default session accessor to
31
- # return an integrated session instead.
32
- #
33
- # When using an integrated session, you can always get to the underlying objects by
34
- # using the #local and #global readers of this class.
35
- #
36
- class GlobalSession::IntegratedSession
37
- # Return the local-session objects, whose type may vary depending on the Web framework.
38
- attr_reader :local
39
-
40
- # Return the global-session object.
41
- attr_reader :global
42
-
43
- # Construct a new integrated session.
44
- #
45
- # === Parameters
46
- # local(Object):: Local session that acts like a Hash
47
- # global(Session):: Session
48
- def initialize(local, global)
49
- @local = local
50
- @global = global
51
- end
52
-
53
- # Retrieve a value from the global session if the supplied key is supported by
54
- # the global session, else retrieve it from the local session.
55
- #
56
- # === Parameters
57
- # key(String):: the key
58
- #
59
- # === Return
60
- # value(Object):: The value associated with +key+, or nil if +key+ is not present
61
- def [](key)
62
- key = key.to_s
63
- if @global.supports_key?(key)
64
- @global[key]
65
- else
66
- @local[key]
67
- end
68
- end
69
-
70
- # Set a value in the global session (if the supplied key is supported) or the local
71
- # session otherwise.
72
- #
73
- # === Parameters
74
- # key(String):: The key to set
75
- # value(Object):: The value to set
76
- #
77
- # === Return
78
- # value(Object):: Always returns the value that was set
79
- def []=(key, value)
80
- key = key.to_s
81
- if @global.supports_key?(key)
82
- @global[key] = value
83
- else
84
- @local[key] = value
85
- end
86
-
87
- return value
88
- end
89
-
90
- # Determine whether the global or local session contains a value with the specified key.
91
- #
92
- # === Parameters
93
- # key(String):: The name of the key
94
- #
95
- # === Return
96
- # contained(true|false):: Whether the session currently has a value for the specified key.
97
- def has_key?(key)
98
- key = key.to_s
99
- @global.has_key?(key) || @local.has_key?(key)
100
- end
101
-
102
- alias :key? :has_key?
103
-
104
- # Return the keys that are currently present in either the global or local session.
105
- #
106
- # === Return
107
- # keys(Array):: List of keys contained in the global or local session.
108
- def keys
109
- @global.keys + @local.keys
110
- end
111
-
112
- # Return the values that are currently present in the global or local session.
113
- #
114
- # === Return
115
- # values(Array):: List of values contained in the global or local session.
116
- def values
117
- @global.values + @local.values
118
- end
119
-
120
- # Iterate over each key/value pair in both the global and local session.
121
- #
122
- # === Block
123
- # An iterator which will be called with each key/value pair
124
- #
125
- # === Return
126
- # Returns the value of the last expression evaluated by the block
127
- def each_pair(&block)
128
- @global.each_pair(&block)
129
- @local.each_pair(&block)
130
- end
131
-
132
- def respond_to?(meth) # :nodoc:
133
- return @global.respond_to?(meth) || @local.respond_to?(meth) || super
134
- end
135
-
136
- def method_missing(meth, *args) # :nodoc:
137
- if @global.respond_to?(meth)
138
- @global.__send__(meth, *args)
139
- elsif @local.respond_to?(meth)
140
- @local.__send__(meth, *args)
141
- else
142
- super
143
- end
144
- end
145
- end
146
- end