macmillan-utils 1.0.42 → 1.0.43
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/.rubocop.yml +24 -0
- data/Guardfile +34 -0
- data/lib/macmillan/utils/middleware/cookie_message.rb +5 -4
- data/lib/macmillan/utils/middleware/uuid.rb +4 -1
- data/macmillan-utils.gemspec +4 -0
- data/spec/lib/macmillan/utils/middleware/cookie_message_spec.rb +1 -0
- data/spec/lib/macmillan/utils/middleware/uuid_spec.rb +10 -0
- metadata +60 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3fe9b990a00a9e419dc06a35dc5ab6a4f5a82cc5
|
4
|
+
data.tar.gz: f1315b6e760d45bb4203b103a68d2efee6aa0af1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e7868d4031c99050605469da7728bb3417338080be5e55126c577f6ba4249be951337d19ec92b69c6d12f06e5d170ef48c783ff6445e26ad6034345b7c42a143
|
7
|
+
data.tar.gz: 0693ecddea825200da01a11dbd65123ea84e68eeebe32a3b5f43e7064555c6450d9bda2974b0814eb1424ff501d739bf3a627355a6224b76ef42743a6c93e020
|
data/.rubocop.yml
CHANGED
@@ -64,6 +64,7 @@ Style/CollectionMethods:
|
|
64
64
|
inject: 'reduce'
|
65
65
|
detect: 'find'
|
66
66
|
find_all: 'select'
|
67
|
+
Enabled: true
|
67
68
|
|
68
69
|
Layout/DotPosition:
|
69
70
|
EnforcedStyle: leading
|
@@ -72,9 +73,32 @@ Layout/DotPosition:
|
|
72
73
|
Style/DoubleNegation:
|
73
74
|
Enabled: false
|
74
75
|
|
76
|
+
Style/Alias:
|
77
|
+
# I like alias_method with symbol parameters
|
78
|
+
Enabled: false
|
79
|
+
|
75
80
|
Layout/SpaceAroundOperators:
|
76
81
|
# When true, allows most uses of extra spacing if the intent is to align
|
77
82
|
# with an operator on the previous or next line, not counting empty lines
|
78
83
|
# or comment lines.
|
79
84
|
AllowForAlignment: true
|
80
85
|
Enabled: true
|
86
|
+
|
87
|
+
Style/SymbolArray:
|
88
|
+
# Turned off because the associated auto-correct makes a real mess
|
89
|
+
Enabled: false
|
90
|
+
|
91
|
+
Style/FrozenStringLiteralComment:
|
92
|
+
# An 'every file in the repo' recommendation.
|
93
|
+
Enabled: false
|
94
|
+
Severity: warning
|
95
|
+
|
96
|
+
Layout/EmptyLineAfterMagicComment:
|
97
|
+
# Nooo not another 'every file in the repo' recommendation.
|
98
|
+
Enabled: false
|
99
|
+
Severity: warning
|
100
|
+
|
101
|
+
Style/GlobalVars:
|
102
|
+
# Doesn't justify a critical
|
103
|
+
Enabled: true
|
104
|
+
Severity: warning
|
data/Guardfile
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
group :all_plugins, halt_on_fail: true do
|
2
|
+
|
3
|
+
# Note: The cmd option is now required due to the increasing number of ways
|
4
|
+
# rspec may be run, below are examples of the most common uses.
|
5
|
+
# * bundler: 'bundle exec rspec'
|
6
|
+
# * bundler binstubs: 'bin/rspec'
|
7
|
+
# * spring: 'bin/rspec' (This will use spring if running and you have
|
8
|
+
# installed the spring binstubs per the docs)
|
9
|
+
# * zeus: 'zeus rspec' (requires the server to be started separately)
|
10
|
+
# * 'just' rspec: 'rspec'
|
11
|
+
|
12
|
+
guard :rspec, cmd: 'bundle exec rspec --no-profile', all_after_pass: true, all_on_start: true do
|
13
|
+
require "guard/rspec/dsl"
|
14
|
+
dsl = Guard::RSpec::Dsl.new(self)
|
15
|
+
|
16
|
+
# Feel free to open issues for suggestions and improvements
|
17
|
+
|
18
|
+
# RSpec files
|
19
|
+
rspec = dsl.rspec
|
20
|
+
watch(rspec.spec_helper) { rspec.spec_dir }
|
21
|
+
watch(rspec.spec_support) { rspec.spec_dir }
|
22
|
+
watch(rspec.spec_files)
|
23
|
+
|
24
|
+
# Ruby files
|
25
|
+
ruby = dsl.ruby
|
26
|
+
dsl.watch_spec_files_for(ruby.lib_files)
|
27
|
+
end
|
28
|
+
|
29
|
+
guard :rubocop, cli: ['--only-guide-cops'] do
|
30
|
+
watch(%r{.+\.rb$})
|
31
|
+
watch(%r{(?:.+/)?\.rubocop\.yml$}) { |m| File.dirname(m[0]) }
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
@@ -93,10 +93,11 @@ module Macmillan
|
|
93
93
|
|
94
94
|
def cookie_options(request)
|
95
95
|
{
|
96
|
-
value:
|
97
|
-
domain:
|
98
|
-
path:
|
99
|
-
|
96
|
+
value: 'accepted',
|
97
|
+
domain: request.host_with_port,
|
98
|
+
path: '/',
|
99
|
+
httponly: true,
|
100
|
+
expires: Time.now.getutc + YEAR
|
100
101
|
}
|
101
102
|
end
|
102
103
|
|
@@ -76,7 +76,10 @@ module Macmillan
|
|
76
76
|
alias_method :uuid_is_new?, :store_cookie?
|
77
77
|
|
78
78
|
def save_cookie
|
79
|
-
cookie_value = { value: final_user_uuid,
|
79
|
+
cookie_value = { value: final_user_uuid,
|
80
|
+
path: '/',
|
81
|
+
httponly: true,
|
82
|
+
expires: DateTime.now.next_year.to_time }
|
80
83
|
response.set_cookie(cookie_key, cookie_value)
|
81
84
|
end
|
82
85
|
|
data/macmillan-utils.gemspec
CHANGED
@@ -21,6 +21,10 @@ Gem::Specification.new do |spec|
|
|
21
21
|
spec.add_development_dependency 'pry'
|
22
22
|
spec.add_development_dependency 'rack-test'
|
23
23
|
spec.add_development_dependency 'rack', '< 2.0.0'
|
24
|
+
spec.add_development_dependency 'guard'
|
25
|
+
spec.add_development_dependency 'guard-rspec'
|
26
|
+
spec.add_development_dependency 'guard-rubocop'
|
27
|
+
spec.add_development_dependency 'terminal-notifier-guard'
|
24
28
|
|
25
29
|
spec.add_dependency 'rspec'
|
26
30
|
spec.add_dependency 'simplecov'
|
@@ -46,6 +46,7 @@ RSpec.describe Macmillan::Utils::Middleware::CookieMessage do
|
|
46
46
|
expect(cookie).to match(/domain=www\.nature\.com:80;/)
|
47
47
|
expect(cookie).to match(%r{path=/;})
|
48
48
|
expect(cookie).to match(/expires=Wed, 31 Jan 2018 00:00:00 -0000/)
|
49
|
+
expect(cookie).to match(/httponly/i)
|
49
50
|
end
|
50
51
|
|
51
52
|
it 'redirects back to the original url' do
|
@@ -41,6 +41,11 @@ RSpec.describe Macmillan::Utils::Middleware::Uuid do
|
|
41
41
|
expect(headers['Set-Cookie']).to include("user.uuid=#{user_uuid}")
|
42
42
|
end
|
43
43
|
|
44
|
+
it 'uses httponly cookie' do
|
45
|
+
_status, headers, _body = subject.call(request.env)
|
46
|
+
expect(headers['Set-Cookie']).to match(/httponly/i)
|
47
|
+
end
|
48
|
+
|
44
49
|
it 'tells following rack app the user_uuid is new' do
|
45
50
|
expect(app).to receive(:call).with(hash_including('user.uuid_is_new' => true)).and_return(app_return)
|
46
51
|
_status, _headers, _body = subject.call(request.env)
|
@@ -65,6 +70,11 @@ RSpec.describe Macmillan::Utils::Middleware::Uuid do
|
|
65
70
|
expect(headers['Set-Cookie']).to include('user.uuid=wibble')
|
66
71
|
end
|
67
72
|
|
73
|
+
it 'uses httponly cookie' do
|
74
|
+
_status, headers, _body = subject.call(request.env)
|
75
|
+
expect(headers['Set-Cookie']).to match(/httponly/i)
|
76
|
+
end
|
77
|
+
|
68
78
|
it 'tells following rack app the user_uuid is new' do
|
69
79
|
expect(app).to receive(:call).with(hash_including('user.uuid_is_new' => true)).and_return(app_return)
|
70
80
|
_status, _headers, _body = subject.call(request.env)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: macmillan-utils
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.43
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Springer Nature
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-06-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -94,6 +94,62 @@ dependencies:
|
|
94
94
|
- - "<"
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: 2.0.0
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: guard
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: guard-rspec
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: guard-rubocop
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: terminal-notifier-guard
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ">="
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
97
153
|
- !ruby/object:Gem::Dependency
|
98
154
|
name: rspec
|
99
155
|
requirement: !ruby/object:Gem::Requirement
|
@@ -247,6 +303,7 @@ files:
|
|
247
303
|
- ".rubocop.yml"
|
248
304
|
- ".travis.yml"
|
249
305
|
- Gemfile
|
306
|
+
- Guardfile
|
250
307
|
- LICENSE
|
251
308
|
- README.rdoc
|
252
309
|
- Rakefile
|
@@ -315,7 +372,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
315
372
|
version: '0'
|
316
373
|
requirements: []
|
317
374
|
rubyforge_project:
|
318
|
-
rubygems_version: 2.6.
|
375
|
+
rubygems_version: 2.6.11
|
319
376
|
signing_key:
|
320
377
|
specification_version: 4
|
321
378
|
summary: A collection of useful patterns we (Springer Nature) use in our Ruby applications.
|