zorglub 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,3 @@
1
+ *~
2
+ pkg
3
+ coverage
data/.travis.yml ADDED
@@ -0,0 +1,7 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.9.2
4
+ - 1.9.3
5
+ - jruby-19mode
6
+ - rbx-19mode
7
+ script: "rake spec"
data/Changelog CHANGED
@@ -1,26 +1,37 @@
1
- 2011-05-26 Jérémy Zurcher <jeremy@asynk.ch>
2
- * Project creation
3
-
4
- 2011-09-13 Jérémy Zurcher <jeremy@asynk.ch>
5
- * usable WIP
1
+ 2013-01-08 Jérémy Zurcher <jeremy@asynk.ch>
2
+ * release 0.6
3
+ * add sass engine
4
+ * use Bundler
5
+ * enable travis
6
+ * fix and rename inherited_vars in cli_vals
6
7
 
7
- 2012-01-04 Jérémy Zurcher <jeremy@asynk.ch>
8
- * lots of code cleanup
9
- * replace Helpers Module with Node#inherited_var Node@inherited_vars
10
- * rewrite session so it is compatible with Rack SessionHash
11
- * update test application and write specs
8
+ 2012-01-17 Jérémy Zurcher <jeremy@asynk.ch>
9
+ * release 0.5
10
+ * Node code cleanup
11
+ * class and method level directives are now view!, layout!, no_layout!, ...
12
+ * add view_base_path! and layout_base_path!
13
+ * before_all and after_all are based on inherited_vars
14
+ * add Zorglub::Config.debug
15
+ * Zorglub::App swallows Zorglub::Config
12
16
 
13
17
  2012-01-05 Jérémy Zurcher <jeremy@asynk.ch>
18
+ * release 0.3 and 0.4
14
19
  * haml, file engines
15
20
  * view/layout extention overriding at methode level
16
21
  * optional engine cache
17
22
  * optional engine proc mime-type definition
18
23
  * optional static page generation/cache
19
24
 
20
- 2012-01-17 Jérémy Zurcher <jeremy@asynk.ch>
21
- * Node code cleanup
22
- * class and method level directives are now view!, layout!, no_layout!, ...
23
- * add view_base_path! and layout_base_path!
24
- * before_all and after_all are based on inherited_vars
25
- * add Zorglub::Config.debug
26
- * Zorglub::App swallows Zorglub::Config
25
+ 2012-01-04 Jérémy Zurcher <jeremy@asynk.ch>
26
+ * release 0.2
27
+ * lots of code cleanup
28
+ * replace Helpers Module with Node#inherited_var Node@inherited_vars
29
+ * rewrite session so it is compatible with Rack SessionHash
30
+ * update test application and write specs
31
+
32
+ 2011-09-13 Jérémy Zurcher <jeremy@asynk.ch>
33
+ * usable WIP
34
+
35
+ 2011-05-26 Jérémy Zurcher <jeremy@asynk.ch>
36
+ * Project creation
37
+
data/Gemfile ADDED
@@ -0,0 +1,5 @@
1
+ source "http://rubygems.org"
2
+
3
+ # gem's dependencies are in zorglub.gemspec
4
+ gemspec
5
+
data/Gemfile.lock ADDED
@@ -0,0 +1,32 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ zorglub (0.0.5)
5
+ rack
6
+
7
+ GEM
8
+ remote: http://rubygems.org/
9
+ specs:
10
+ diff-lcs (1.1.3)
11
+ haml (3.1.7)
12
+ rack (1.4.2)
13
+ rake (10.0.3)
14
+ rspec (2.12.0)
15
+ rspec-core (~> 2.12.0)
16
+ rspec-expectations (~> 2.12.0)
17
+ rspec-mocks (~> 2.12.0)
18
+ rspec-core (2.12.2)
19
+ rspec-expectations (2.12.1)
20
+ diff-lcs (~> 1.1.3)
21
+ rspec-mocks (2.12.1)
22
+ sass (3.2.5)
23
+
24
+ PLATFORMS
25
+ ruby
26
+
27
+ DEPENDENCIES
28
+ haml
29
+ rake
30
+ rspec
31
+ sass
32
+ zorglub!
@@ -1,12 +1,12 @@
1
- zorglub
1
+ # zorglub
2
2
  by Jérémy Zurcher
3
- http://cgit.asynk.ch/cgi-bin/cgit/zorglub
3
+ http://asynk.ch
4
4
 
5
- == DESCRIPTION:
5
+ ## DESCRIPTION:
6
6
 
7
- a nano web application framework based on rack[http://rack.rubyforge.org/]
7
+ a nano web application framework based on [rack](http://rack.rubyforge.org/)
8
8
 
9
- == FEATURES:
9
+ ## FEATURES:
10
10
 
11
11
  * class#method mapping scheme (/class_mapping/method_name/*args)
12
12
  * class level layout and engine specification
@@ -17,7 +17,11 @@ a nano web application framework based on rack[http://rack.rubyforge.org/]
17
17
  * class level inherited variables
18
18
  * session
19
19
 
20
- == SYNOPSIS:
20
+ ## STATUS:
21
+
22
+ [![Build Status](https://secure.travis-ci.org/jeremyz/zorglub.png)](http://travis-ci.org/jeremyz/zorglub)
23
+
24
+ ## SYNOPSIS:
21
25
 
22
26
  For a simple test application run:
23
27
  * rackup ./example/sample.ru
@@ -25,11 +29,11 @@ For a simple test application run:
25
29
  Don't forget to look at
26
30
  * the spec/ folder
27
31
 
28
- == REQUIREMENTS:
32
+ ## REQUIREMENTS:
29
33
 
30
34
  * rack
31
35
 
32
- == DOWNLOAD/INSTALL:
36
+ ## DOWNLOAD/INSTALL:
33
37
 
34
38
  From rubygems:
35
39
 
@@ -37,11 +41,9 @@ From rubygems:
37
41
 
38
42
  or from the git repository on github:
39
43
 
40
- git clone git://github.com/jeremyz/zorglub.git
41
- cd zorglub
42
- rake gem:install
44
+ git clone git://github.com/jeremyz/zorglub.git && cd zorglub && rake install
43
45
 
44
- == RESOURCES:
46
+ ## RESOURCES:
45
47
 
46
48
  You can find this project in a few places:
47
49
 
@@ -50,6 +52,7 @@ Online repositories:
50
52
  * https://github.com/jeremyz/zorglub
51
53
  * http://cgit.asynk.ch/cgi-bin/cgit/zorglub/
52
54
 
53
- == LICENSE:
55
+ ## LICENSE:
56
+
57
+ [MIT](http://www.opensource.org/licenses/MIT) see [MIT_LICENSE](https://github.com/jeremyz/zorglub/blob/master/MIT-LICENSE)
54
58
 
55
- See MIT-LICENSE file.
data/Rakefile CHANGED
@@ -1,60 +1,6 @@
1
- # -*- coding: UTF-8 -*-
2
- #
3
- $LOAD_PATH << 'lib'
4
- #
5
- require 'zorglub'
6
- load './tasks/setup.rb'
7
- #
8
- # Project general information
9
- PROJ.name = 'zorglub'
10
- PROJ.authors = 'Jérémy Zurcher'
11
- PROJ.email = 'jeremy@asynk.ch'
12
- PROJ.url = 'http://cgit.asynk.ch/cgi-bin/cgit/zorglub'
13
- PROJ.version = Zorglub::VERSION
14
- PROJ.rubyforge.name = 'FIXME'
15
- PROJ.readme_file = 'README.rdoc'
16
- #
17
- # Annoucement
18
- PROJ.ann.paragraphs << 'FEATURES' << 'SYNOPSIS' << 'REQUIREMENTS' << 'DOWNLOAD/INSTALL' << 'CREDITS' << 'LICENSE'
19
- PROJ.ann.email[:from] = 'jeremy@asynk.ch'
20
- PROJ.ann.email[:to] = ['FIXME']
21
- PROJ.ann.email[:server] = 'FIXME'
22
- PROJ.ann.email[:tls] = false
23
- # Gem specifications
24
- PROJ.gem.need_tar = false
25
- PROJ.gem.files = %w(Changelog MIT-LICENSE README.rdoc Rakefile) + Dir.glob("{ext,lib,spec,tasks}/**/*[^~]").reject { |fn| test ?d, fn }
26
- PROJ.gem.platform = Gem::Platform::RUBY
27
- PROJ.gem.required_ruby_version = ">= 1.9.2"
28
- #
29
- # Override Mr. Bones autogenerated extensions and force ours in
30
- #PROJ.gem.extras['extensions'] = %w(ext/extconf.rb)
31
- #PROJ.gem.extras['required_ruby_version'] = ">= 1.9.2"
32
- #
33
- # RDoc
34
- PROJ.rdoc.exclude << '^ext\/'
35
- PROJ.rdoc.opts << '-x' << 'ext'
36
- #
37
- # Ruby
38
- PROJ.ruby_opts = []
39
- PROJ.ruby_opts << '-I' << 'lib'
40
- #
41
- # RSpec
42
- PROJ.spec.files.exclude /rbx/
43
- PROJ.spec.opts << '--color'
44
- #
45
- # Rcov
46
- PROJ.rcov.opts << '-I lib'
47
- #
48
- # Dependencies
49
- depend_on 'rack'
50
- depend_on 'rake', '>=0.8.0'
51
- #
52
- task :default => [:spec]
53
- #
54
- desc "Build all packages"
55
- task :package => 'gem:package'
56
- #
57
- desc "Install the gem locally"
58
- task :install => 'gem:install'
59
- #
60
- # EOF
1
+ require 'bundler/gem_tasks'
2
+
3
+ require 'rspec/core/rake_task'
4
+ RSpec::Core::RakeTask.new
5
+
6
+ task :default => :spec
data/TODO ADDED
@@ -0,0 +1,7 @@
1
+ TODO
2
+ - development and production modes
3
+ - minimized html/js/css
4
+ - encoding
5
+
6
+ MAYBE
7
+ - config belongs to application
@@ -0,0 +1,5 @@
1
+ %h1=@title
2
+ %p="xx <b>css</b> layout xx"
3
+ %p="Css #{cli_val(:css).inspect}"
4
+ %p=@content
5
+ %p="xx -- xx"
@@ -0,0 +1,5 @@
1
+ %h1=@title
2
+ %p="xx <b>default</b> layout xx"
3
+ %p="count #{Zorglub::Node.count}"
4
+ %p=@content
5
+ %p="xx -- xx"
@@ -0,0 +1,4 @@
1
+ %h1=@title
2
+ %p="xx <b>other</b> layout - xx"
3
+ %p=@content
4
+ %p="xx -- xx"
data/example/sample.ru ADDED
@@ -0,0 +1,157 @@
1
+ #! /usr/bin/env ruby
2
+ #
3
+ $LOAD_PATH << File.join(File.dirname( File.absolute_path(__FILE__)), '..', 'lib')
4
+ #
5
+ USE_RACK_SESSION=false
6
+ #
7
+ require 'zorglub'
8
+ require 'zorglub/engines/haml'
9
+ if USE_RACK_SESSION
10
+ require 'zorglub/rack_session'
11
+ else
12
+ require 'zorglub/session'
13
+ end
14
+ #
15
+ class Zorglub::Node
16
+ @count=0
17
+ class << self
18
+ attr_accessor :count
19
+ end
20
+ before_all do |node|
21
+ Zorglub::Node.count +=1
22
+ end
23
+ end
24
+ #
25
+ class Node1 < Zorglub::Node
26
+ #
27
+ def index a1, *a2
28
+ @title='Index'
29
+ @links = LINKS
30
+ # there's a view so the below will be lost !
31
+ "<b>should never be seeen</b>"
32
+ end
33
+ #
34
+ def meth0 *args
35
+ @title='meth0'
36
+ @links = LINKS
37
+ # method level engine
38
+ engine! 'tmp-engine'
39
+ # there's a view so the below will be lost !
40
+ "<b>should never be seeen</b>"
41
+ end
42
+ #
43
+ def meth1 *args
44
+ @title='meth1'
45
+ @links = LINKS
46
+ # method level engine (layout/other.haml)
47
+ layout! 'other'
48
+ # specific method view (view/url1/meth0.haml)
49
+ view! File.join( 'url1','meth0')
50
+ # there's a view so the below will be lost !
51
+ "<b>should never be seeen</b>"
52
+ end
53
+ #
54
+ def jump *args
55
+ redirect r(:index,1,2,3)
56
+ end
57
+ #
58
+ end
59
+ #
60
+ HAML_PROC = Proc.new { |path,obj| Haml::Engine.new( File.open(path,'r').read ).render(obj) }
61
+ #
62
+ APP = Zorglub::App.new do
63
+ register_engine! :haml, 'haml', Zorglub::Engines::Haml.method(:proc)
64
+ register_engine! 'tmp-engine', 'haml', HAML_PROC
65
+ opt! :debug, true
66
+ opt! :engine, :haml
67
+ opt!:root, File.dirname( File.absolute_path(__FILE__) )
68
+ opt(:session_options)[:enabled] = true
69
+ map '/url1', Node1
70
+ end
71
+ #
72
+ class Node2 < Zorglub::Node
73
+ #
74
+ map APP, '/url2'
75
+ layout! 'css'
76
+ # class level engine
77
+ engine! 'tmp-engine'
78
+ # class level css
79
+ cli_val :css, 'class_level.css'
80
+ #
81
+ def index *args
82
+ "<title>Node2:index</title><b>START</b>#{html}<a href=#{Node2.r(:meth0)}>next</a><br/><b>END</b>"
83
+ end
84
+ #
85
+ def meth0 *args
86
+ # instance level css
87
+ cli_val :css, 'instance_level.css'
88
+ "<title>Node2:meth0</title><b>START</b>#{html}<a href=#{Node2.r(:meth1,1,2)}>next</a><br/><b>END</b>"
89
+ end
90
+ #
91
+ def meth1 *args
92
+ more = Node2.partial :meth0, *args
93
+ "<title>Node2:meth1</title><b>partial</b><br/>#{more}<br/><b>done</b><br/><a href=#{Node0.r}>back</a>"
94
+ end
95
+ end
96
+ #
97
+ class Node3 < Zorglub::Node
98
+ #
99
+ map APP, '/url3'
100
+ no_layout!
101
+ #
102
+ def index *args
103
+ @title = "Session tests"
104
+ t = Time.now
105
+ if session[:now].nil?
106
+ session[:now] = t
107
+ @data = "#{t.strftime('%H:%M:%S')} FIRST"
108
+ elsif t-session[:now]>10
109
+ session[:now] = t
110
+ @data = "#{t.strftime('%H:%M:%S')} UPDATE"
111
+ else
112
+ @data = "#{session[:now].strftime('%H:%M:%S')} CURRENT"
113
+ end
114
+ end
115
+ def reset
116
+ session.clear
117
+ redirect :index
118
+ end
119
+ #
120
+ end
121
+ #
122
+ class Node0 < Zorglub::Node
123
+ #
124
+ map APP, '/'
125
+ #
126
+ def index
127
+ html = "<html><body><ul>"
128
+ html << "<li><a href=\"#{Node1.r('index','a',2,'c')}\">Node1</a> engine, layout, view, redirect tests</li>"
129
+ html << "<li><a href=\"#{Node2.r}\">Node2</a> css helper tests</li>"
130
+ html << "<li><a href=\"#{Node3.r}\">Node3</a> session test</li>"
131
+ html << "</ul></body></html>"
132
+ html
133
+ end
134
+ #
135
+ end
136
+ #
137
+ Node1::LINKS= [
138
+ [Node1.r('index','arg1','arg2','arg3'),'index'],
139
+ [Node1.r('meth0'),'meth0'],
140
+ [Node1.r('meth1','one','two'),'meth1 with args'],
141
+ [Node1.r('jump','one','two'),'test redirect'],
142
+ [Node0.r,'back'],
143
+ ]
144
+ #
145
+ puts APP.to_hash.inspect
146
+ puts " **** "+( USE_RACK_SESSION ? 'USE Rack Session' : 'USE builtin Session' )
147
+ #
148
+ map '/' do
149
+ use Rack::Lint
150
+ use Rack::ShowExceptions
151
+ if USE_RACK_SESSION
152
+ use Rack::Session::Cookie, :key=>APP.opt(:session_options)[:key], :secret=>APP.opt(:session_options)[:secret],
153
+ :path=>'/', :http_only=>true, :expire_after=>30
154
+ end
155
+ run APP
156
+ end
157
+ #
@@ -0,0 +1,7 @@
1
+ %h3='url1 index view'
2
+ -options.each do |k,v|
3
+ %p="#{k} => #{v}"
4
+ %p
5
+ - @links.each do |href,name|
6
+ %a{:href=>href}=name
7
+ %br
@@ -0,0 +1,7 @@
1
+ %h3='url1 meth0 view'
2
+ -options.each do |k,v|
3
+ %p="#{k} => #{v}"
4
+ %p
5
+ - @links.each do |href,name|
6
+ %a{:href=>href}=name
7
+ %br
@@ -0,0 +1,8 @@
1
+ %h2=@title
2
+ %p=Time.now.strftime '%H:%M:%S'
3
+ %p="Session data : #{@data}"
4
+ %a{:href=>Node3.r}="reload"
5
+ %br
6
+ %a{:href=>Node3.r('reset')}="reset session"
7
+ %br
8
+ %a{:href=>Node0.r}="back"
data/lib/version.rb ADDED
@@ -0,0 +1,10 @@
1
+ #! /usr/bin/env ruby
2
+ # -*- coding: UTF-8 -*-
3
+ #
4
+ module Zorglub
5
+ #
6
+ VERSION = '0.0.6'
7
+ #
8
+ end
9
+ #
10
+ # EOF
data/lib/zorglub/app.rb CHANGED
@@ -25,11 +25,16 @@ module Zorglub
25
25
  :ugly => false,
26
26
  :encoding => 'utf-8'
27
27
  },
28
+ :sass_options => {
29
+ :syntax => :scss,
30
+ :cache => :false,
31
+ :style => :compressed
32
+ },
28
33
  :session_options => {
29
- :session_on => false,
30
- :session_key => 'zorglub.sid',
31
- :session_secret => 'session-secret-secret',
32
- :session_sid_len => 64,
34
+ :enabled => false,
35
+ :key => 'zorglub.sid',
36
+ :secret => 'session-secret-secret',
37
+ :sid_len => 64
33
38
  }
34
39
  }
35
40
  instance_eval &block if block_given?
@@ -0,0 +1,22 @@
1
+ # -*- coding: UTF-8 -*-
2
+ #
3
+ require 'sass'
4
+ #
5
+ module Zorglub
6
+ module Engines
7
+ module Sass
8
+ def self.proc path,obj
9
+ if obj.app.opt(:engines_cache_enabled)
10
+ key = path.sub obj.app.opt(:root),''
11
+ sass = obj.app.engines_cache[key] ||= ::Sass::Engine.new( ::File.open(path,'r'){|f| f.read }, obj.app.opt(:sass_options) )
12
+ else
13
+ sass = ::Sass::Engine.new( ::File.open(path,'r'){|f| f.read }, obj.app.opt(:sass_options) )
14
+ end
15
+ css = sass.render
16
+ return css, 'text/css'
17
+ end
18
+ end
19
+ end
20
+ end
21
+ #
22
+ # EOF
data/lib/zorglub/node.rb CHANGED
@@ -154,58 +154,60 @@ module Zorglub
154
154
  "You are being redirected, please follow this link to: <a href='#{target}'>#{target}</a>!"
155
155
  end
156
156
  #
157
- # inherited vars, they can be modified at class level only
157
+ # class level inherited values are key=>array, copied at inheritance
158
+ # so they can be extanded at class level
159
+ # values are copied from class into instance at object creation
160
+ # so that can be extanded without modifying class level values
161
+ # typical usage are css or js inclusions
158
162
  #
159
- @inherited_vars = { }
163
+ @cli_vals = { }
160
164
  #
161
165
  class << self
162
166
  #
163
- attr_reader :inherited_vars
167
+ attr_reader :cli_vals
164
168
  #
165
- def inherited_var sym, *args
166
- var = @inherited_vars[sym] ||=[]
169
+ def cli_val sym, *args
170
+ vals = @cli_vals[sym] ||=[]
167
171
  unless args.empty?
168
- var.concat args
169
- var.uniq!
172
+ vals.concat args
173
+ vals.uniq!
170
174
  end
171
- var
175
+ vals
172
176
  end
173
177
  #
174
178
  end
175
179
  #
176
- def inherited_var sym, *args
177
- d = self.class.inherited_vars[sym].clone || []
180
+ def cli_val sym, *args
181
+ vals = @cli_vals[sym] ||=[]
178
182
  unless args.empty?
179
- d.concat args
180
- d.uniq!
183
+ vals.concat args
184
+ vals.uniq!
181
185
  end
182
- d
186
+ vals
183
187
  end
184
188
  #
185
189
  # before_all and after_all hooks
186
190
  #
187
- @inherited_vars[:before_all] = []
188
- @inherited_vars[:after_all] = []
191
+ @cli_vals[:before_all] = []
192
+ @cli_vals[:after_all] = []
189
193
  class << self
190
- #
191
- attr_reader :hooks
192
194
  #
193
195
  def call_before_hooks obj
194
- @inherited_vars[:before_all].each do |blk| blk.call obj end
196
+ @cli_vals[:before_all].each do |blk| blk.call obj end
195
197
  end
196
198
  #
197
199
  def before_all &blk
198
- @inherited_vars[:before_all]<< blk
199
- @inherited_vars[:before_all].uniq!
200
+ @cli_vals[:before_all]<< blk
201
+ @cli_vals[:before_all].uniq!
200
202
  end
201
203
  #
202
204
  def call_after_hooks obj
203
- @inherited_vars[:after_all].each do |blk| blk.call obj end
205
+ @cli_vals[:after_all].each do |blk| blk.call obj end
204
206
  end
205
207
  #
206
208
  def after_all &blk
207
- @inherited_vars[:after_all]<< blk
208
- @inherited_vars[:after_all].uniq!
209
+ @cli_vals[:after_all]<< blk
210
+ @cli_vals[:after_all].uniq!
209
211
  end
210
212
  #
211
213
  end
@@ -217,12 +219,12 @@ module Zorglub
217
219
  def inherited sub
218
220
  sub.engine! engine||(self==Zorglub::Node ? UNDEFINED : nil )
219
221
  sub.layout! layout||(self==Zorglub::Node ? UNDEFINED : nil )
220
- sub.instance_variable_set :@inherited_vars, {}
221
- @inherited_vars.each do |s,v| sub.inherited_var s, *v end
222
+ sub.instance_variable_set :@cli_vals, {}
223
+ @cli_vals.each do |s,v| sub.cli_val s, *v end
222
224
  end
223
225
  #
224
226
  def call env
225
- meth, *args = env['PATH_INFO'].sub(/^\//,'').split '/'
227
+ meth, *args = env['PATH_INFO'].sub(/^\//,'').split(/\//)
226
228
  meth||= 'index'
227
229
  puts "=> #{meth}(#{args.join ','})" if app.opt :debug
228
230
  node = self.new env, {:engine=>engine,:layout=>layout,:view=>r(meth),:method=>meth,:args=>args,:static=>static}
@@ -242,7 +244,7 @@ module Zorglub
242
244
  resp = node.response
243
245
  resp.status = 404
244
246
  resp['Content-Type'] = 'text/plain'
245
- resp.write "%s mapped at %p can't respond to : %p" % [ node.class.name, node.r, node.request.env['PATH_INFO'] ]
247
+ resp.write "%s mapped at %p can't respond to : %p" % [ node.class.name, node.map, node.request.env['PATH_INFO'] ]
246
248
  resp
247
249
  end
248
250
  #
@@ -255,6 +257,8 @@ module Zorglub
255
257
  @options = options
256
258
  @request = Rack::Request.new env
257
259
  @response = Rack::Response.new
260
+ @cli_vals ={}
261
+ self.class.cli_vals.each do |s,v| cli_val s, *v end
258
262
  end
259
263
  #
260
264
  def state state=nil
@@ -47,7 +47,7 @@ module Zorglub
47
47
  #
48
48
  def clear
49
49
  load_data!
50
- # @response.delete_cookie @options[:session_key]
50
+ # @response.delete_cookie @options[:key]
51
51
  # @sessions.delete @sid
52
52
  # @sid = nil
53
53
  super
@@ -95,11 +95,11 @@ module Zorglub
95
95
  #
96
96
  def load_data!
97
97
  return if loaded?
98
- if @options[:session_on]
99
- sid = @request.cookies[@options[:session_key]]
98
+ if @options[:enabled]
99
+ sid = @request.cookies[@options[:key]]
100
100
  if sid.nil?
101
101
  sid = generate_sid!
102
- @response.set_cookie @options[:session_key], sid
102
+ @response.set_cookie @options[:key], sid
103
103
  end
104
104
  replace @sessions[sid] ||={}
105
105
  @sessions[sid] = self
@@ -126,7 +126,7 @@ module Zorglub
126
126
  # SecureRandom is available since Ruby 1.8.7.
127
127
  # For Ruby versions earlier than that, you can require the uuidtools gem,
128
128
  # which has a drop-in replacement for SecureRandom.
129
- def sid_algorithm; SecureRandom.hex(@options[:session_sid_len]); end
129
+ def sid_algorithm; SecureRandom.hex(@options[:sid_len]); end
130
130
  rescue LoadError
131
131
  require 'openssl'
132
132
  # Using OpenSSL::Random for generation, this is comparable in performance
@@ -134,7 +134,7 @@ module Zorglub
134
134
  # have the same behaviour as the SecureRandom::hex method of the
135
135
  # uuidtools gem.
136
136
  def sid_algorithm
137
- OpenSSL::Random.random_bytes(@options[:session_sid_len] / 2).unpack('H*')[0]
137
+ OpenSSL::Random.random_bytes(@options[:sid_len] / 2).unpack('H*')[0]
138
138
  end
139
139
  rescue LoadError
140
140
  # Digest::SHA2::hexdigest produces a string of length 64, although