simple_workflow 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/Gemfile.lock +54 -56
- data/lib/simple_workflow/controller.rb +9 -10
- data/lib/simple_workflow/helper.rb +18 -5
- data/lib/simple_workflow/middleware.rb +25 -29
- data/lib/simple_workflow/version.rb +1 -1
- data/test/helper_test.rb +25 -0
- data/test/middleware_test.rb +3 -1
- metadata +3 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: df30a1c9f24abcc2eed8341f903f43dc726dfa0c
|
|
4
|
+
data.tar.gz: 7a67d053ee88dcb7860b3b3bc0046b633610913c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 31b7fde7ad4ae7b569b85b4b625621cb10e7f5878c0d27311c3fb2f79afa78e9b1f21c8c091197be3090e79848e45daa527b02f076d194bf808de51898badd50
|
|
7
|
+
data.tar.gz: 1d33d84a1ad300aeca822ca9f821362ed896f0c37505de24e3ea34589f816911b834b936a90bd88257596a4516ae4d702ee6df5d25547383deee2bb9828429d0
|
data/Gemfile.lock
CHANGED
|
@@ -1,45 +1,45 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
simple_workflow (1.3.
|
|
4
|
+
simple_workflow (1.3.2)
|
|
5
5
|
rails (>= 4, < 5.1)
|
|
6
6
|
|
|
7
7
|
GEM
|
|
8
8
|
remote: https://rubygems.org/
|
|
9
9
|
specs:
|
|
10
|
-
actioncable (5.0.
|
|
11
|
-
actionpack (= 5.0.
|
|
12
|
-
nio4r (
|
|
10
|
+
actioncable (5.0.2)
|
|
11
|
+
actionpack (= 5.0.2)
|
|
12
|
+
nio4r (>= 1.2, < 3.0)
|
|
13
13
|
websocket-driver (~> 0.6.1)
|
|
14
|
-
actionmailer (5.0.
|
|
15
|
-
actionpack (= 5.0.
|
|
16
|
-
actionview (= 5.0.
|
|
17
|
-
activejob (= 5.0.
|
|
14
|
+
actionmailer (5.0.2)
|
|
15
|
+
actionpack (= 5.0.2)
|
|
16
|
+
actionview (= 5.0.2)
|
|
17
|
+
activejob (= 5.0.2)
|
|
18
18
|
mail (~> 2.5, >= 2.5.4)
|
|
19
19
|
rails-dom-testing (~> 2.0)
|
|
20
|
-
actionpack (5.0.
|
|
21
|
-
actionview (= 5.0.
|
|
22
|
-
activesupport (= 5.0.
|
|
20
|
+
actionpack (5.0.2)
|
|
21
|
+
actionview (= 5.0.2)
|
|
22
|
+
activesupport (= 5.0.2)
|
|
23
23
|
rack (~> 2.0)
|
|
24
24
|
rack-test (~> 0.6.3)
|
|
25
25
|
rails-dom-testing (~> 2.0)
|
|
26
26
|
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
|
27
|
-
actionview (5.0.
|
|
28
|
-
activesupport (= 5.0.
|
|
27
|
+
actionview (5.0.2)
|
|
28
|
+
activesupport (= 5.0.2)
|
|
29
29
|
builder (~> 3.1)
|
|
30
30
|
erubis (~> 2.7.0)
|
|
31
31
|
rails-dom-testing (~> 2.0)
|
|
32
|
-
rails-html-sanitizer (~> 1.0, >= 1.0.
|
|
33
|
-
activejob (5.0.
|
|
34
|
-
activesupport (= 5.0.
|
|
32
|
+
rails-html-sanitizer (~> 1.0, >= 1.0.3)
|
|
33
|
+
activejob (5.0.2)
|
|
34
|
+
activesupport (= 5.0.2)
|
|
35
35
|
globalid (>= 0.3.6)
|
|
36
|
-
activemodel (5.0.
|
|
37
|
-
activesupport (= 5.0.
|
|
38
|
-
activerecord (5.0.
|
|
39
|
-
activemodel (= 5.0.
|
|
40
|
-
activesupport (= 5.0.
|
|
36
|
+
activemodel (5.0.2)
|
|
37
|
+
activesupport (= 5.0.2)
|
|
38
|
+
activerecord (5.0.2)
|
|
39
|
+
activemodel (= 5.0.2)
|
|
40
|
+
activesupport (= 5.0.2)
|
|
41
41
|
arel (~> 7.0)
|
|
42
|
-
activesupport (5.0.
|
|
42
|
+
activesupport (5.0.2)
|
|
43
43
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
|
44
44
|
i18n (~> 0.7)
|
|
45
45
|
minitest (~> 5.1)
|
|
@@ -47,15 +47,14 @@ GEM
|
|
|
47
47
|
ansi (1.5.0)
|
|
48
48
|
arel (7.1.4)
|
|
49
49
|
ast (2.3.0)
|
|
50
|
-
builder (3.2.
|
|
51
|
-
concurrent-ruby (1.0.
|
|
50
|
+
builder (3.2.3)
|
|
51
|
+
concurrent-ruby (1.0.5)
|
|
52
52
|
docile (1.1.5)
|
|
53
53
|
erubis (2.7.0)
|
|
54
54
|
globalid (0.3.7)
|
|
55
55
|
activesupport (>= 4.1.0)
|
|
56
|
-
i18n (0.
|
|
57
|
-
json (2.0.
|
|
58
|
-
json (2.0.2-java)
|
|
56
|
+
i18n (0.8.1)
|
|
57
|
+
json (2.0.3)
|
|
59
58
|
loofah (2.0.3)
|
|
60
59
|
nokogiri (>= 1.5.9)
|
|
61
60
|
mail (2.6.4)
|
|
@@ -66,53 +65,53 @@ GEM
|
|
|
66
65
|
mime-types-data (3.2016.0521)
|
|
67
66
|
mini_portile2 (2.1.0)
|
|
68
67
|
minitest (5.10.1)
|
|
69
|
-
minitest-reporters (1.1.
|
|
68
|
+
minitest-reporters (1.1.14)
|
|
70
69
|
ansi
|
|
71
70
|
builder
|
|
72
71
|
minitest (>= 5.0)
|
|
73
72
|
ruby-progressbar
|
|
74
|
-
nio4r (
|
|
75
|
-
nokogiri (1.
|
|
73
|
+
nio4r (2.0.0)
|
|
74
|
+
nokogiri (1.7.1)
|
|
76
75
|
mini_portile2 (~> 2.1.0)
|
|
77
|
-
parser (2.
|
|
76
|
+
parser (2.4.0.0)
|
|
78
77
|
ast (~> 2.2)
|
|
79
78
|
powerpack (0.1.1)
|
|
80
79
|
rack (2.0.1)
|
|
81
80
|
rack-test (0.6.3)
|
|
82
81
|
rack (>= 1.0)
|
|
83
|
-
rails (5.0.
|
|
84
|
-
actioncable (= 5.0.
|
|
85
|
-
actionmailer (= 5.0.
|
|
86
|
-
actionpack (= 5.0.
|
|
87
|
-
actionview (= 5.0.
|
|
88
|
-
activejob (= 5.0.
|
|
89
|
-
activemodel (= 5.0.
|
|
90
|
-
activerecord (= 5.0.
|
|
91
|
-
activesupport (= 5.0.
|
|
82
|
+
rails (5.0.2)
|
|
83
|
+
actioncable (= 5.0.2)
|
|
84
|
+
actionmailer (= 5.0.2)
|
|
85
|
+
actionpack (= 5.0.2)
|
|
86
|
+
actionview (= 5.0.2)
|
|
87
|
+
activejob (= 5.0.2)
|
|
88
|
+
activemodel (= 5.0.2)
|
|
89
|
+
activerecord (= 5.0.2)
|
|
90
|
+
activesupport (= 5.0.2)
|
|
92
91
|
bundler (>= 1.3.0, < 2.0)
|
|
93
|
-
railties (= 5.0.
|
|
92
|
+
railties (= 5.0.2)
|
|
94
93
|
sprockets-rails (>= 2.0.0)
|
|
95
|
-
rails-dom-testing (2.0.
|
|
94
|
+
rails-dom-testing (2.0.2)
|
|
96
95
|
activesupport (>= 4.2.0, < 6.0)
|
|
97
|
-
nokogiri (~> 1.6
|
|
96
|
+
nokogiri (~> 1.6)
|
|
98
97
|
rails-html-sanitizer (1.0.3)
|
|
99
98
|
loofah (~> 2.0)
|
|
100
|
-
railties (5.0.
|
|
101
|
-
actionpack (= 5.0.
|
|
102
|
-
activesupport (= 5.0.
|
|
99
|
+
railties (5.0.2)
|
|
100
|
+
actionpack (= 5.0.2)
|
|
101
|
+
activesupport (= 5.0.2)
|
|
103
102
|
method_source
|
|
104
103
|
rake (>= 0.8.7)
|
|
105
104
|
thor (>= 0.18.1, < 2.0)
|
|
106
|
-
rainbow (2.1
|
|
105
|
+
rainbow (2.2.1)
|
|
107
106
|
rake (12.0.0)
|
|
108
|
-
rubocop (0.
|
|
109
|
-
parser (>= 2.3.
|
|
107
|
+
rubocop (0.47.1)
|
|
108
|
+
parser (>= 2.3.3.1, < 3.0)
|
|
110
109
|
powerpack (~> 0.1)
|
|
111
110
|
rainbow (>= 1.99.1, < 3.0)
|
|
112
111
|
ruby-progressbar (~> 1.7)
|
|
113
112
|
unicode-display_width (~> 1.0, >= 1.0.1)
|
|
114
113
|
ruby-progressbar (1.8.1)
|
|
115
|
-
simplecov (0.
|
|
114
|
+
simplecov (0.14.1)
|
|
116
115
|
docile (~> 1.1.0)
|
|
117
116
|
json (>= 1.8, < 3)
|
|
118
117
|
simplecov-html (~> 0.10.0)
|
|
@@ -125,16 +124,15 @@ GEM
|
|
|
125
124
|
activesupport (>= 4.0)
|
|
126
125
|
sprockets (>= 3.0.0)
|
|
127
126
|
thor (0.19.4)
|
|
128
|
-
thread_safe (0.3.
|
|
129
|
-
tzinfo (1.2.
|
|
127
|
+
thread_safe (0.3.6)
|
|
128
|
+
tzinfo (1.2.3)
|
|
130
129
|
thread_safe (~> 0.1)
|
|
131
|
-
unicode-display_width (1.1.
|
|
132
|
-
websocket-driver (0.6.
|
|
130
|
+
unicode-display_width (1.1.3)
|
|
131
|
+
websocket-driver (0.6.5)
|
|
133
132
|
websocket-extensions (>= 0.1.0)
|
|
134
133
|
websocket-extensions (0.1.2)
|
|
135
134
|
|
|
136
135
|
PLATFORMS
|
|
137
|
-
java
|
|
138
136
|
ruby
|
|
139
137
|
|
|
140
138
|
DEPENDENCIES
|
|
@@ -144,4 +142,4 @@ DEPENDENCIES
|
|
|
144
142
|
simplecov (~> 0.9)
|
|
145
143
|
|
|
146
144
|
BUNDLED WITH
|
|
147
|
-
1.
|
|
145
|
+
1.14.6
|
|
@@ -53,21 +53,20 @@ module SimpleWorkflow::Controller
|
|
|
53
53
|
flash[:notice] = notice
|
|
54
54
|
end
|
|
55
55
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
end
|
|
56
|
+
return unless (other_flashes = response_status_and_flash.delete(:flash))
|
|
57
|
+
flash.update(other_flashes)
|
|
59
58
|
end
|
|
60
59
|
private :save_flash
|
|
61
60
|
|
|
62
61
|
def redirect_to_post(options)
|
|
63
62
|
url = url_for options
|
|
64
|
-
render text: <<EOF, layout: false
|
|
65
|
-
<html>
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
</html>
|
|
63
|
+
render text: <<EOF.strip_heredoc, layout: false
|
|
64
|
+
<html>
|
|
65
|
+
<body onload="document.getElementById('form').submit()">
|
|
66
|
+
<form id="form" action="#{url}" method="POST">
|
|
67
|
+
</form>
|
|
68
|
+
</body>
|
|
69
|
+
</html>
|
|
71
70
|
EOF
|
|
72
71
|
end
|
|
73
72
|
end
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
require_relative 'detour'
|
|
1
2
|
module SimpleWorkflow::Helper
|
|
3
|
+
include SimpleWorkflow::Detour
|
|
4
|
+
|
|
2
5
|
def image_button_to(image_source, title, options, html_options = {})
|
|
3
6
|
image_submit_tag image_source, { class: 'image-submit', alt: title, title: title,
|
|
4
7
|
id: "#{title}_#{options[:id]}", name: title,
|
|
@@ -33,7 +36,7 @@ module SimpleWorkflow::Helper
|
|
|
33
36
|
end
|
|
34
37
|
|
|
35
38
|
def origin_options
|
|
36
|
-
params.reject { |k, _v|
|
|
39
|
+
params.reject { |k, _v| %i(detour return_from_detour).include? k.to_sym }
|
|
37
40
|
end
|
|
38
41
|
|
|
39
42
|
def image_detour_to(image_source, title, url_options, image_options = nil, link_options = nil)
|
|
@@ -70,14 +73,24 @@ module SimpleWorkflow::Helper
|
|
|
70
73
|
|
|
71
74
|
def back_or_link_to(title, options = nil, html_options = nil)
|
|
72
75
|
if session[:detours]
|
|
73
|
-
|
|
76
|
+
link_options = { return_from_detour: true }.update(session[:detours].last)
|
|
74
77
|
|
|
75
78
|
# FIXME(uwe): Write a test to prove this line is needed.
|
|
76
|
-
|
|
79
|
+
link_options['id'] ||= nil
|
|
77
80
|
# EMXIF
|
|
78
81
|
|
|
79
|
-
logger.debug "linked return from detour: #{
|
|
82
|
+
logger.debug "linked return from detour: #{link_options.inspect}"
|
|
83
|
+
else
|
|
84
|
+
link_options = options
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
link_to(title, link_options, html_options) if options
|
|
88
|
+
rescue ActionController::UrlGenerationError => e
|
|
89
|
+
if session[:detours]
|
|
90
|
+
logger.error "Exception linking to origin: #{e.class} #{e}"
|
|
91
|
+
pop_detour(session)
|
|
92
|
+
retry
|
|
80
93
|
end
|
|
81
|
-
|
|
94
|
+
raise
|
|
82
95
|
end
|
|
83
96
|
end
|
|
@@ -38,33 +38,30 @@ class SimpleWorkflow::Middleware
|
|
|
38
38
|
end
|
|
39
39
|
|
|
40
40
|
def remove_old_detours(env)
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
end
|
|
57
|
-
Rails.logger.debug "session: #{session_size} bytes, workflow(#{session[:detours].try(:size) || 0}): #{workflow_size} bytes"
|
|
58
|
-
if session_size > 4096
|
|
59
|
-
Rails.logger.warn "simple_workflow: session exceeds cookie size limit: #{session_size} bytes. Workflow empty! Not My Fault!"
|
|
60
|
-
Rails.logger.warn "simple_workflow: session: #{session.to_hash}"
|
|
61
|
-
if (old_flashes = session[:flash] && session[:flash]['discard'])
|
|
62
|
-
Rails.logger.warn "simple_workflow: found discarded flash entries: #{old_flashes}. Deleting them."
|
|
63
|
-
session[:flash]['flashes'] = session[:flash]['flashes'].except(*old_flashes)
|
|
64
|
-
Rails.logger.warn "simple_workflow: session: #{session.to_hash}"
|
|
65
|
-
end
|
|
66
|
-
end
|
|
41
|
+
return unless session(env).instance_variable_get('@by').is_a?(ActionDispatch::Session::CookieStore)
|
|
42
|
+
session_size = workflow_size = nil
|
|
43
|
+
session = session(env)
|
|
44
|
+
# env[ActionDispatch::Cookies::COOKIES_SERIALIZER]
|
|
45
|
+
cookie_jar = cookie_jar(env)
|
|
46
|
+
encryptor = encryptor(env)
|
|
47
|
+
loop do
|
|
48
|
+
ser_val = serialize_session(cookie_jar, session.to_hash)
|
|
49
|
+
session_size = encryptor.encrypt_and_sign(ser_val).size
|
|
50
|
+
wf_ser_val = serialize_session(cookie_jar, session[:detours])
|
|
51
|
+
workflow_size = encryptor.encrypt_and_sign(wf_ser_val).size
|
|
52
|
+
break unless workflow_size >= 2048 || (session_size >= 3072 && session[:detours] && !session[:detours].empty?)
|
|
53
|
+
Rails.logger.warn "Workflow too large (#{workflow_size}/#{session_size}). Dropping oldest detour."
|
|
54
|
+
session[:detours].shift
|
|
55
|
+
reset_workflow(session) if session[:detours].empty?
|
|
67
56
|
end
|
|
57
|
+
Rails.logger.debug "session: #{session_size} bytes, workflow(#{session[:detours].try(:size) || 0}): #{workflow_size} bytes"
|
|
58
|
+
return unless session_size > 4096
|
|
59
|
+
Rails.logger.warn "simple_workflow: session exceeds cookie size limit: #{session_size} bytes. Workflow empty! Not My Fault!"
|
|
60
|
+
Rails.logger.warn "simple_workflow: session: #{session.to_hash}"
|
|
61
|
+
return unless (old_flashes = session[:flash] && session[:flash]['discard'])
|
|
62
|
+
Rails.logger.warn "simple_workflow: found discarded flash entries: #{old_flashes}. Deleting them."
|
|
63
|
+
session[:flash]['flashes'] = session[:flash]['flashes'].except(*old_flashes)
|
|
64
|
+
Rails.logger.warn "simple_workflow: session: #{session.to_hash}"
|
|
68
65
|
end
|
|
69
66
|
|
|
70
67
|
if ActionPack::VERSION::MAJOR == 5
|
|
@@ -96,8 +93,7 @@ class SimpleWorkflow::Middleware
|
|
|
96
93
|
if params(env)[:detour]
|
|
97
94
|
store_detour_in_session(session(env), params(env)[:detour])
|
|
98
95
|
end
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
end
|
|
96
|
+
return unless params(env)[:return_from_detour] && session(env)[:detours]
|
|
97
|
+
pop_detour(session(env))
|
|
102
98
|
end
|
|
103
99
|
end
|
data/test/helper_test.rb
CHANGED
|
@@ -35,17 +35,42 @@ class HelperTest < MiniTest::Test
|
|
|
35
35
|
image_link_to('my_image.png', 'Link Title', { id: 'image_tag_id' }, title: 'Image title')
|
|
36
36
|
end
|
|
37
37
|
|
|
38
|
+
def test_back_or_link_to
|
|
39
|
+
assert_equal ['Link title', { controller: :mycontroller, action: :my_action }, nil],
|
|
40
|
+
back_or_link_to('Link title', controller: :mycontroller, action: :my_action)
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def test_back_or_link_to_with_routing_error
|
|
44
|
+
@session = { detours: [{ controller: :does_not_exist }] }
|
|
45
|
+
@routing_error = ActionController::UrlGenerationError
|
|
46
|
+
assert_equal ['Link title', { controller: :mycontroller, action: :my_action }, nil],
|
|
47
|
+
back_or_link_to('Link title', controller: :mycontroller, action: :my_action)
|
|
48
|
+
end
|
|
49
|
+
|
|
38
50
|
private
|
|
39
51
|
|
|
52
|
+
def logger
|
|
53
|
+
@logger ||= Logger.new(File.expand_path('../log/test.log', __dir__))
|
|
54
|
+
end
|
|
55
|
+
|
|
40
56
|
def params
|
|
41
57
|
{ controller: 'mycontroller', action: 'myaction', id: 42, query: { nested: 'criterium' } }
|
|
42
58
|
end
|
|
43
59
|
|
|
60
|
+
def session
|
|
61
|
+
@session ||= {}
|
|
62
|
+
end
|
|
63
|
+
|
|
44
64
|
def url_for(options)
|
|
45
65
|
options.to_s
|
|
46
66
|
end
|
|
47
67
|
|
|
48
68
|
def link_to(*options)
|
|
69
|
+
if defined?(@routing_error) && @routing_error
|
|
70
|
+
e = @routing_error
|
|
71
|
+
@routing_error = nil
|
|
72
|
+
raise e
|
|
73
|
+
end
|
|
49
74
|
options
|
|
50
75
|
end
|
|
51
76
|
|
data/test/middleware_test.rb
CHANGED
|
@@ -54,12 +54,14 @@ class MiddlewareTest < MiniTest::Test
|
|
|
54
54
|
assert_equal 'app response', response
|
|
55
55
|
assert_equal(%w(session_id detours), env['rack.session'].to_hash.keys)
|
|
56
56
|
|
|
57
|
-
assert_equal(
|
|
57
|
+
assert_equal(((57..99).to_a + [:last]).map { |i| { 'controller' => "test_#{i}" } },
|
|
58
58
|
env['rack.session'].to_hash['detours'])
|
|
59
59
|
end
|
|
60
60
|
|
|
61
61
|
def test_huge_detour_over_4k
|
|
62
|
+
# rubocop:disable Metrics/LineLength
|
|
62
63
|
query = "/orders/TeYphD2wcYyBDFaKTnmAog/edit?detour%5Baction%5D=index&detour%5Bcommit%5D=Search&detour%5Bcontroller%5D=order_drilldown&detour%5Bdrilldown_search%5D%5Bdimensions%5D%5B%5D=arrival&detour%5Bdrilldown_search%5D%5Bdimensions%5D%5B%5D=delay&detour%5Bdrilldown_search%5D%5Bdisplay_type%5D=NONE&detour%5Bdrilldown_search%5D%5Bfields%5D%5Bactual_time%5D=1&detour%5Bdrilldown_search%5D%5Bfields%5D%5Bcomments%5D=1&detour%5Bdrilldown_search%5D%5Bfields%5D%5Bdelay%5D=1&detour%5Bdrilldown_search%5D%5Bfields%5D%5Bdescription%5D=1&detour%5Bdrilldown_search%5D%5Bfields%5D%5Bdirection%5D=0&detour%5Bdrilldown_search%5D%5Bfields%5D%5Bdrop_off_stand%5D=0&detour%5Bdrilldown_search%5D%5Bfields%5D%5Bestimated%5D=1&detour%5Bdrilldown_search%5D%5Bfields%5D%5Bfirst_vehicle%5D=1&detour%5Bdrilldown_search%5D%5Bfields%5D%5Bofb%5D=0&detour%5Bdrilldown_search%5D%5Bfields%5D%5Bonb%5D=0&detour%5Bdrilldown_search%5D%5Bfields%5D%5Boperation%5D=0&detour%5Bdrilldown_search%5D%5Bfields%5D%5Bpick_up%5D=1&detour%5Bdrilldown_search%5D%5Bfields%5D%5Bpick_up_stand%5D=0&detour%5Bdrilldown_search%5D%5Bfields%5D%5Bplanned%5D=0&detour%5Bdrilldown_search%5D%5Bfields%5D%5Bprobable%5D=1&detour%5Bdrilldown_search%5D%5Bfields%5D%5Bscheduled%5D=1&detour%5Bdrilldown_search%5D%5Bfields%5D%5Bsta%5D=0&detour%5Bdrilldown_search%5D%5Bfields%5D%5Btime%5D=0&detour%5Bdrilldown_search%5D%5Bfilter%5D%5Barrival%5D%5B%5D=Arrival&detour%5Bdrilldown_search%5D%5Bfilter%5D%5Barrival%5D%5B%5D=Departure&detour%5Bdrilldown_search%5D%5Bfilter%5D%5Bcalendar_date%5D%5B%5D=2016-03-01&detour%5Bdrilldown_search%5D%5Blist%5D=1&detour%5Bdrilldown_search%5D%5Blist_change_times%5D=0&detour%5Bdrilldown_search%5D%5Border_by_value%5D=0&detour%5Bdrilldown_search%5D%5Bpercent%5D=1&detour%5Bdrilldown_search%5D%5Bselect_value%5D=COUNT&detour%5Bdrilldown_search%5D%5Btitle%5D=OSL+Daily+Delay+Report+2016-04-16#{'+etc' * 200}&detour%5Butf8%5D=%E2%9C%93"
|
|
64
|
+
# rubocop:enable Metrics/LineLength
|
|
63
65
|
env = env_for(query)
|
|
64
66
|
|
|
65
67
|
status, headers, response = @stack.call env
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: simple_workflow
|
|
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
|
- Uwe Kubosch
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2017-04-03 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rails
|
|
@@ -116,7 +116,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
116
116
|
version: '0'
|
|
117
117
|
requirements: []
|
|
118
118
|
rubyforge_project: donv/simple_workflow
|
|
119
|
-
rubygems_version: 2.
|
|
119
|
+
rubygems_version: 2.6.11
|
|
120
120
|
signing_key:
|
|
121
121
|
specification_version: 4
|
|
122
122
|
summary: Add simple breadcrumbs "detour" workflow to Ruby On Rails.
|