sbsm 1.5.9 → 1.6.1
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 +5 -5
- data/.github/workflows/ruby.yml +35 -0
- data/Gemfile +1 -0
- data/History.txt +8 -0
- data/lib/sbsm/admin_server.rb +0 -0
- data/lib/sbsm/app.rb +12 -4
- data/lib/sbsm/logger.rb +0 -0
- data/lib/sbsm/session.rb +1 -1
- data/lib/sbsm/session_store.rb +0 -0
- data/lib/sbsm/trans_handler.rb +7 -7
- data/lib/sbsm/user.rb +0 -0
- data/lib/sbsm/version.rb +1 -1
- data/sbsm.gemspec +1 -1
- data/test/test_application.rb +7 -7
- data/test/test_customized_app.rb +4 -4
- data/test/test_rack_app.rb +4 -4
- data/test/test_trans_handler.rb +1 -1
- metadata +8 -9
- data/.travis.yml +0 -27
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 5c49aade69c54b5d99fabe38bb3896307a2a5d726629bbb14764c4bcbcee46ce
|
|
4
|
+
data.tar.gz: 76a61fc0932cfd6dd8bfb065e573c0c0b8b62b079235008620f82b2e76f7b4ac
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 547e0cb68e3454ba50f7a2058fef10c482fdd1cee0454cb3ef6c00e5150718241f6d312464dd88ab1ea6738f1532f2cffc661ef65b2ab8f3c9aabb665c2fe460
|
|
7
|
+
data.tar.gz: 73c7c87eff58a13e476d0222d56b54ee57904e8b7757fe94cc4ca5fc0097828c3c2b88b6ce783cd5163a1886fc09701b83e457d3fe5bd56eaf7619b0b0214be0
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# This workflow uses actions that are not certified by GitHub.
|
|
2
|
+
# They are provided by a third-party and are governed by
|
|
3
|
+
# separate terms of service, privacy policy, and support
|
|
4
|
+
# documentation.
|
|
5
|
+
# This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake
|
|
6
|
+
# For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
|
|
7
|
+
|
|
8
|
+
name: Ruby
|
|
9
|
+
|
|
10
|
+
on:
|
|
11
|
+
push:
|
|
12
|
+
branches: [ master ]
|
|
13
|
+
pull_request:
|
|
14
|
+
branches: [ master ]
|
|
15
|
+
|
|
16
|
+
jobs:
|
|
17
|
+
test:
|
|
18
|
+
runs-on: ubuntu-latest
|
|
19
|
+
# Using a matrix fails, because /setup-ruby always invokes bundle install without any additional args
|
|
20
|
+
# Fixed by adding not defining the debugger group in the Gemfile
|
|
21
|
+
strategy:
|
|
22
|
+
fail-fast: false
|
|
23
|
+
matrix:
|
|
24
|
+
os: [ ubuntu]
|
|
25
|
+
ruby: [2.5, 2.6, 2.7, 3.0, 3.1, head]
|
|
26
|
+
continue-on-error: ${{ endsWith(matrix.ruby, 'head') }}
|
|
27
|
+
steps:
|
|
28
|
+
- uses: actions/checkout@v2
|
|
29
|
+
- uses: ruby/setup-ruby@v1
|
|
30
|
+
with:
|
|
31
|
+
ruby-version: ${{ matrix.ruby }}
|
|
32
|
+
bundler-cache: true
|
|
33
|
+
|
|
34
|
+
- name: Run tests via rake
|
|
35
|
+
run: bundle exec rake
|
data/Gemfile
CHANGED
data/History.txt
CHANGED
data/lib/sbsm/admin_server.rb
CHANGED
|
File without changes
|
data/lib/sbsm/app.rb
CHANGED
|
@@ -93,6 +93,14 @@ module SBSM
|
|
|
93
93
|
@@last_session
|
|
94
94
|
end
|
|
95
95
|
|
|
96
|
+
def fix_html_content_type(content_type)
|
|
97
|
+
# davaz.com#50
|
|
98
|
+
if content_type == 'application/xhtml+xml'
|
|
99
|
+
return 'text/html; charset=utf-8'
|
|
100
|
+
end
|
|
101
|
+
return content_type
|
|
102
|
+
end
|
|
103
|
+
|
|
96
104
|
def call(env) ## mimick sbsm/lib/app.rb
|
|
97
105
|
request = Rack::Request.new(env)
|
|
98
106
|
response = Rack::Response.new
|
|
@@ -106,7 +114,6 @@ module SBSM
|
|
|
106
114
|
else
|
|
107
115
|
file_name = File.expand_path(File.join('doc', request.path))
|
|
108
116
|
end
|
|
109
|
-
|
|
110
117
|
if File.file?(file_name)
|
|
111
118
|
if File.extname(file_name).length > 0 && (mime_info = MimeMagic.by_extension(File.extname(file_name)))
|
|
112
119
|
mime_type = mime_info.type
|
|
@@ -114,10 +121,11 @@ module SBSM
|
|
|
114
121
|
mime_type = MimeMagic.by_path(file_name)
|
|
115
122
|
end
|
|
116
123
|
mime_type ||= 'text/plain'
|
|
124
|
+
mime_type = fix_html_content_type(mime_type)
|
|
117
125
|
SBSM.debug "file_name is #{file_name} checkin base #{File.basename(file_name)} MIME #{mime_type}"
|
|
118
126
|
response.set_header('Content-Type', mime_type)
|
|
119
127
|
response.write(File.open(file_name, File::RDONLY){|file| file.read})
|
|
120
|
-
return response
|
|
128
|
+
return response.finish
|
|
121
129
|
end
|
|
122
130
|
|
|
123
131
|
return [400, {}, []] if /favicon.ico/i.match(request.path)
|
|
@@ -128,9 +136,9 @@ module SBSM
|
|
|
128
136
|
thru = session.get_passthru
|
|
129
137
|
if thru.size > 0
|
|
130
138
|
begin
|
|
131
|
-
file_name = thru.first
|
|
139
|
+
file_name = thru.first
|
|
132
140
|
raise Errno::ENOENT unless File.exist?(file_name)
|
|
133
|
-
response.set_header('Content-Type', MimeMagic.by_extension(File.extname(file_name)).type)
|
|
141
|
+
response.set_header('Content-Type', fix_html_content_type(MimeMagic.by_extension(File.extname(file_name)).type))
|
|
134
142
|
response.headers['Content-Disposition'] = "#{thru.last}; filename=#{File.basename(file_name)}"
|
|
135
143
|
response.headers['Content-Length'] = File.size(file_name).to_s
|
|
136
144
|
response.write(File.open(file_name, File::RDONLY){|file| file.read})
|
data/lib/sbsm/logger.rb
CHANGED
|
File without changes
|
data/lib/sbsm/session.rb
CHANGED
data/lib/sbsm/session_store.rb
CHANGED
|
File without changes
|
data/lib/sbsm/trans_handler.rb
CHANGED
|
@@ -44,13 +44,13 @@ module SBSM
|
|
|
44
44
|
def initialize(name: nil, config_file: nil, handler_uri: nil)
|
|
45
45
|
@handler_uri = handler_uri ||= '/index.rbx'
|
|
46
46
|
config_file ||= 'etc/trans_handler.yml'
|
|
47
|
-
@config_file = File.expand_path(config_file)
|
|
47
|
+
@config_file = File.expand_path(config_file)
|
|
48
48
|
@parser_name = name ||= 'uri'
|
|
49
49
|
@parser_method = "_#{name}_parser"
|
|
50
50
|
@grammar_path = File.expand_path("../../data/#{name}.grammar",
|
|
51
|
-
File.dirname(__FILE__)
|
|
51
|
+
File.dirname(__FILE__))
|
|
52
52
|
@parser_path = File.expand_path("#{name}_parser.rb",
|
|
53
|
-
File.dirname(__FILE__)
|
|
53
|
+
File.dirname(__FILE__))
|
|
54
54
|
end
|
|
55
55
|
def config(request)
|
|
56
56
|
config = Hash.new { {} }
|
|
@@ -150,12 +150,12 @@ module SBSM
|
|
|
150
150
|
end
|
|
151
151
|
def uri_parser(grammar_path=@grammar_path, parser_path=@parser_path)
|
|
152
152
|
if(File.exist?(grammar_path))
|
|
153
|
-
oldpath = File.expand_path("_" << File.basename(grammar_path),
|
|
153
|
+
oldpath = File.expand_path("_" << File.basename(grammar_path),
|
|
154
154
|
File.dirname(grammar_path))
|
|
155
155
|
src = File.read(grammar_path)
|
|
156
|
-
unless(File.
|
|
157
|
-
File.delete(oldpath) if File.
|
|
158
|
-
Parse.generate_parser_from_file_to_file(grammar_path,
|
|
156
|
+
unless(File.exist?(oldpath) && File.read(oldpath)==src)
|
|
157
|
+
File.delete(oldpath) if File.exist?(oldpath)
|
|
158
|
+
Parse.generate_parser_from_file_to_file(grammar_path,
|
|
159
159
|
parser_path, @parser_method, 'SBSM')
|
|
160
160
|
File.open(oldpath, 'w') { |f| f << src }
|
|
161
161
|
end
|
data/lib/sbsm/user.rb
CHANGED
|
File without changes
|
data/lib/sbsm/version.rb
CHANGED
data/sbsm.gemspec
CHANGED
|
@@ -31,7 +31,7 @@ Gem::Specification.new do |spec|
|
|
|
31
31
|
spec.add_development_dependency "rspec"
|
|
32
32
|
spec.add_development_dependency "flexmock"
|
|
33
33
|
spec.add_development_dependency "minitest"
|
|
34
|
-
spec.add_development_dependency "rdoc"
|
|
34
|
+
spec.add_development_dependency "rdoc", '< 6.0.0'
|
|
35
35
|
spec.add_development_dependency "simplecov"
|
|
36
36
|
spec.add_development_dependency "watir"
|
|
37
37
|
spec.add_development_dependency "watir-webdriver"
|
data/test/test_application.rb
CHANGED
|
@@ -54,7 +54,7 @@ class AppVariantTest < Minitest::Test
|
|
|
54
54
|
head '/fr/page/about'
|
|
55
55
|
assert last_response.ok?
|
|
56
56
|
assert last_response.body.empty?
|
|
57
|
-
assert last_response.headers.keys.index('
|
|
57
|
+
assert last_response.headers.keys.index('content-type')
|
|
58
58
|
end
|
|
59
59
|
def test_request_file
|
|
60
60
|
session_id_mock = '1234'
|
|
@@ -72,8 +72,8 @@ class AppVariantTest < Minitest::Test
|
|
|
72
72
|
assert_equal(false, last_response.ok?)
|
|
73
73
|
assert_equal(404, last_response.status)
|
|
74
74
|
assert (last_response.body.to_s.index(invalid_path))
|
|
75
|
-
assert last_response.headers.keys.index('
|
|
76
|
-
assert_equal('text/html', last_response.headers['
|
|
75
|
+
assert last_response.headers.keys.index('content-type')
|
|
76
|
+
assert_equal('text/html', last_response.headers['content-type'])
|
|
77
77
|
end
|
|
78
78
|
def test_request_file_with_no_mime_info
|
|
79
79
|
session_id_mock = '1234'
|
|
@@ -92,8 +92,8 @@ class AppVariantTest < Minitest::Test
|
|
|
92
92
|
result = get invalid_path, {}, env
|
|
93
93
|
|
|
94
94
|
assert_equal(true, last_response.ok?)
|
|
95
|
-
assert last_response.headers.keys.index('
|
|
96
|
-
assert_equal('text/plain', last_response.headers['
|
|
95
|
+
assert last_response.headers.keys.index('content-type')
|
|
96
|
+
assert_equal('text/plain', last_response.headers['content-type'])
|
|
97
97
|
FileUtils.rm(file_name)
|
|
98
98
|
end
|
|
99
99
|
def test_request_file_with_mime_info
|
|
@@ -113,8 +113,8 @@ class AppVariantTest < Minitest::Test
|
|
|
113
113
|
result = get invalid_path, {}, env
|
|
114
114
|
|
|
115
115
|
assert_equal(true, last_response.ok?)
|
|
116
|
-
assert last_response.headers.keys.index('
|
|
117
|
-
assert_equal('image/png', last_response.headers['
|
|
116
|
+
assert last_response.headers.keys.index('content-type')
|
|
117
|
+
assert_equal('image/png', last_response.headers['content-type'])
|
|
118
118
|
FileUtils.rm(file_name)
|
|
119
119
|
end
|
|
120
120
|
end
|
data/test/test_customized_app.rb
CHANGED
|
@@ -72,12 +72,12 @@ module Demo
|
|
|
72
72
|
PERSISTENT_COOKIE_NAME = 'CustomizedSession-cookie'
|
|
73
73
|
LOOKANDFEEL = CustomLookandfeel
|
|
74
74
|
|
|
75
|
-
def initialize(args)
|
|
75
|
+
def initialize(*args, **keyword_args)
|
|
76
76
|
SBSM.debug "session args #{args}"
|
|
77
77
|
@@active_stated_visited = false
|
|
78
78
|
@@login_visited = false
|
|
79
79
|
@@visited_init = true
|
|
80
|
-
super(args)
|
|
80
|
+
super(*args, **keyword_args)
|
|
81
81
|
end
|
|
82
82
|
|
|
83
83
|
def flavor
|
|
@@ -231,7 +231,7 @@ class CustomizedAppSessionValidatorLnf < Minitest::Test
|
|
|
231
231
|
end
|
|
232
232
|
assert last_response.ok?
|
|
233
233
|
# TEST_COOKIE_NAME set via param to app
|
|
234
|
-
cookie = last_response.get_header('Set-Cookie').split("\n").find_all{|x| x.index(my_cookey_name)}
|
|
234
|
+
cookie = last_response.get_header('Set-Cookie')[0].split("\n").find_all{|x| x.index(my_cookey_name)}
|
|
235
235
|
skip ('TODO: We should test test_customized_cookie_name')
|
|
236
236
|
assert_equal 1, cookie.size
|
|
237
237
|
assert_match my_cookey_name, cookie.first
|
|
@@ -249,7 +249,7 @@ class CustomizedAppCookieName < Minitest::Test
|
|
|
249
249
|
get '/' do
|
|
250
250
|
end
|
|
251
251
|
assert last_response.ok?
|
|
252
|
-
cookie = last_response.get_header('Set-Cookie').split("\n").find_all{|x| x.index(Demo::DEMO_PERSISTENT_COOKIE_NAME)}
|
|
252
|
+
cookie = last_response.get_header('Set-Cookie')[0].split("\n").find_all{|x| x.index(Demo::DEMO_PERSISTENT_COOKIE_NAME)}
|
|
253
253
|
skip ('TODO: We should test test_customized_cookie_name')
|
|
254
254
|
assert_equal 1, cookie.size
|
|
255
255
|
assert_match Demo::DEMO_PERSISTENT_COOKIE_NAME, cookie.first
|
data/test/test_rack_app.rb
CHANGED
|
@@ -115,10 +115,10 @@ class StubSessionWithView < SBSM::Session
|
|
|
115
115
|
attr_writer :lookandfeel, :persistent_user_input
|
|
116
116
|
attr_writer :active_state
|
|
117
117
|
public :active_state
|
|
118
|
-
def initialize(args)
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
super(args)
|
|
118
|
+
def initialize(*args, **kwargs)
|
|
119
|
+
kwargs[:app] ||= StubSessionApp.new
|
|
120
|
+
kwargs[:validator] ||= StubSessionValidator.new
|
|
121
|
+
super(*args, **kwargs)
|
|
122
122
|
persistent_user_input = {}
|
|
123
123
|
end
|
|
124
124
|
end
|
data/test/test_trans_handler.rb
CHANGED
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.
|
|
4
|
+
version: 1.6.1
|
|
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:
|
|
11
|
+
date: 2022-12-10 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rack
|
|
@@ -154,16 +154,16 @@ dependencies:
|
|
|
154
154
|
name: rdoc
|
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
|
156
156
|
requirements:
|
|
157
|
-
- - "
|
|
157
|
+
- - "<"
|
|
158
158
|
- !ruby/object:Gem::Version
|
|
159
|
-
version:
|
|
159
|
+
version: 6.0.0
|
|
160
160
|
type: :development
|
|
161
161
|
prerelease: false
|
|
162
162
|
version_requirements: !ruby/object:Gem::Requirement
|
|
163
163
|
requirements:
|
|
164
|
-
- - "
|
|
164
|
+
- - "<"
|
|
165
165
|
- !ruby/object:Gem::Version
|
|
166
|
-
version:
|
|
166
|
+
version: 6.0.0
|
|
167
167
|
- !ruby/object:Gem::Dependency
|
|
168
168
|
name: simplecov
|
|
169
169
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -254,8 +254,8 @@ executables: []
|
|
|
254
254
|
extensions: []
|
|
255
255
|
extra_rdoc_files: []
|
|
256
256
|
files:
|
|
257
|
+
- ".github/workflows/ruby.yml"
|
|
257
258
|
- ".gitignore"
|
|
258
|
-
- ".travis.yml"
|
|
259
259
|
- Gemfile
|
|
260
260
|
- History.txt
|
|
261
261
|
- LICENCE.txt
|
|
@@ -331,8 +331,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
331
331
|
- !ruby/object:Gem::Version
|
|
332
332
|
version: '0'
|
|
333
333
|
requirements: []
|
|
334
|
-
|
|
335
|
-
rubygems_version: 2.6.8
|
|
334
|
+
rubygems_version: 3.2.3
|
|
336
335
|
signing_key:
|
|
337
336
|
specification_version: 4
|
|
338
337
|
summary: Application framework for state based session management from ywesee
|
data/.travis.yml
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
language: ruby
|
|
3
|
-
|
|
4
|
-
notifications:
|
|
5
|
-
email:
|
|
6
|
-
- ngiger@ywesee.com
|
|
7
|
-
|
|
8
|
-
cache: bundler
|
|
9
|
-
|
|
10
|
-
sudo: false
|
|
11
|
-
|
|
12
|
-
before_install:
|
|
13
|
-
- gem --version
|
|
14
|
-
|
|
15
|
-
bundler_args: --without debugger
|
|
16
|
-
|
|
17
|
-
rvm:
|
|
18
|
-
- ruby-head
|
|
19
|
-
- 2.2.3
|
|
20
|
-
- 2.4.0
|
|
21
|
-
- 2.3.0
|
|
22
|
-
matrix:
|
|
23
|
-
allow_failures:
|
|
24
|
-
# On november 1 had failure compiling the child_processes
|
|
25
|
-
- rvm: ruby-head
|
|
26
|
-
- rvm: 2.2.3 # Test for LogLevel does not work
|
|
27
|
-
- rvm: 2.3.0 # Test for LogLevel does not work
|