simple_workflow 1.1.1 → 1.1.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 98730ae8a0dc257bc752e21b17522e68077937be
4
- data.tar.gz: 4ba378f8a83519a7ac7cbf218dd7ead4c85c39ff
3
+ metadata.gz: 56cb50f2ada0bdf7026441bbe353f10d44c98ec2
4
+ data.tar.gz: 67633241bf4e65964492d486181c5a179e58db38
5
5
  SHA512:
6
- metadata.gz: 0603ef92e165afcf6c7cc25cbc26f4a9ddfb34ab5e8f9a952dcc079377ce9dfbe27e7690880e30a838ff99f364f927aa45d39048f371625113495c54fc0d8762
7
- data.tar.gz: 2608dc6a44158c2f4d780038882fe7984dd8f0502cecdf72be9f3feed8965b4e12660293e6cca6bf63da161f94841e11665853f939bc8be17c1fb134c1c2f600
6
+ metadata.gz: 7e3259d655fac64885813683a285c2ae5662caa11f41d60e89a2adc0cc295098ad88b38d6214ec5e599f27e4fa405278b5619c5661db3b9788e0ac830c47d436
7
+ data.tar.gz: eb5dd5097bbf6daa8befbb91e8245ec166158fd9bf64865f477476a3365dce3faaa6ab19fec0d673a5f0e3d6588c5edb5efe619e1332ce0697311b6411282d0b
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- simple_workflow (1.1.1)
4
+ simple_workflow (1.1.2)
5
5
  rails (~> 4.0)
6
6
 
7
7
  GEM
@@ -46,7 +46,6 @@ GEM
46
46
  arel (6.0.3)
47
47
  builder (3.2.2)
48
48
  concurrent-ruby (1.0.1)
49
- concurrent-ruby (1.0.1-java)
50
49
  docile (1.1.5)
51
50
  erubis (2.7.0)
52
51
  globalid (0.3.6)
@@ -70,7 +69,6 @@ GEM
70
69
  ruby-progressbar
71
70
  nokogiri (1.6.7.2)
72
71
  mini_portile2 (~> 2.0.0.rc2)
73
- nokogiri (1.6.7.2-java)
74
72
  rack (1.6.4)
75
73
  rack-test (0.6.3)
76
74
  rack (>= 1.0)
@@ -114,7 +112,6 @@ GEM
114
112
  sprockets (>= 3.0.0)
115
113
  thor (0.19.1)
116
114
  thread_safe (0.3.5)
117
- thread_safe (0.3.5-java)
118
115
  tzinfo (1.2.2)
119
116
  thread_safe (~> 0.1)
120
117
 
@@ -32,7 +32,7 @@ module SimpleWorkflow::Controller
32
32
 
33
33
  def back(response_status_and_flash)
34
34
  return false if session[:detours].nil?
35
- detour = pop_detour
35
+ detour = pop_detour(session)
36
36
  post = detour.delete(:request_method) == :post
37
37
  if post
38
38
  set_flash(response_status_and_flash)
@@ -62,15 +62,6 @@ module SimpleWorkflow::Controller
62
62
  end
63
63
  private :set_flash
64
64
 
65
- def pop_detour
66
- detours = session[:detours]
67
- return nil unless detours
68
- detour = detours.pop
69
- logger.debug "popped detour: #{detour.inspect} #{session[:detours].size} more"
70
- reset_workflow(session) if detours.empty?
71
- detour
72
- end
73
-
74
65
  def redirect_to_post(options)
75
66
  url = url_for options
76
67
  render :text => <<EOF, :layout => false
@@ -9,6 +9,15 @@ module SimpleWorkflow::Detour
9
9
  Rails.logger.try(:debug, "Added detour (#{session[:detours].try(:size) || 0}): #{options.inspect}")
10
10
  end
11
11
 
12
+ def pop_detour(session)
13
+ detours = session[:detours]
14
+ return nil unless detours
15
+ detour = detours.pop
16
+ Rails.logger.debug "popped detour: #{detour.inspect} #{session[:detours].size} more"
17
+ reset_workflow(session) if detours.empty?
18
+ detour
19
+ end
20
+
12
21
  def reset_workflow(session)
13
22
  session.delete(:detours)
14
23
  end
@@ -75,8 +75,8 @@ class SimpleWorkflow::Middleware
75
75
  if params(env)[:detour]
76
76
  store_detour_in_session(session(env), params(env)[:detour])
77
77
  end
78
- if params(env)[:return_from_detour] && session[:detours]
79
- pop_detour
78
+ if params(env)[:return_from_detour] && session(env)[:detours]
79
+ pop_detour(session(env))
80
80
  end
81
81
  end
82
82
 
@@ -1,3 +1,3 @@
1
1
  module SimpleWorkflow
2
- VERSION = '1.1.1'
2
+ VERSION = '1.1.2'
3
3
  end
@@ -31,6 +31,18 @@ class ControllerTest < MiniTest::Test
31
31
  assert_equal({}, session)
32
32
  end
33
33
  # ODOT
34
+
35
+ def test_back
36
+ store_detour({controller: :mycontroller, action: :myaction})
37
+ back({})
38
+ assert_equal({}, session)
39
+ end
40
+
41
+ private
42
+
43
+ def redirect_to(path, response_status_and_flash)
44
+ # NOOP
45
+ end
34
46
  end
35
47
 
36
48
  class TestApp < Rails::Application
@@ -72,6 +72,21 @@ class MiddlewareTest < MiniTest::Test
72
72
  assert_equal(%w(session_id), headers['rack.session'].to_hash.keys)
73
73
  end
74
74
 
75
+ def test_return_from_detour
76
+ _, headers1, _ = @stack.call env_for('/?detour[controller]=test_first')
77
+ env = env_for('/?return_from_detour=true',
78
+ 'rack.session' => headers1['rack.session'],
79
+ 'rack.session.options' => headers1['rack.session.options']
80
+ )
81
+ status, headers, response = @stack.call env
82
+
83
+ assert_equal 200, status
84
+ assert_equal(env, headers)
85
+ assert_equal 'app response', response
86
+ assert_equal(['session_id'], headers['rack.session'].to_hash.keys)
87
+ assert_equal(nil, headers['rack.session'].to_hash['detours'])
88
+ end
89
+
75
90
  private
76
91
 
77
92
  def env_for(url, opts={})
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.1.1
4
+ version: 1.1.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: 2016-04-17 00:00:00.000000000 Z
11
+ date: 2016-05-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails