dismissible_blocks 1.1.1 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/{LICENSE.text → LICENSE.txt} +0 -0
- data/{README.markdown → README.md} +0 -0
- data/app/controllers/dismissible_blocks_controller.rb +2 -2
- data/app/helpers/dismissible_blocks_helper.rb +1 -1
- data/dismissible_blocks.gemspec +33 -0
- data/lib/dismissible_blocks/version.rb +1 -1
- metadata +35 -126
- data/Gemfile +0 -7
- data/Rakefile +0 -34
- data/test/capybara_helper.rb +0 -34
- data/test/controllers/dismissible_blocks_controller_test.rb +0 -18
- data/test/dummy/Rakefile +0 -3
- data/test/dummy/app/assets/javascripts/application.js +0 -3
- data/test/dummy/app/assets/stylesheets/application.css +0 -17
- data/test/dummy/app/controllers/application_controller.rb +0 -29
- data/test/dummy/app/controllers/landings_controller.rb +0 -6
- data/test/dummy/app/controllers/sessions_controller.rb +0 -28
- data/test/dummy/app/helpers/application_helper.rb +0 -2
- data/test/dummy/app/helpers/landings_helper.rb +0 -2
- data/test/dummy/app/helpers/sessions_helper.rb +0 -2
- data/test/dummy/app/models/user.rb +0 -9
- data/test/dummy/app/views/landings/show.html.erb +0 -10
- data/test/dummy/app/views/layouts/application.html.erb +0 -18
- data/test/dummy/app/views/sessions/new.html.erb +0 -15
- data/test/dummy/bin/bundle +0 -3
- data/test/dummy/bin/rails +0 -4
- data/test/dummy/bin/rake +0 -4
- data/test/dummy/bin/setup +0 -29
- data/test/dummy/config.ru +0 -3
- data/test/dummy/config/application.rb +0 -13
- data/test/dummy/config/boot.rb +0 -4
- data/test/dummy/config/database.yml +0 -11
- data/test/dummy/config/environment.rb +0 -3
- data/test/dummy/config/environments/development.rb +0 -12
- data/test/dummy/config/environments/test.rb +0 -13
- data/test/dummy/config/initializers/assets.rb +0 -1
- data/test/dummy/config/initializers/cookies_serializer.rb +0 -1
- data/test/dummy/config/initializers/filter_parameter_logging.rb +0 -1
- data/test/dummy/config/initializers/session_store.rb +0 -1
- data/test/dummy/config/initializers/wrap_parameters.rb +0 -3
- data/test/dummy/config/routes.rb +0 -7
- data/test/dummy/config/secrets.yml +0 -5
- data/test/dummy/db/migrate/20140303154458_create_users.rb +0 -10
- data/test/dummy/db/migrate/20140303161500_add_dismissed_blocks_to_users.rb +0 -9
- data/test/dummy/db/schema.rb +0 -24
- data/test/dummy/db/test.sqlite3 +0 -0
- data/test/dummy/log/test.log +0 -442
- data/test/dummy/public/404.html +0 -67
- data/test/dummy/public/422.html +0 -67
- data/test/dummy/public/500.html +0 -66
- data/test/dummy/public/favicon.ico +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/58a8328804a777933d757eb9a448eaf5 +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/68b2c32b107dd99071629b05c392d6cd +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/96c147c638b08a4c0178d9c66c3b9c48 +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/a303e31a3b163f257d2061cd9abb98d2 +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/ac2d5385dbcd9cea11c510dc83189bba +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/bec12e1e92fe458e19b5f9869454ac1a +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
- data/test/features/dismissible_blocks_test.rb +0 -21
- data/test/fixtures/users.yml +0 -9
- data/test/helpers/dismissible_blocks_helper_test.rb +0 -73
- data/test/lib/controllers/helpers_test.rb +0 -14
- data/test/test_helper.rb +0 -8
data/test/dummy/public/404.html
DELETED
@@ -1,67 +0,0 @@
|
|
1
|
-
<!DOCTYPE html>
|
2
|
-
<html>
|
3
|
-
<head>
|
4
|
-
<title>The page you were looking for doesn't exist (404)</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/404.html -->
|
59
|
-
<div class="dialog">
|
60
|
-
<div>
|
61
|
-
<h1>The page you were looking for doesn't exist.</h1>
|
62
|
-
<p>You may have mistyped the address or the page may have moved.</p>
|
63
|
-
</div>
|
64
|
-
<p>If you are the application owner check the logs for more information.</p>
|
65
|
-
</div>
|
66
|
-
</body>
|
67
|
-
</html>
|
data/test/dummy/public/422.html
DELETED
@@ -1,67 +0,0 @@
|
|
1
|
-
<!DOCTYPE html>
|
2
|
-
<html>
|
3
|
-
<head>
|
4
|
-
<title>The change you wanted was rejected (422)</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/422.html -->
|
59
|
-
<div class="dialog">
|
60
|
-
<div>
|
61
|
-
<h1>The change you wanted was rejected.</h1>
|
62
|
-
<p>Maybe you tried to change something you didn't have access to.</p>
|
63
|
-
</div>
|
64
|
-
<p>If you are the application owner check the logs for more information.</p>
|
65
|
-
</div>
|
66
|
-
</body>
|
67
|
-
</html>
|
data/test/dummy/public/500.html
DELETED
@@ -1,66 +0,0 @@
|
|
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
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -1,21 +0,0 @@
|
|
1
|
-
require 'capybara_helper'
|
2
|
-
|
3
|
-
class DismissibleBlocksTest < ActionDispatch::IntegrationTest
|
4
|
-
setup do
|
5
|
-
Capybara.current_driver = Capybara.javascript_driver
|
6
|
-
end
|
7
|
-
|
8
|
-
test "block is displayed and dismissed" do
|
9
|
-
login users(:one)
|
10
|
-
assert page.has_selector? '.block'
|
11
|
-
click_on 'Hide'
|
12
|
-
assert page.has_no_selector? '.block'
|
13
|
-
logout
|
14
|
-
end
|
15
|
-
|
16
|
-
test "block is not displayed; already dismissed" do
|
17
|
-
login users(:two)
|
18
|
-
assert page.has_no_selector? '.block'
|
19
|
-
logout
|
20
|
-
end
|
21
|
-
end
|
data/test/fixtures/users.yml
DELETED
@@ -1,73 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
class DismissibleBlocksHelperTest < ActionView::TestCase
|
4
|
-
|
5
|
-
test "render block because not dismissed" do
|
6
|
-
def self.current_user; users(:one); end
|
7
|
-
assert_not_nil render_dismissible_block('lorem') { 'lorem ipsum' }
|
8
|
-
end
|
9
|
-
|
10
|
-
test "omit block because dismissed" do
|
11
|
-
def self.current_user; users(:two); end
|
12
|
-
assert_nil render_dismissible_block('lorem') { 'lorem ipsum' }
|
13
|
-
end
|
14
|
-
|
15
|
-
test "raise exception because content missing" do
|
16
|
-
def self.current_user; users(:one); end
|
17
|
-
assert_raise DismissibleBlocks::ContentMissing do
|
18
|
-
render_dismissible_block('lorem')
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
test "raise exception because model unavailable" do
|
23
|
-
assert_raise DismissibleBlocks::ModelUnavailable do
|
24
|
-
render_dismissible_block('lorem') { 'lorem ipsum' }
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
test "raise exception because attribute unavailable" do
|
29
|
-
UserNoAttr = Struct.new(:username, :password)
|
30
|
-
def self.current_user; UserNoAttr.new; end
|
31
|
-
assert_raise DismissibleBlocks::AttributeUnavailable do
|
32
|
-
render_dismissible_block('lorem') { 'lorem ipsum' }
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
test "raise exception because attribute not array" do
|
37
|
-
UserNotArray = Struct.new(:username, :password, :dismissed_blocks)
|
38
|
-
def self.current_user; UserNotArray.new; end
|
39
|
-
assert_raise DismissibleBlocks::AttributeNotArray do
|
40
|
-
render_dismissible_block('lorem') { 'lorem ipsum' }
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
test "verify block name added to html5 data attributes" do
|
45
|
-
block = '<div data-dismissible>'
|
46
|
-
block += '<span data-dismissible-hide></span>'
|
47
|
-
block += '</div>'
|
48
|
-
def self.current_user; users(:one); end
|
49
|
-
html = render_dismissible_block('lorem') { block.html_safe }
|
50
|
-
assert_includes html, "data-dismissible='lorem'"
|
51
|
-
assert_includes html, "data-dismissible-hide='lorem'"
|
52
|
-
end
|
53
|
-
|
54
|
-
test "does not modify data attributes that already have values" do
|
55
|
-
block = "<div data-dismissible='ipsum'>"
|
56
|
-
block += "<span data-dismissible-hide='ipsum'></span>"
|
57
|
-
block += "</div>"
|
58
|
-
def self.current_user; users(:one); end
|
59
|
-
html = render_dismissible_block('lorem') { block.html_safe }
|
60
|
-
assert_includes html, "data-dismissible='ipsum'"
|
61
|
-
assert_includes html, "data-dismissible-hide='ipsum'"
|
62
|
-
end
|
63
|
-
|
64
|
-
test "yields name to the content block" do
|
65
|
-
def self.current_user; users(:one); end
|
66
|
-
passed_name = nil
|
67
|
-
render_dismissible_block('lorem') do |name|
|
68
|
-
passed_name = name
|
69
|
-
'ipsum'
|
70
|
-
end
|
71
|
-
assert_equal 'lorem', passed_name
|
72
|
-
end
|
73
|
-
end
|
@@ -1,14 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
class DismissibleBlocks::Controllers::HelpersTest < ActionController::TestCase
|
4
|
-
|
5
|
-
test "should be DismissibleBlocksController" do
|
6
|
-
controller = DismissibleBlocksController.new
|
7
|
-
assert controller.send(:dismissible_blocks_controller?)
|
8
|
-
end
|
9
|
-
|
10
|
-
test "should not be DismissibleBlocksController" do
|
11
|
-
controller = SessionsController.new
|
12
|
-
refute controller.send(:dismissible_blocks_controller?)
|
13
|
-
end
|
14
|
-
end
|
data/test/test_helper.rb
DELETED
@@ -1,8 +0,0 @@
|
|
1
|
-
ENV['RAILS_ENV'] = 'test'
|
2
|
-
|
3
|
-
require File.expand_path('../dummy/config/environment.rb', __FILE__)
|
4
|
-
require 'rails/test_help'
|
5
|
-
|
6
|
-
Minitest.backtrace_filter = Minitest::BacktraceFilter.new
|
7
|
-
ActiveSupport::TestCase.fixture_path = File.expand_path('../fixtures', __FILE__)
|
8
|
-
ActiveSupport::TestCase.fixtures :all
|