simple_workflow 1.0.9 → 1.0.10

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 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