simple_workflow 1.0.9 → 1.0.10

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: 9d9618fc3fdb4d342c4d687099c32bdf13953f39
4
- data.tar.gz: 1c3c0415df730a8f473b13e2d9c4ba4e80f25e69
3
+ metadata.gz: 5e2759f6626743e3c822302936fe1472688f5cd9
4
+ data.tar.gz: cabcd24059354e72cfa0b99e74f1314182248771
5
5
  SHA512:
6
- metadata.gz: 4d8529f0856bd7ccc8d4d80803d7454475364bf444bfc38d85d38cf679a8c14eaeffbba91d5994bad05909ec59c40a4d57a75f2ed1ea6efb5895773321678971
7
- data.tar.gz: a85f824076defd8315eb508095d7070b7582f925f0bdc0a354a7063b131c0d1c680ccf529847179055bacabec1c92813682d8f98ea00b3ad2ec4cce11e73832f
6
+ metadata.gz: a9c5e65679ebcb042b9ab5817351f2fe483410994ef48ab55fa040ca088a2b1cbe1ccda8eb3c82cd5cb952087676ad9ff91aaf896256c0baed8a3324e0373dd0
7
+ data.tar.gz: ba297eb8049ca8bb0144e6a81ed9fe191c042c6b01631a6b1ab3c2992ed1f0a608a67264133183e31d0202601a82a557d5363748bb4aeb73c3c9d274286fe60d
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- simple_workflow (1.0.9)
4
+ simple_workflow (1.0.10)
5
5
  rails (~> 4.0)
6
6
 
7
7
  GEM
@@ -49,19 +49,19 @@ GEM
49
49
  activesupport (>= 4.1.0)
50
50
  hike (1.2.3)
51
51
  i18n (0.7.0)
52
- json (1.8.1)
52
+ json (1.8.2)
53
53
  loofah (2.0.1)
54
54
  nokogiri (>= 1.5.9)
55
55
  mail (2.6.3)
56
56
  mime-types (>= 1.16, < 3)
57
57
  mime-types (2.4.3)
58
58
  mini_portile (0.6.2)
59
- minitest (5.5.0)
59
+ minitest (5.5.1)
60
60
  multi_json (1.10.1)
61
61
  nokogiri (1.6.5)
62
62
  mini_portile (~> 0.6.0)
63
63
  rack (1.6.0)
64
- rack-test (0.6.2)
64
+ rack-test (0.6.3)
65
65
  rack (>= 1.0)
66
66
  rails (4.2.0)
67
67
  actionmailer (= 4.2.0)
@@ -24,27 +24,39 @@ module SimpleWorkflow::Controller
24
24
  end
25
25
  session[:detours] ||= []
26
26
  session[:detours] << options
27
+ remove_old_detours
28
+ logger.debug "Added detour (#{session[:detours].try(:size) || 0}): #{options.inspect}"
29
+ end
27
30
 
31
+ def remove_old_detours
28
32
  if Rails.application.config.session_store == ActionDispatch::Session::CookieStore
29
- encryptor = cookies.signed_or_encrypted.instance_variable_get(:@encryptor)
30
33
  ss = ws = nil
31
34
  loop do
32
35
  ser_val = cookies.signed_or_encrypted.send(:serialize, nil, session.to_hash)
33
- new_value = encryptor.encrypt_and_sign(ser_val)
34
- ss = new_value.size
36
+ ss = encryptor.encrypt_and_sign(ser_val).size
35
37
  wf_ser_val = cookies.signed_or_encrypted.send(:serialize, nil, session[:detours])
36
- wf_crypt_val = encryptor.encrypt_and_sign(wf_ser_val)
37
- ws = wf_crypt_val.size
38
+ ws = encryptor.encrypt_and_sign(wf_ser_val).size
38
39
  break unless ws >= 2048 || (ss >= 3072 && session[:detours] && session[:detours].size > 0)
39
- logger.warn "Workflow too large (#{ws}). Dropping oldest detour."
40
+ logger.warn "Workflow too large (#{ws}/#{ss}). Dropping oldest detour."
40
41
  session[:detours].shift
41
42
  reset_workflow if session[:detours].empty?
42
43
  end
43
44
  logger.debug "session: #{ss} bytes, workflow(#{session[:detours].try(:size) || 0}): #{ws} bytes"
44
45
  end
46
+ end
45
47
 
46
- logger.debug "Added detour (#{session[:detours].try(:size) || 0}): #{options.inspect}"
48
+ def encryptor
49
+ return @simple_workflow_encryptor if @simple_workflow_encryptor
50
+ @simple_workflow_encryptor = cookies.signed_or_encrypted.instance_variable_get(:@encryptor)
51
+ return @simple_workflow_encryptor if @simple_workflow_encryptor
52
+ secret_key_base = Rails.application.config.secret_key_base
53
+ key_generator = ActiveSupport::KeyGenerator.new(secret_key_base, iterations: 1000)
54
+ key_generator = ActiveSupport::CachingKeyGenerator.new(key_generator)
55
+ secret = key_generator.generate_key('encrypted cookie')
56
+ sign_secret = key_generator.generate_key('signed encrypted cookie')
57
+ @simple_workflow_encryptor = ActiveSupport::MessageEncryptor.new(secret, sign_secret)
47
58
  end
59
+ private :encryptor
48
60
 
49
61
  def store_detour_from_params
50
62
  if params[:detour]
@@ -1,3 +1,3 @@
1
1
  module SimpleWorkflow
2
- VERSION = '1.0.9'
2
+ VERSION = '1.0.10'
3
3
  end
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.0.9
4
+ version: 1.0.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Uwe Kubosch
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-09 00:00:00.000000000 Z
11
+ date: 2015-01-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -40,15 +40,6 @@ files:
40
40
  - lib/simple_workflow/helper.rb
41
41
  - lib/simple_workflow/test_helper.rb
42
42
  - lib/simple_workflow/version.rb
43
- - simple_workflow-1.0.1.gem
44
- - simple_workflow-1.0.2.gem
45
- - simple_workflow-1.0.3.gem
46
- - simple_workflow-1.0.4.gem
47
- - simple_workflow-1.0.5.gem
48
- - simple_workflow-1.0.6.gem
49
- - simple_workflow-1.0.7.gem
50
- - simple_workflow-1.0.8.gem
51
- - simple_workflow.gemspec
52
43
  - test/controller_test.rb
53
44
  - test/helper_test.rb
54
45
  - test/test_helper.rb
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -1,17 +0,0 @@
1
- require 'rake'
2
- require './lib/simple_workflow/version'
3
-
4
- Gem::Specification.new do |s|
5
- s.name = %q{simple_workflow}
6
- s.version = SimpleWorkflow::VERSION
7
- s.date = Date.today.strftime '%Y-%m-%d'
8
- s.authors = ['Uwe Kubosch']
9
- s.email = %q{uwe@kubosch.no}
10
- s.summary = %q{Add simple breadcrumbs "detour" workflow to Ruby On Rails.}
11
- s.homepage = %q{https://github.com/donv/simple_workflow}
12
- s.description = 'Expands Ruby On Rails to allow simple breadcrumb detour workflows.'
13
- s.rubyforge_project = 'donv/simple_workflow'
14
- s.licenses = %w(MIT)
15
- s.files = FileList['[A-Z]*', 'lib/**/*', 'test/**/*'].to_a
16
- s.add_dependency('rails','~>4.0')
17
- end