sbsm 1.3.1 → 1.3.2
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 +4 -4
- data/History.txt +4 -0
- data/lib/sbsm/app.rb +10 -8
- data/lib/sbsm/logger.rb +1 -2
- data/lib/sbsm/session.rb +1 -1
- data/lib/sbsm/version.rb +1 -1
- data/sbsm.gemspec +1 -0
- data/test/simple_sbsm.rb +1 -1
- data/test/test_application.rb +2 -1
- data/test/test_logger.rb +8 -25
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 195e691643098516de7272f4711801f6bbfb012d
|
4
|
+
data.tar.gz: 6b57c1b95ac68366e1317d3ed0c4d1416d675b9f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: aa5411f5e681b34778dd6b9e0f8af3c5b02b4ecb75e531e7d7c566bf12ebae590893d46cb229e8b2bca152f79f365cf577c5fcef05109b6149fbd797fd9ce47e
|
7
|
+
data.tar.gz: 7c5f4d61ec5221ab3ec5e99234977d62c71dc3b4d987bd8f97e4bb1dab798ce98d91e126d9db53d7764a3c3a45f84176e89b634f6825b9de4c1ceab28447ad87
|
data/History.txt
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
=== 1.3.2 / 15.11.2016
|
2
|
+
* Requires the drb_uri-parameter when creating an app
|
3
|
+
* Determine the MIME-Type of all returned files by their ending using gem mimemagic
|
4
|
+
|
1
5
|
=== 1.3.1 / 9.11.2016
|
2
6
|
* Moved from mod_ruby to using webrick/rack interface
|
3
7
|
* Incompatible changes to 1.3.0 are that all trans_handlers must be fixed, as the parameters are
|
data/lib/sbsm/app.rb
CHANGED
@@ -28,6 +28,8 @@ require 'cgi/session'
|
|
28
28
|
require 'sbsm/cgi'
|
29
29
|
require 'cgi/drbsession'
|
30
30
|
require 'sbsm/drbserver'
|
31
|
+
require 'mimemagic'
|
32
|
+
|
31
33
|
module SBSM
|
32
34
|
###
|
33
35
|
# App a base class for Webrick server
|
@@ -36,7 +38,7 @@ module SBSM
|
|
36
38
|
PERSISTENT_COOKIE_NAME = "cookie-persistent-sbsm-1.3.1"
|
37
39
|
SBSM.info "PERSISTENT_COOKIE_NAME #{PERSISTENT_COOKIE_NAME}"
|
38
40
|
|
39
|
-
attr_reader :sbsm, :my_self, :validator
|
41
|
+
attr_reader :sbsm, :my_self, :trans_handler, :validator, :drb_uri
|
40
42
|
|
41
43
|
OPTIONS = [ :app, :config_file, :trans_handler, :validator, :persistence_layer, :server_uri, :session, :unknown_user ]
|
42
44
|
COOKIE_ID = 'sbsm-persistent-cookie-id'
|
@@ -58,11 +60,12 @@ module SBSM
|
|
58
60
|
# Look at steinwies.ch
|
59
61
|
# * https://github.com/zdavatz/steinwies.ch (simple, mostly static files, one form, no persistence layer)
|
60
62
|
#
|
61
|
-
def initialize(app:, validator:, trans_handler:, persistence_layer: nil)
|
63
|
+
def initialize(app:, validator:, trans_handler:, drb_uri:, persistence_layer: nil)
|
62
64
|
@app = app
|
65
|
+
@drb_uri = drb_uri
|
63
66
|
@trans_handler = trans_handler
|
64
67
|
@validator = validator
|
65
|
-
SBSM.info "initialize @app is now #{@app.class} validator #{validator} th #{trans_handler} "
|
68
|
+
SBSM.info "initialize @app is now #{@app.class} validator #{validator} th #{trans_handler} drb_uri #{drb_uri}"
|
66
69
|
super(persistence_layer)
|
67
70
|
end
|
68
71
|
|
@@ -74,13 +77,12 @@ module SBSM
|
|
74
77
|
else
|
75
78
|
session_id = rand((2**(0.size * 8 -2) -1)*10240000000000).to_s(16)
|
76
79
|
end
|
80
|
+
|
77
81
|
file_name = File.expand_path(File.join('doc', request.path))
|
78
82
|
if File.file?(file_name)
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
response.set_header('Content-Type', 'text/plain')
|
83
|
-
end
|
83
|
+
mime_type = MimeMagic.by_extension(File.extname(file_name)).type
|
84
|
+
SBSM.info "file_name is #{file_name} checkin base #{File.basename(file_name)} MIME #{mime_type}"
|
85
|
+
response.set_header('Content-Type', mime_type)
|
84
86
|
response.write(File.open(file_name, File::RDONLY){|file| file.read})
|
85
87
|
return response
|
86
88
|
end
|
data/lib/sbsm/logger.rb
CHANGED
data/lib/sbsm/session.rb
CHANGED
@@ -103,7 +103,7 @@ module SBSM
|
|
103
103
|
@variables = {}
|
104
104
|
@mutex = Mutex.new
|
105
105
|
@cgi = CGI.initialize_without_offline_prompt('html4')
|
106
|
-
SBSM.debug "session initialized #{self} key #{key} app #{app.class} #{validator.class} with @cgi #{@cgi}"
|
106
|
+
SBSM.debug "session initialized #{self} key #{key} app #{app.class} #{@validator.class} th #{@trans_handler.class} with @cgi #{@cgi}"
|
107
107
|
super(app)
|
108
108
|
end
|
109
109
|
def age(now=Time.now)
|
data/lib/sbsm/version.rb
CHANGED
data/sbsm.gemspec
CHANGED
data/test/simple_sbsm.rb
CHANGED
@@ -201,7 +201,7 @@ module Demo
|
|
201
201
|
def initialize
|
202
202
|
@drb_uri = SERVER_URI
|
203
203
|
SBSM.info "SimpleSBSM.new"
|
204
|
-
super(:app => self, :validator => Validator.new, :trans_handler => SBSM::TransHandler.instance)
|
204
|
+
super(:app => self, :validator => Validator.new, :trans_handler => SBSM::TransHandler.instance, :drb_uri => SERVER_URI)
|
205
205
|
end
|
206
206
|
end
|
207
207
|
end
|
data/test/test_application.rb
CHANGED
@@ -38,10 +38,11 @@ class MyTest < MiniTest::Unit::TestCase
|
|
38
38
|
last_response.set_cookie SBSM::App::PERSISTENT_COOKIE_NAME, :value => "second_cookie"
|
39
39
|
end
|
40
40
|
assert last_response.ok?
|
41
|
-
skip 'We must add here an input form or we cannot continue testing'
|
42
41
|
assert_match FEEDBACK_HTML_CONTENT, last_response.body
|
43
42
|
page = Nokogiri::HTML(last_response.body)
|
44
43
|
x = page.css('div')
|
44
|
+
skip 'We must add here an input form or we cannot continue testing'
|
45
|
+
|
45
46
|
assert page.css('input').find{|x| x.attributes['name'].value.eql?('state_id') }.attributes['value'].value
|
46
47
|
state_id = page.css('input').find{|x| x.attributes['name'].value.eql?('state_id') }.attributes['value'].value.to_i
|
47
48
|
assert state_id > 0
|
data/test/test_logger.rb
CHANGED
@@ -27,6 +27,7 @@
|
|
27
27
|
|
28
28
|
require 'minitest/autorun'
|
29
29
|
require 'fileutils'
|
30
|
+
require 'tempfile'
|
30
31
|
require 'sbsm/logger'
|
31
32
|
begin
|
32
33
|
require 'pry'
|
@@ -34,43 +35,25 @@ rescue LoadError
|
|
34
35
|
end
|
35
36
|
class TestLogger < Minitest::Test
|
36
37
|
def setup
|
37
|
-
@saved_loger = SBSM.logger.
|
38
|
-
@
|
39
|
-
|
38
|
+
@saved_loger = SBSM.logger ? SBSM.logger : nil
|
39
|
+
@temp_file = Tempfile.new('foo')
|
40
|
+
@temp_file.write("TestLogger TempFile")
|
41
|
+
@temp_file.flush
|
42
|
+
@default_name = @temp_file.path
|
40
43
|
# we reload the logger class as it initializes the logger to a default value
|
41
44
|
load 'sbsm/logger.rb'
|
42
|
-
assert(File.exist?(@default_name))
|
43
45
|
end
|
44
46
|
def teardown
|
45
47
|
SBSM.logger= @saved_loger
|
48
|
+
@temp_file.unlink
|
46
49
|
end
|
47
50
|
|
48
|
-
def
|
51
|
+
def test_default_levels_with_no_loggin
|
49
52
|
saved_length = File.size(@default_name)
|
50
53
|
SBSM.debug("debug #{__LINE__}")
|
51
54
|
assert_equal(saved_length, File.size(@default_name))
|
52
55
|
SBSM.info("info #{__LINE__}")
|
53
56
|
assert_equal(saved_length, File.size(@default_name))
|
54
|
-
|
55
|
-
SBSM.logger.level = :info
|
56
|
-
SBSM.info("info #{__LINE__}")
|
57
|
-
assert(saved_length < File.size(@default_name))
|
58
|
-
saved_length = File.size(@default_name)
|
59
|
-
SBSM.debug("debug #{__LINE__}")
|
60
|
-
saved_length = File.size(@default_name)
|
61
|
-
|
62
|
-
SBSM.logger.level = :debug
|
63
|
-
SBSM.info("info #{__LINE__}")
|
64
|
-
assert(saved_length < File.size(@default_name))
|
65
|
-
saved_length = File.size(@default_name)
|
66
|
-
SBSM.debug("debug #{__LINE__}")
|
67
|
-
assert(saved_length < File.size(@default_name))
|
68
|
-
|
69
|
-
saved_length = File.size(@default_name)
|
70
|
-
SBSM.logger.level = :warn
|
71
|
-
SBSM.info("info #{__LINE__}")
|
72
|
-
SBSM.debug("debug #{__LINE__}")
|
73
|
-
assert_equal(saved_length, File.size(@default_name))
|
74
57
|
end
|
75
58
|
|
76
59
|
def test_change_logger
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sbsm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.3.
|
4
|
+
version: 1.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Masaomi Hatakeyama, Zeno R.R. Davatz
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-11-
|
11
|
+
date: 2016-11-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rack
|
@@ -52,6 +52,20 @@ dependencies:
|
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: mimemagic
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: chrono_logger
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|