redacted 0.0.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 +7 -0
- data/.gitignore +31 -0
- data/Gemfile +8 -0
- data/LICENSE.txt +22 -0
- data/README.md +72 -0
- data/Rakefile +34 -0
- data/app/assets/stylesheets/redacted.css +2 -0
- data/lib/redacted.rb +10 -0
- data/lib/redacted/action_view/helpers.rb +45 -0
- data/lib/redacted/engine.rb +4 -0
- data/lib/redacted/railtie.rb +9 -0
- data/lib/redacted/version.rb +3 -0
- data/redacted.gemspec +28 -0
- data/test/dummy/Rakefile +6 -0
- data/test/dummy/app/assets/images/.keep +0 -0
- data/test/dummy/app/assets/javascripts/application.js +13 -0
- data/test/dummy/app/assets/stylesheets/application.css +16 -0
- data/test/dummy/app/controllers/application_controller.rb +5 -0
- data/test/dummy/app/controllers/concerns/.keep +0 -0
- data/test/dummy/app/controllers/welcome_controller.rb +4 -0
- data/test/dummy/app/helpers/application_helper.rb +2 -0
- data/test/dummy/app/mailers/.keep +0 -0
- data/test/dummy/app/models/.keep +0 -0
- data/test/dummy/app/models/concerns/.keep +0 -0
- data/test/dummy/app/views/layouts/application.html.erb +14 -0
- data/test/dummy/app/views/welcome/index.html.erb +42 -0
- data/test/dummy/bin/bundle +3 -0
- data/test/dummy/bin/rails +4 -0
- data/test/dummy/bin/rake +4 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/config/application.rb +25 -0
- data/test/dummy/config/boot.rb +5 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +37 -0
- data/test/dummy/config/environments/production.rb +78 -0
- data/test/dummy/config/environments/test.rb +38 -0
- data/test/dummy/config/initializers/assets.rb +8 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
- data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/test/dummy/config/initializers/inflections.rb +16 -0
- data/test/dummy/config/initializers/mime_types.rb +4 -0
- data/test/dummy/config/initializers/session_store.rb +3 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy/config/locales/en.yml +23 -0
- data/test/dummy/config/routes.rb +3 -0
- data/test/dummy/config/secrets.yml +22 -0
- data/test/dummy/lib/assets/.keep +0 -0
- data/test/dummy/log/.keep +0 -0
- data/test/dummy/public/404.html +67 -0
- data/test/dummy/public/422.html +67 -0
- data/test/dummy/public/500.html +66 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/dummy/test/controllers/welcome_controller_test.rb +9 -0
- data/test/redacted_helper_test.rb +63 -0
- data/test/redacted_test.rb +29 -0
- data/test/test_helper.rb +8 -0
- metadata +235 -0
@@ -0,0 +1,66 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>We're sorry, but something went wrong (500)</title>
|
5
|
+
<meta name="viewport" content="width=device-width,initial-scale=1">
|
6
|
+
<style>
|
7
|
+
body {
|
8
|
+
background-color: #EFEFEF;
|
9
|
+
color: #2E2F30;
|
10
|
+
text-align: center;
|
11
|
+
font-family: arial, sans-serif;
|
12
|
+
margin: 0;
|
13
|
+
}
|
14
|
+
|
15
|
+
div.dialog {
|
16
|
+
width: 95%;
|
17
|
+
max-width: 33em;
|
18
|
+
margin: 4em auto 0;
|
19
|
+
}
|
20
|
+
|
21
|
+
div.dialog > div {
|
22
|
+
border: 1px solid #CCC;
|
23
|
+
border-right-color: #999;
|
24
|
+
border-left-color: #999;
|
25
|
+
border-bottom-color: #BBB;
|
26
|
+
border-top: #B00100 solid 4px;
|
27
|
+
border-top-left-radius: 9px;
|
28
|
+
border-top-right-radius: 9px;
|
29
|
+
background-color: white;
|
30
|
+
padding: 7px 12% 0;
|
31
|
+
box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
|
32
|
+
}
|
33
|
+
|
34
|
+
h1 {
|
35
|
+
font-size: 100%;
|
36
|
+
color: #730E15;
|
37
|
+
line-height: 1.5em;
|
38
|
+
}
|
39
|
+
|
40
|
+
div.dialog > p {
|
41
|
+
margin: 0 0 1em;
|
42
|
+
padding: 1em;
|
43
|
+
background-color: #F7F7F7;
|
44
|
+
border: 1px solid #CCC;
|
45
|
+
border-right-color: #999;
|
46
|
+
border-left-color: #999;
|
47
|
+
border-bottom-color: #999;
|
48
|
+
border-bottom-left-radius: 4px;
|
49
|
+
border-bottom-right-radius: 4px;
|
50
|
+
border-top-color: #DADADA;
|
51
|
+
color: #666;
|
52
|
+
box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
|
53
|
+
}
|
54
|
+
</style>
|
55
|
+
</head>
|
56
|
+
|
57
|
+
<body>
|
58
|
+
<!-- This file lives in public/500.html -->
|
59
|
+
<div class="dialog">
|
60
|
+
<div>
|
61
|
+
<h1>We're sorry, but something went wrong.</h1>
|
62
|
+
</div>
|
63
|
+
<p>If you are the application owner check the logs for more information.</p>
|
64
|
+
</div>
|
65
|
+
</body>
|
66
|
+
</html>
|
File without changes
|
@@ -0,0 +1,63 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class RedactedHelpersTest < ActionView::TestCase
|
4
|
+
include Redacted::ActionView::Helpers
|
5
|
+
|
6
|
+
def setup
|
7
|
+
@phrase = "Canada's maple syrup was stolen by grizzly bears"
|
8
|
+
@paragraphs = "This one paragraph.\nThis is two.\n\nThis is three!\r\nThis is four?"
|
9
|
+
@html = "<p>This is in a p tag.</p>This is outside a p tag.<br>This is after a break."
|
10
|
+
@redacted_text = redact_text(@phrase)
|
11
|
+
@redacted_paragraphs = redact_paragraphs(@paragraphs)
|
12
|
+
end
|
13
|
+
|
14
|
+
test '#redact returns single line when passed string without characters' do
|
15
|
+
refute redact(@phrase).include?('<p>'), "redact phrase should not have paragraph tags"
|
16
|
+
end
|
17
|
+
|
18
|
+
test '#redact splits into paragraphs when passed paragraphs' do
|
19
|
+
assert redact(@paragraphs).include?('<p>'), "redact_paragraphs should have p tags"
|
20
|
+
assert redact(@paragraphs).include?('</p>')
|
21
|
+
end
|
22
|
+
|
23
|
+
test '#redact_paragraphs returns an array' do
|
24
|
+
assert @redacted_paragraphs.class.name == "Array", "redact_paragraphs should be an array"
|
25
|
+
end
|
26
|
+
|
27
|
+
test '#redact_paragraphs returns proper number of paragraphs' do
|
28
|
+
assert_equal 4, @redacted_paragraphs.size, "redacted_paragraphs should return proper number of paragraphs"
|
29
|
+
end
|
30
|
+
|
31
|
+
test '#redact_paragraphs returns content with p tags' do
|
32
|
+
assert @redacted_paragraphs.first.include?('<p>')
|
33
|
+
assert @redacted_paragraphs.first.include?('</p>')
|
34
|
+
end
|
35
|
+
|
36
|
+
test '#redact_text returns string of random text' do
|
37
|
+
refute_equal html_text(@redacted_text), @phrase
|
38
|
+
refute html_text(@redacted_text).include?(@phrase)
|
39
|
+
end
|
40
|
+
|
41
|
+
test '#redact_text returns string of same length' do
|
42
|
+
assert_equal @phrase.length, html_text(@redacted_text).length
|
43
|
+
end
|
44
|
+
|
45
|
+
test '#redact_text creates span tags with class .redacted-text' do
|
46
|
+
assert @redacted_text.include?('<span class="redacted-text">')
|
47
|
+
assert @redacted_text.include?('</span>')
|
48
|
+
end
|
49
|
+
|
50
|
+
test '#redact_html replaces content of html with redacted text' do
|
51
|
+
refute_equal @html, redact_html(@html)
|
52
|
+
end
|
53
|
+
|
54
|
+
test '#ascii_redact returns ascii blocks of same length' do
|
55
|
+
assert_equal ["\u2588"], ascii_redact(@phrase).split('').uniq
|
56
|
+
assert_equal ("\u2588" * @phrase.length), ascii_redact(@phrase)
|
57
|
+
end
|
58
|
+
|
59
|
+
private
|
60
|
+
def html_text(redact_text)
|
61
|
+
strip_tags(redact_text)
|
62
|
+
end
|
63
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class RedactedTest < ActionDispatch::IntegrationTest
|
4
|
+
test 'redacted stylesheet is available' do
|
5
|
+
get "/assets/redacted.css"
|
6
|
+
assert_response(:success)
|
7
|
+
assert_match ".redacted-text", @response.body
|
8
|
+
end
|
9
|
+
|
10
|
+
test 'engine is loaded' do
|
11
|
+
assert_equal ::Rails::Engine, Redacted::Engine.superclass
|
12
|
+
end
|
13
|
+
|
14
|
+
test 'Redacted::ActionView::Helpers is loaded' do
|
15
|
+
assert(Redacted::ActionView::Helpers.present?, 'Redacted::ActionView::Helpers is not defined')
|
16
|
+
end
|
17
|
+
|
18
|
+
test 'helper method redact is defined' do
|
19
|
+
assert(Redacted::ActionView::Helpers.method_defined?(:redact), '#redact is not defined')
|
20
|
+
end
|
21
|
+
|
22
|
+
test 'helper method redact_text is defined' do
|
23
|
+
assert(Redacted::ActionView::Helpers.method_defined?(:redact_text), '#redact_text is not defined')
|
24
|
+
end
|
25
|
+
|
26
|
+
test 'helper method redact_paragraphs is defined' do
|
27
|
+
assert(Redacted::ActionView::Helpers.method_defined?(:redact_paragraphs), '#redact_paragraphs is not defined')
|
28
|
+
end
|
29
|
+
end
|
data/test/test_helper.rb
ADDED
metadata
ADDED
@@ -0,0 +1,235 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: redacted
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.2
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Kurt Funai
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-10-29 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: faker
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.4'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.4'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: nokogiri
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 1.6.3
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 1.6.3
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: railties
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '3.2'
|
48
|
+
- - "<"
|
49
|
+
- !ruby/object:Gem::Version
|
50
|
+
version: '5.0'
|
51
|
+
type: :runtime
|
52
|
+
prerelease: false
|
53
|
+
version_requirements: !ruby/object:Gem::Requirement
|
54
|
+
requirements:
|
55
|
+
- - ">="
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
version: '3.2'
|
58
|
+
- - "<"
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '5.0'
|
61
|
+
- !ruby/object:Gem::Dependency
|
62
|
+
name: bundler
|
63
|
+
requirement: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - "~>"
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: '1.6'
|
68
|
+
type: :development
|
69
|
+
prerelease: false
|
70
|
+
version_requirements: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - "~>"
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: '1.6'
|
75
|
+
- !ruby/object:Gem::Dependency
|
76
|
+
name: rake
|
77
|
+
requirement: !ruby/object:Gem::Requirement
|
78
|
+
requirements:
|
79
|
+
- - ">="
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: '0'
|
82
|
+
type: :development
|
83
|
+
prerelease: false
|
84
|
+
version_requirements: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - ">="
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: '0'
|
89
|
+
- !ruby/object:Gem::Dependency
|
90
|
+
name: rails
|
91
|
+
requirement: !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - "~>"
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '4.1'
|
96
|
+
type: :development
|
97
|
+
prerelease: false
|
98
|
+
version_requirements: !ruby/object:Gem::Requirement
|
99
|
+
requirements:
|
100
|
+
- - "~>"
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '4.1'
|
103
|
+
description: Allows a user to turn any string of text into a redacted block of the
|
104
|
+
same size.
|
105
|
+
email:
|
106
|
+
- me@kurtfunai.com
|
107
|
+
executables: []
|
108
|
+
extensions: []
|
109
|
+
extra_rdoc_files: []
|
110
|
+
files:
|
111
|
+
- ".gitignore"
|
112
|
+
- Gemfile
|
113
|
+
- LICENSE.txt
|
114
|
+
- README.md
|
115
|
+
- Rakefile
|
116
|
+
- app/assets/stylesheets/redacted.css
|
117
|
+
- lib/redacted.rb
|
118
|
+
- lib/redacted/action_view/helpers.rb
|
119
|
+
- lib/redacted/engine.rb
|
120
|
+
- lib/redacted/railtie.rb
|
121
|
+
- lib/redacted/version.rb
|
122
|
+
- redacted.gemspec
|
123
|
+
- test/dummy/Rakefile
|
124
|
+
- test/dummy/app/assets/images/.keep
|
125
|
+
- test/dummy/app/assets/javascripts/application.js
|
126
|
+
- test/dummy/app/assets/stylesheets/application.css
|
127
|
+
- test/dummy/app/controllers/application_controller.rb
|
128
|
+
- test/dummy/app/controllers/concerns/.keep
|
129
|
+
- test/dummy/app/controllers/welcome_controller.rb
|
130
|
+
- test/dummy/app/helpers/application_helper.rb
|
131
|
+
- test/dummy/app/mailers/.keep
|
132
|
+
- test/dummy/app/models/.keep
|
133
|
+
- test/dummy/app/models/concerns/.keep
|
134
|
+
- test/dummy/app/views/layouts/application.html.erb
|
135
|
+
- test/dummy/app/views/welcome/index.html.erb
|
136
|
+
- test/dummy/bin/bundle
|
137
|
+
- test/dummy/bin/rails
|
138
|
+
- test/dummy/bin/rake
|
139
|
+
- test/dummy/config.ru
|
140
|
+
- test/dummy/config/application.rb
|
141
|
+
- test/dummy/config/boot.rb
|
142
|
+
- test/dummy/config/environment.rb
|
143
|
+
- test/dummy/config/environments/development.rb
|
144
|
+
- test/dummy/config/environments/production.rb
|
145
|
+
- test/dummy/config/environments/test.rb
|
146
|
+
- test/dummy/config/initializers/assets.rb
|
147
|
+
- test/dummy/config/initializers/backtrace_silencers.rb
|
148
|
+
- test/dummy/config/initializers/cookies_serializer.rb
|
149
|
+
- test/dummy/config/initializers/filter_parameter_logging.rb
|
150
|
+
- test/dummy/config/initializers/inflections.rb
|
151
|
+
- test/dummy/config/initializers/mime_types.rb
|
152
|
+
- test/dummy/config/initializers/session_store.rb
|
153
|
+
- test/dummy/config/initializers/wrap_parameters.rb
|
154
|
+
- test/dummy/config/locales/en.yml
|
155
|
+
- test/dummy/config/routes.rb
|
156
|
+
- test/dummy/config/secrets.yml
|
157
|
+
- test/dummy/lib/assets/.keep
|
158
|
+
- test/dummy/log/.keep
|
159
|
+
- test/dummy/public/404.html
|
160
|
+
- test/dummy/public/422.html
|
161
|
+
- test/dummy/public/500.html
|
162
|
+
- test/dummy/public/favicon.ico
|
163
|
+
- test/dummy/test/controllers/welcome_controller_test.rb
|
164
|
+
- test/redacted_helper_test.rb
|
165
|
+
- test/redacted_test.rb
|
166
|
+
- test/test_helper.rb
|
167
|
+
homepage: http://kurtfunai.com
|
168
|
+
licenses:
|
169
|
+
- MIT
|
170
|
+
metadata: {}
|
171
|
+
post_install_message:
|
172
|
+
rdoc_options: []
|
173
|
+
require_paths:
|
174
|
+
- lib
|
175
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
176
|
+
requirements:
|
177
|
+
- - ">="
|
178
|
+
- !ruby/object:Gem::Version
|
179
|
+
version: '0'
|
180
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
181
|
+
requirements:
|
182
|
+
- - ">="
|
183
|
+
- !ruby/object:Gem::Version
|
184
|
+
version: '0'
|
185
|
+
requirements: []
|
186
|
+
rubyforge_project:
|
187
|
+
rubygems_version: 2.4.2
|
188
|
+
signing_key:
|
189
|
+
specification_version: 4
|
190
|
+
summary: Convert strings into redacted text.
|
191
|
+
test_files:
|
192
|
+
- test/dummy/Rakefile
|
193
|
+
- test/dummy/app/assets/images/.keep
|
194
|
+
- test/dummy/app/assets/javascripts/application.js
|
195
|
+
- test/dummy/app/assets/stylesheets/application.css
|
196
|
+
- test/dummy/app/controllers/application_controller.rb
|
197
|
+
- test/dummy/app/controllers/concerns/.keep
|
198
|
+
- test/dummy/app/controllers/welcome_controller.rb
|
199
|
+
- test/dummy/app/helpers/application_helper.rb
|
200
|
+
- test/dummy/app/mailers/.keep
|
201
|
+
- test/dummy/app/models/.keep
|
202
|
+
- test/dummy/app/models/concerns/.keep
|
203
|
+
- test/dummy/app/views/layouts/application.html.erb
|
204
|
+
- test/dummy/app/views/welcome/index.html.erb
|
205
|
+
- test/dummy/bin/bundle
|
206
|
+
- test/dummy/bin/rails
|
207
|
+
- test/dummy/bin/rake
|
208
|
+
- test/dummy/config.ru
|
209
|
+
- test/dummy/config/application.rb
|
210
|
+
- test/dummy/config/boot.rb
|
211
|
+
- test/dummy/config/environment.rb
|
212
|
+
- test/dummy/config/environments/development.rb
|
213
|
+
- test/dummy/config/environments/production.rb
|
214
|
+
- test/dummy/config/environments/test.rb
|
215
|
+
- test/dummy/config/initializers/assets.rb
|
216
|
+
- test/dummy/config/initializers/backtrace_silencers.rb
|
217
|
+
- test/dummy/config/initializers/cookies_serializer.rb
|
218
|
+
- test/dummy/config/initializers/filter_parameter_logging.rb
|
219
|
+
- test/dummy/config/initializers/inflections.rb
|
220
|
+
- test/dummy/config/initializers/mime_types.rb
|
221
|
+
- test/dummy/config/initializers/session_store.rb
|
222
|
+
- test/dummy/config/initializers/wrap_parameters.rb
|
223
|
+
- test/dummy/config/locales/en.yml
|
224
|
+
- test/dummy/config/routes.rb
|
225
|
+
- test/dummy/config/secrets.yml
|
226
|
+
- test/dummy/lib/assets/.keep
|
227
|
+
- test/dummy/log/.keep
|
228
|
+
- test/dummy/public/404.html
|
229
|
+
- test/dummy/public/422.html
|
230
|
+
- test/dummy/public/500.html
|
231
|
+
- test/dummy/public/favicon.ico
|
232
|
+
- test/dummy/test/controllers/welcome_controller_test.rb
|
233
|
+
- test/redacted_helper_test.rb
|
234
|
+
- test/redacted_test.rb
|
235
|
+
- test/test_helper.rb
|