Skip to content

Commit

Permalink
Require drb_uri parameter on init. Handle Mimetype
Browse files Browse the repository at this point in the history
  • Loading branch information
ngiger committed Nov 15, 2016
1 parent 548cf67 commit 45f8c62
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 9 deletions.
18 changes: 10 additions & 8 deletions lib/sbsm/app.rb
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@
require 'sbsm/cgi'
require 'cgi/drbsession'
require 'sbsm/drbserver'
require 'mimemagic'

module SBSM
###
# App a base class for Webrick server
Expand All @@ -36,7 +38,7 @@ class App < SBSM::DRbServer
PERSISTENT_COOKIE_NAME = "cookie-persistent-sbsm-1.3.1"
SBSM.info "PERSISTENT_COOKIE_NAME #{PERSISTENT_COOKIE_NAME}"

attr_reader :sbsm, :my_self, :validator
attr_reader :sbsm, :my_self, :trans_handler, :validator, :drb_uri

OPTIONS = [ :app, :config_file, :trans_handler, :validator, :persistence_layer, :server_uri, :session, :unknown_user ]
COOKIE_ID = 'sbsm-persistent-cookie-id'
Expand All @@ -58,11 +60,12 @@ class App < SBSM::DRbServer
# Look at steinwies.ch
# * https://github.com/zdavatz/steinwies.ch (simple, mostly static files, one form, no persistence layer)
#
def initialize(app:, validator:, trans_handler:, persistence_layer: nil)
def initialize(app:, validator:, trans_handler:, drb_uri:, persistence_layer: nil)
@app = app
@drb_uri = drb_uri
@trans_handler = trans_handler
@validator = validator
SBSM.info "initialize @app is now #{@app.class} validator #{validator} th #{trans_handler} "
SBSM.info "initialize @app is now #{@app.class} validator #{validator} th #{trans_handler} drb_uri #{drb_uri}"
super(persistence_layer)
end

Expand All @@ -74,13 +77,12 @@ def call(env) ## mimick sbsm/lib/app.rb
else
session_id = rand((2**(0.size * 8 -2) -1)*10240000000000).to_s(16)
end

file_name = File.expand_path(File.join('doc', request.path))
if File.file?(file_name)
if /css/i.match(File.basename(file_name))
response.set_header('Content-Type', 'text/css')
else
response.set_header('Content-Type', 'text/plain')
end
mime_type = MimeMagic.by_extension(File.extname(file_name)).type
SBSM.info "file_name is #{file_name} checkin base #{File.basename(file_name)} MIME #{mime_type}"
response.set_header('Content-Type', mime_type)
response.write(File.open(file_name, File::RDONLY){|file| file.read})
return response
end
Expand Down
2 changes: 1 addition & 1 deletion lib/sbsm/session.rb
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ def initialize(key, app, validator=nil)
@variables = {}
@mutex = Mutex.new
@cgi = CGI.initialize_without_offline_prompt('html4')
SBSM.debug "session initialized #{self} key #{key} app #{app.class} #{validator.class} with @cgi #{@cgi}"
SBSM.debug "session initialized #{self} key #{key} app #{app.class} #{@validator.class} th #{@trans_handler.class} with @cgi #{@cgi}"
super(app)
end
def age(now=Time.now)
Expand Down
1 change: 1 addition & 0 deletions sbsm.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ Gem::Specification.new do |spec|
spec.add_dependency 'rack'
spec.add_dependency 'mail'
spec.add_dependency 'hpricot'
spec.add_dependency 'mimemagic'
spec.add_dependency 'chrono_logger'

spec.add_development_dependency "bundler"
Expand Down

0 comments on commit 45f8c62

Please sign in to comment.