ominous 0.0.1
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.
- data/MIT-LICENSE +20 -0
- data/README.rdoc +97 -0
- data/Rakefile +40 -0
- data/app/assets/javascripts/ominous/application.js +15 -0
- data/app/assets/javascripts/ominous/warnings.js +33 -0
- data/app/assets/stylesheets/ominous/_ominous_colours.scss +4 -0
- data/app/assets/stylesheets/ominous/application.scss +13 -0
- data/app/assets/stylesheets/ominous/warnings.scss +41 -0
- data/app/controllers/ominous/application_controller.rb +16 -0
- data/app/controllers/ominous/warnings_controller.rb +15 -0
- data/app/helpers/ominous/application_helper.rb +39 -0
- data/app/helpers/ominous/warnings_helper.rb +29 -0
- data/app/models/ominous/closer.rb +19 -0
- data/app/models/ominous/warning.rb +74 -0
- data/app/models/ominous/warning_closer.rb +11 -0
- data/app/views/layouts/ominous/application.html.erb +14 -0
- data/app/views/ominous/warnings/_list.html.erb +20 -0
- data/config/locales/en.yml +1 -0
- data/config/routes.rb +8 -0
- data/db/migrate/20121206144249_create_ominous_warnings.rb +8 -0
- data/db/migrate/20121206145743_create_ominous_warning_closers.rb +10 -0
- data/db/migrate/20121206153254_create_ominous_closers.rb +11 -0
- data/lib/ominous/engine.rb +14 -0
- data/lib/ominous/version.rb +3 -0
- data/lib/ominous.rb +4 -0
- data/lib/tasks/ominous_tasks.rake +4 -0
- data/test/dummy/README.rdoc +261 -0
- data/test/dummy/Rakefile +7 -0
- data/test/dummy/app/assets/javascripts/application.js +16 -0
- data/test/dummy/app/assets/javascripts/things.js +2 -0
- data/test/dummy/app/assets/stylesheets/application.scss +14 -0
- data/test/dummy/app/assets/stylesheets/scaffold.scss +56 -0
- data/test/dummy/app/assets/stylesheets/things.scss +4 -0
- data/test/dummy/app/controllers/application_controller.rb +4 -0
- data/test/dummy/app/controllers/things_controller.rb +54 -0
- data/test/dummy/app/helpers/application_helper.rb +2 -0
- data/test/dummy/app/helpers/things_helper.rb +2 -0
- data/test/dummy/app/models/thing.rb +5 -0
- data/test/dummy/app/views/layouts/application.html.erb +15 -0
- data/test/dummy/app/views/things/_form.html.erb +27 -0
- data/test/dummy/app/views/things/edit.html.erb +6 -0
- data/test/dummy/app/views/things/index.html.erb +23 -0
- data/test/dummy/app/views/things/new.html.erb +5 -0
- data/test/dummy/app/views/things/show.html.erb +10 -0
- data/test/dummy/config/application.rb +59 -0
- data/test/dummy/config/boot.rb +10 -0
- data/test/dummy/config/database.yml +18 -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 +67 -0
- data/test/dummy/config/environments/test.rb +37 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/inflections.rb +15 -0
- data/test/dummy/config/initializers/mime_types.rb +5 -0
- data/test/dummy/config/initializers/secret_token.rb +7 -0
- data/test/dummy/config/initializers/session_store.rb +8 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy/config/locales/en.yml +20 -0
- data/test/dummy/config/routes.rb +6 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/db/migrate/20121207090710_create_things.rb +9 -0
- data/test/dummy/db/schema.rb +46 -0
- data/test/dummy/db/seeds/ominous/closers.yml +11 -0
- data/test/dummy/db/seeds/ominous/warnings.yml +1 -0
- data/test/dummy/db/seeds.rb +11 -0
- data/test/dummy/log/development.log +6329 -0
- data/test/dummy/log/test.log +16544 -0
- data/test/dummy/public/404.html +26 -0
- data/test/dummy/public/422.html +26 -0
- data/test/dummy/public/500.html +25 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/dummy/script/rails +6 -0
- data/test/dummy/test/fixtures/things.yml +9 -0
- data/test/dummy/test/functional/things_controller_test.rb +98 -0
- data/test/dummy/test/unit/helpers/things_helper_test.rb +4 -0
- data/test/dummy/test/unit/thing_test.rb +7 -0
- data/test/dummy/tmp/cache/assets/C8C/B80/sprockets%2F371bf96e99717688ed7313a0c53f4212 +0 -0
- data/test/dummy/tmp/cache/assets/CB1/FD0/sprockets%2F6e1bd95023705b5529e7ccc754a02867 +0 -0
- data/test/dummy/tmp/cache/assets/CC9/A60/sprockets%2F07383698788b2e4738d47ae3ec6a1d87 +0 -0
- data/test/dummy/tmp/cache/assets/CD8/370/sprockets%2F357970feca3ac29060c1e3861e2c0953 +0 -0
- data/test/dummy/tmp/cache/assets/CD8/D80/sprockets%2Fc021b5f59c2af065ff29a632752434f2 +0 -0
- data/test/dummy/tmp/cache/assets/CDA/7C0/sprockets%2F12b62b18784b4353d97f6a97a41f0ad0 +0 -0
- data/test/dummy/tmp/cache/assets/CDC/310/sprockets%2Ffcc31591d15ae084c418fc172660b956 +0 -0
- data/test/dummy/tmp/cache/assets/CF0/1D0/sprockets%2F6fc757c2c8329244ca95d6909865bbc2 +0 -0
- data/test/dummy/tmp/cache/assets/CFF/E00/sprockets%2F352bab412d75fa19d0a07504553b59df +0 -0
- data/test/dummy/tmp/cache/assets/D06/CE0/sprockets%2F41d74669fa9b15be92441ba007ab0c68 +0 -0
- data/test/dummy/tmp/cache/assets/D2B/540/sprockets%2Fc83f54ae55237ceb746bbb53c00b1142 +0 -0
- data/test/dummy/tmp/cache/assets/D2C/6D0/sprockets%2F3d403240cf0f43b784f29abbcb44f206 +0 -0
- data/test/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
- data/test/dummy/tmp/cache/assets/D47/090/sprockets%2F3f61bf7b226774e61d49a5c2bf4ba788 +0 -0
- data/test/dummy/tmp/cache/assets/D49/8D0/sprockets%2F92613a75279536c4bcf4f3ba6cfde494 +0 -0
- data/test/dummy/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655 +0 -0
- data/test/dummy/tmp/cache/assets/D55/D30/sprockets%2F7736f39574ccd9ee349df6370cacc753 +0 -0
- data/test/dummy/tmp/cache/assets/D5A/EA0/sprockets%2Fd771ace226fc8215a3572e0aa35bb0d6 +0 -0
- data/test/dummy/tmp/cache/assets/D63/460/sprockets%2Fb9c8c98e6433f883fef1c54e67727ae9 +0 -0
- data/test/dummy/tmp/cache/assets/D6A/BF0/sprockets%2F762d06ba45dbecea1ec4f91d06449184 +0 -0
- data/test/dummy/tmp/cache/assets/D6B/810/sprockets%2Fb86f0cb0c0c0e267d26cf93fa606b578 +0 -0
- data/test/dummy/tmp/cache/assets/D6D/E30/sprockets%2F22dcb449e5cb7993f426a6f2ba336b2d +0 -0
- data/test/dummy/tmp/cache/assets/D70/F20/sprockets%2F1769eda3bb9755fed833c4ba761231dc +0 -0
- data/test/dummy/tmp/cache/assets/D77/D00/sprockets%2F4d1e5a8a96bd3c395214fd8ca879bf41 +0 -0
- data/test/dummy/tmp/cache/assets/D96/950/sprockets%2F5eee98198ef9d6273cdca638b9865fa8 +0 -0
- data/test/dummy/tmp/cache/assets/DA5/F70/sprockets%2F859ce38bab39b76b3dfcd28026aa8f62 +0 -0
- data/test/dummy/tmp/cache/assets/DAB/9C0/sprockets%2F8cadb8398e03f9730da11f8e7c9dc73b +0 -0
- data/test/dummy/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994 +0 -0
- data/test/dummy/tmp/cache/assets/DF4/C60/sprockets%2F9a20e4568aca578053dddb4e4aca0def +0 -0
- data/test/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
- data/test/fixtures/ominous/closers.yml +10 -0
- data/test/fixtures/ominous/warning_closers.yml +15 -0
- data/test/fixtures/ominous/warnings.yml +8 -0
- data/test/fixtures/things.yml +11 -0
- data/test/functional/ominous/warnings_controller_test.rb +22 -0
- data/test/integration/navigation_test.rb +10 -0
- data/test/ominous_test.rb +7 -0
- data/test/test_helper.rb +19 -0
- data/test/unit/helpers/ominous/warnings_helper_test.rb +6 -0
- data/test/unit/ominous/closer_test.rb +9 -0
- data/test/unit/ominous/warning_closer_test.rb +9 -0
- data/test/unit/ominous/warning_test.rb +37 -0
- metadata +352 -0
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<title>The page you were looking for doesn't exist (404)</title>
|
|
5
|
+
<style type="text/css">
|
|
6
|
+
body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
|
|
7
|
+
div.dialog {
|
|
8
|
+
width: 25em;
|
|
9
|
+
padding: 0 4em;
|
|
10
|
+
margin: 4em auto 0 auto;
|
|
11
|
+
border: 1px solid #ccc;
|
|
12
|
+
border-right-color: #999;
|
|
13
|
+
border-bottom-color: #999;
|
|
14
|
+
}
|
|
15
|
+
h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
|
|
16
|
+
</style>
|
|
17
|
+
</head>
|
|
18
|
+
|
|
19
|
+
<body>
|
|
20
|
+
<!-- This file lives in public/404.html -->
|
|
21
|
+
<div class="dialog">
|
|
22
|
+
<h1>The page you were looking for doesn't exist.</h1>
|
|
23
|
+
<p>You may have mistyped the address or the page may have moved.</p>
|
|
24
|
+
</div>
|
|
25
|
+
</body>
|
|
26
|
+
</html>
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<title>The change you wanted was rejected (422)</title>
|
|
5
|
+
<style type="text/css">
|
|
6
|
+
body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
|
|
7
|
+
div.dialog {
|
|
8
|
+
width: 25em;
|
|
9
|
+
padding: 0 4em;
|
|
10
|
+
margin: 4em auto 0 auto;
|
|
11
|
+
border: 1px solid #ccc;
|
|
12
|
+
border-right-color: #999;
|
|
13
|
+
border-bottom-color: #999;
|
|
14
|
+
}
|
|
15
|
+
h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
|
|
16
|
+
</style>
|
|
17
|
+
</head>
|
|
18
|
+
|
|
19
|
+
<body>
|
|
20
|
+
<!-- This file lives in public/422.html -->
|
|
21
|
+
<div class="dialog">
|
|
22
|
+
<h1>The change you wanted was rejected.</h1>
|
|
23
|
+
<p>Maybe you tried to change something you didn't have access to.</p>
|
|
24
|
+
</div>
|
|
25
|
+
</body>
|
|
26
|
+
</html>
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<title>We're sorry, but something went wrong (500)</title>
|
|
5
|
+
<style type="text/css">
|
|
6
|
+
body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
|
|
7
|
+
div.dialog {
|
|
8
|
+
width: 25em;
|
|
9
|
+
padding: 0 4em;
|
|
10
|
+
margin: 4em auto 0 auto;
|
|
11
|
+
border: 1px solid #ccc;
|
|
12
|
+
border-right-color: #999;
|
|
13
|
+
border-bottom-color: #999;
|
|
14
|
+
}
|
|
15
|
+
h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
|
|
16
|
+
</style>
|
|
17
|
+
</head>
|
|
18
|
+
|
|
19
|
+
<body>
|
|
20
|
+
<!-- This file lives in public/500.html -->
|
|
21
|
+
<div class="dialog">
|
|
22
|
+
<h1>We're sorry, but something went wrong.</h1>
|
|
23
|
+
</div>
|
|
24
|
+
</body>
|
|
25
|
+
</html>
|
|
File without changes
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
# This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
|
|
3
|
+
|
|
4
|
+
APP_PATH = File.expand_path('../../config/application', __FILE__)
|
|
5
|
+
require File.expand_path('../../config/boot', __FILE__)
|
|
6
|
+
require 'rails/commands'
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class ThingsControllerTest < ActionController::TestCase
|
|
4
|
+
def setup
|
|
5
|
+
@thing = Thing.find(1)
|
|
6
|
+
@thing_with_warning = Thing.find(2)
|
|
7
|
+
@warning = Ominous::Warning.find(1)
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def test_show_without_warning
|
|
11
|
+
get :show, id: @thing
|
|
12
|
+
assert_response :success
|
|
13
|
+
assert_warning_is_not_displayed
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def test_show_with_warning
|
|
17
|
+
get :show, id: @thing_with_warning
|
|
18
|
+
assert_response :success
|
|
19
|
+
assert_warning_displayed
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def test_show_when_thing_without_warning_but_warning_in_session
|
|
23
|
+
get(
|
|
24
|
+
:show,
|
|
25
|
+
{id: @thing},
|
|
26
|
+
{:ominous_warnings => {@warning.name.to_sym => :show}}
|
|
27
|
+
)
|
|
28
|
+
assert_response :success
|
|
29
|
+
assert_warning_displayed
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def test_show_when_warning_in_session_marked_as_hide
|
|
33
|
+
get(
|
|
34
|
+
:show,
|
|
35
|
+
{id: @thing},
|
|
36
|
+
{:ominous_warnings => {@warning.name.to_sym => :hide}}
|
|
37
|
+
)
|
|
38
|
+
assert_response :success
|
|
39
|
+
assert_warning_is_not_displayed
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def test_triggering_warning_does_not_over_ride_existing_flags
|
|
43
|
+
get(
|
|
44
|
+
:show,
|
|
45
|
+
{id: @thing_with_warning},
|
|
46
|
+
{:ominous_warnings => {@warning.name.to_sym => :hide}}
|
|
47
|
+
)
|
|
48
|
+
assert_response :success
|
|
49
|
+
assert_warning_is_not_displayed
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def test_edit
|
|
53
|
+
get :edit, id: @thing
|
|
54
|
+
assert_response :success
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def test_update
|
|
58
|
+
put :update, id: @thing, thing: { name: @thing.name }
|
|
59
|
+
assert_redirected_to thing_path(assigns(:thing))
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
def test_destroy
|
|
63
|
+
assert_difference('Thing.count', -1) do
|
|
64
|
+
delete :destroy, id: @thing
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
assert_redirected_to things_path
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
def test_index
|
|
71
|
+
get :index
|
|
72
|
+
assert_response :success
|
|
73
|
+
assert_not_nil assigns(:things)
|
|
74
|
+
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
def test_new
|
|
78
|
+
get :new
|
|
79
|
+
assert_response :success
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
def test_create
|
|
83
|
+
assert_difference('Thing.count') do
|
|
84
|
+
post :create, thing: { name: @thing.name }
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
assert_redirected_to thing_path(assigns(:thing))
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
private
|
|
91
|
+
def assert_warning_displayed
|
|
92
|
+
assert_tag :tag => "div", :attributes => { :class => "ominous_warnings" }
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
def assert_warning_is_not_displayed
|
|
96
|
+
assert_no_tag :tag => "div", :attributes => { :class => "ominous_warnings" }
|
|
97
|
+
end
|
|
98
|
+
end
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
module Ominous
|
|
4
|
+
class WarningsControllerTest < ActionController::TestCase
|
|
5
|
+
|
|
6
|
+
def setup
|
|
7
|
+
@warning = Ominous::Warning.find(1)
|
|
8
|
+
@routes = Engine.routes # Added so that test action is matched to correct route
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def test_dismiss
|
|
13
|
+
put(
|
|
14
|
+
:dismiss,
|
|
15
|
+
{id: @warning},
|
|
16
|
+
{:ominous_warnings => {@warning.name.to_sym => :show}}
|
|
17
|
+
)
|
|
18
|
+
assert_equal(:hide, session[:ominous_warnings][@warning.name.to_sym])
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
end
|
|
22
|
+
end
|
data/test/test_helper.rb
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Configure Rails Environment
|
|
2
|
+
ENV["RAILS_ENV"] = "test"
|
|
3
|
+
|
|
4
|
+
require File.expand_path("../dummy/config/environment.rb", __FILE__)
|
|
5
|
+
require "rails/test_help"
|
|
6
|
+
|
|
7
|
+
Rails.backtrace_cleaner.remove_silencers!
|
|
8
|
+
|
|
9
|
+
# Load support files
|
|
10
|
+
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
|
|
11
|
+
|
|
12
|
+
# Load fixtures from the engine
|
|
13
|
+
if ActiveSupport::TestCase.method_defined?(:fixture_path=)
|
|
14
|
+
ActiveSupport::TestCase.fixture_path = File.expand_path("../fixtures/", __FILE__)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
class ActiveSupport::TestCase
|
|
18
|
+
fixtures :all
|
|
19
|
+
end
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
module Ominous
|
|
4
|
+
class WarningTest < ActiveSupport::TestCase
|
|
5
|
+
def setup
|
|
6
|
+
@warning = Warning.find(1)
|
|
7
|
+
@closer = Closer.find(1)
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def test_join_to_closer
|
|
11
|
+
assert_equal(@closer, @warning.closers.find_by_id(@closer.id))
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def test_requests
|
|
15
|
+
assert_equal([], Warning.requests)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def test_trigger
|
|
19
|
+
Warning.trigger(@warning.name)
|
|
20
|
+
assert_equal([@warning.name.to_sym], Warning.requests)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def test_trigger_with_non_existent_warning
|
|
24
|
+
assert_raise RuntimeError do
|
|
25
|
+
Warning.trigger(:does_not_exist)
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def test_moving_closers
|
|
30
|
+
closer_one = Closer.find(1)
|
|
31
|
+
closer_two = Closer.find(2)
|
|
32
|
+
assert_equal([closer_one, closer_two], @warning.closers)
|
|
33
|
+
@warning.move_to_top(closer_two)
|
|
34
|
+
assert_equal([closer_two, closer_one], @warning.reload.closers)
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|