ominous 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +12 -19
- data/app/helpers/ominous/warnings_helper.rb +1 -1
- data/app/models/ominous/closer.rb +5 -1
- data/app/models/ominous/warning.rb +5 -1
- data/app/views/ominous/warnings/_list.html.erb +3 -3
- data/db/migrate/20130131131756_add_title_and_description_to_ominous_warnings.rb +6 -0
- data/db/migrate/20130131131934_add_link_text_and_message_to_ominous_closers.rb +6 -0
- data/lib/ominous/version.rb +26 -1
- data/test/dummy/config/database.yml +6 -7
- data/test/dummy/config/locales/en.yml +0 -15
- data/test/dummy/db/development.sqlite3 +0 -0
- data/test/dummy/db/migrate/20130131134020_create_ominous_warnings.ominous.rb +9 -0
- data/test/dummy/db/migrate/20130131134021_create_ominous_warning_closers.ominous.rb +11 -0
- data/test/dummy/db/migrate/20130131134022_create_ominous_closers.ominous.rb +12 -0
- data/test/dummy/db/migrate/20130131134023_add_title_and_description_to_ominous_warnings.ominous.rb +7 -0
- data/test/dummy/db/migrate/20130131134024_add_link_text_and_message_to_ominous_closers.ominous.rb +7 -0
- data/test/dummy/db/schema.rb +7 -3
- data/test/dummy/db/seeds/ominous/closers.yml +6 -1
- data/test/dummy/db/seeds/ominous/warnings.yml +3 -1
- data/test/dummy/db/test.sqlite3 +0 -0
- data/test/dummy/log/development.log +1332 -0
- data/test/dummy/log/test.log +6036 -0
- data/test/fixtures/ominous/closers.yml +5 -1
- data/test/fixtures/ominous/warnings.yml +3 -0
- data/test/unit/ominous/closer_test.rb +20 -0
- data/test/unit/ominous/warning_test.rb +6 -0
- metadata +19 -3
data/README.rdoc
CHANGED
@@ -71,26 +71,19 @@ For example:
|
|
71
71
|
|
72
72
|
== Warning text
|
73
73
|
|
74
|
-
Warnings contain a title and description. Closers contain a message and
|
75
|
-
|
76
|
-
|
77
|
-
For the something_happened warning used above
|
78
|
-
the entry needs to look like this:
|
79
|
-
|
80
|
-
en:
|
81
|
-
|
82
|
-
ominous:
|
83
|
-
warning:
|
84
|
-
something_happened:
|
85
|
-
title: Warning
|
86
|
-
description: You have triggered a warning.
|
87
|
-
closer_one:
|
88
|
-
message: This is the first closer
|
89
|
-
link: Click here to activate closer_one
|
90
|
-
closer_two:
|
91
|
-
message: This is the second closer
|
92
|
-
link: Click here to activate closer_two
|
74
|
+
Warnings contain a title and description. Closers contain a message and link_text.
|
75
|
+
These elements will be displayed within the warning message. See:
|
93
76
|
|
77
|
+
app/views/ominous/warnings/_list.html.erb
|
78
|
+
|
79
|
+
Default text will appear if these fields are empty. These defaults being the
|
80
|
+
minimum needed to generate a usable warning message.
|
81
|
+
|
82
|
+
If warning#title is blank, a humanized version of the warning name will be
|
83
|
+
displayed.
|
84
|
+
|
85
|
+
If closer.link_text is blank, the closer's link text will be constructed from
|
86
|
+
the closure_method.
|
94
87
|
|
95
88
|
== Managing warnings
|
96
89
|
|
@@ -11,7 +11,7 @@ module Ominous
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def closer_link_to(warning, closer)
|
14
|
-
text =
|
14
|
+
text = closer.link_text
|
15
15
|
link_class = closer.closure_method
|
16
16
|
url = closer_url(warning, closer)
|
17
17
|
link_to(text, url, :method => :put, :class => link_class)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module Ominous
|
2
2
|
class Closer < ActiveRecord::Base
|
3
|
-
attr_accessible :name, :url, :closure_method, :start_hidden
|
3
|
+
attr_accessible :name, :url, :closure_method, :start_hidden, :message, :link_text
|
4
4
|
|
5
5
|
CLOSURE_METHODS = {
|
6
6
|
:reveal_hidden => 'Hides the current closers and reveals any hidden closers',
|
@@ -14,6 +14,10 @@ module Ominous
|
|
14
14
|
def self.closure_methods
|
15
15
|
CLOSURE_METHODS
|
16
16
|
end
|
17
|
+
|
18
|
+
def link_text
|
19
|
+
super.blank? ? "click here to #{closure_method}".humanize : super
|
20
|
+
end
|
17
21
|
|
18
22
|
end
|
19
23
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module Ominous
|
2
2
|
class Warning < ActiveRecord::Base
|
3
|
-
attr_accessible :name, :closers_attributes
|
3
|
+
attr_accessible :name, :closers_attributes, :title, :description
|
4
4
|
|
5
5
|
validates :name, :presence => true
|
6
6
|
|
@@ -39,6 +39,10 @@ module Ominous
|
|
39
39
|
clear_requests # So that warnings called while processing one action are not carried over to the next where they may not be relevant
|
40
40
|
end
|
41
41
|
|
42
|
+
def title
|
43
|
+
super.blank? ? name.humanize : super
|
44
|
+
end
|
45
|
+
|
42
46
|
private
|
43
47
|
def method_missing(symbol, *args, &block)
|
44
48
|
if acts_as_list_method?(symbol)
|
@@ -1,15 +1,15 @@
|
|
1
1
|
<% warnings.each do |warning| %>
|
2
2
|
<div class="warning">
|
3
3
|
<div class="heading">
|
4
|
-
<h2><%=
|
4
|
+
<h2><%= warning.title %></h2>
|
5
5
|
</div>
|
6
6
|
<div class="description">
|
7
|
-
<%=
|
7
|
+
<%= sanitize warning.description %>
|
8
8
|
</div>
|
9
9
|
<div class="closers">
|
10
10
|
<% warning.closers.each do |closer| %>
|
11
11
|
<div class="<%= classes_for(closer) %>">
|
12
|
-
<p><%=
|
12
|
+
<p><%= sanitize closer.message %></p>
|
13
13
|
<p>
|
14
14
|
<%= closer_link_to(warning, closer) %>
|
15
15
|
</p>
|
data/lib/ominous/version.rb
CHANGED
@@ -1,3 +1,28 @@
|
|
1
1
|
module Ominous
|
2
|
-
VERSION = "0.0.
|
2
|
+
VERSION = "0.0.5"
|
3
3
|
end
|
4
|
+
|
5
|
+
# History
|
6
|
+
# =======
|
7
|
+
#
|
8
|
+
# 0.0.5
|
9
|
+
# -----
|
10
|
+
# Moved text decoration of warnings and closers to models.
|
11
|
+
#
|
12
|
+
# Upgrading to this version requires a migration:
|
13
|
+
#
|
14
|
+
# rake ominous:install:migrations
|
15
|
+
# rake db:migrate
|
16
|
+
#
|
17
|
+
# In use, the separation of text (in translations) from the warning objects was
|
18
|
+
# confusing. It proved difficult for users to create new warning, and match them
|
19
|
+
# to translations.
|
20
|
+
#
|
21
|
+
# By using a more standard arrangement, translation options can be added to the
|
22
|
+
# host app, where all text output can be handled the same way, and therefore
|
23
|
+
# users will be familiar with the process of updating text.
|
24
|
+
#
|
25
|
+
# 0.0.4
|
26
|
+
# -----
|
27
|
+
# First working version. No history before this version.
|
28
|
+
#
|
@@ -1,18 +1,17 @@
|
|
1
1
|
|
2
2
|
defaults: &defaults
|
3
|
-
adapter:
|
4
|
-
|
5
|
-
|
6
|
-
host: localhost
|
3
|
+
adapter: sqlite3
|
4
|
+
pool: 5
|
5
|
+
timeout: 5000
|
7
6
|
|
8
7
|
development:
|
9
8
|
<<: *defaults
|
10
|
-
database:
|
9
|
+
database: db/development.sqlite3
|
11
10
|
|
12
11
|
test:
|
13
12
|
<<: *defaults
|
14
|
-
database:
|
13
|
+
database: db/test.sqlite3
|
15
14
|
|
16
15
|
production:
|
17
16
|
<<: *defaults
|
18
|
-
database:
|
17
|
+
database: db/production.sqlite3
|
@@ -3,18 +3,3 @@
|
|
3
3
|
|
4
4
|
en:
|
5
5
|
hello: "Hello world"
|
6
|
-
|
7
|
-
ominous:
|
8
|
-
warning:
|
9
|
-
thing_alert:
|
10
|
-
title: Warning
|
11
|
-
description: You have viewed a Thing with it's warning set.
|
12
|
-
closer_one:
|
13
|
-
message: This should not appear initially
|
14
|
-
link: Click here to close the warning and tell the server not to show it again
|
15
|
-
closer_two:
|
16
|
-
message: This will redirect to another site
|
17
|
-
link: Click to go elsewhere
|
18
|
-
closer_three:
|
19
|
-
message: This should appear initially
|
20
|
-
link: Click here to see hidden closers
|
Binary file
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# This migration comes from ominous (originally 20121206145743)
|
2
|
+
class CreateOminousWarningClosers < ActiveRecord::Migration
|
3
|
+
def change
|
4
|
+
create_table :ominous_warning_closers do |t|
|
5
|
+
t.column :warning_id, :integer
|
6
|
+
t.column :closer_id, :integer
|
7
|
+
t.column :position, :integer
|
8
|
+
t.timestamps
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# This migration comes from ominous (originally 20121206153254)
|
2
|
+
class CreateOminousClosers < ActiveRecord::Migration
|
3
|
+
def change
|
4
|
+
create_table :ominous_closers do |t|
|
5
|
+
t.column :name, :string
|
6
|
+
t.column :url, :string
|
7
|
+
t.column :closure_method, :string, :limit => 30
|
8
|
+
t.column :start_hidden, :boolean, :default => false
|
9
|
+
t.timestamps
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
data/test/dummy/db/schema.rb
CHANGED
@@ -11,7 +11,7 @@
|
|
11
11
|
#
|
12
12
|
# It's strongly recommended to check this file into your version control system.
|
13
13
|
|
14
|
-
ActiveRecord::Schema.define(:version =>
|
14
|
+
ActiveRecord::Schema.define(:version => 20130131134024) do
|
15
15
|
|
16
16
|
create_table "ominous_closers", :force => true do |t|
|
17
17
|
t.string "name"
|
@@ -20,6 +20,8 @@ ActiveRecord::Schema.define(:version => 20121207090710) do
|
|
20
20
|
t.boolean "start_hidden", :default => false
|
21
21
|
t.datetime "created_at", :null => false
|
22
22
|
t.datetime "updated_at", :null => false
|
23
|
+
t.string "link_text"
|
24
|
+
t.text "message"
|
23
25
|
end
|
24
26
|
|
25
27
|
create_table "ominous_warning_closers", :force => true do |t|
|
@@ -32,8 +34,10 @@ ActiveRecord::Schema.define(:version => 20121207090710) do
|
|
32
34
|
|
33
35
|
create_table "ominous_warnings", :force => true do |t|
|
34
36
|
t.string "name"
|
35
|
-
t.datetime "created_at",
|
36
|
-
t.datetime "updated_at",
|
37
|
+
t.datetime "created_at", :null => false
|
38
|
+
t.datetime "updated_at", :null => false
|
39
|
+
t.string "title"
|
40
|
+
t.text "description"
|
37
41
|
end
|
38
42
|
|
39
43
|
create_table "things", :force => true do |t|
|
@@ -1,11 +1,16 @@
|
|
1
1
|
closer_one:
|
2
2
|
closure_method: close_and_dismiss_warning
|
3
3
|
start_hidden: true
|
4
|
+
message: This should not appear initially
|
5
|
+
link_text: Click here to close the warning and tell the server not to show it again
|
4
6
|
|
5
7
|
closer_two:
|
6
8
|
url: http://undervale.co.uk
|
7
9
|
closure_method: redirect
|
10
|
+
message: This will redirect to another site
|
11
|
+
link_text: Click to go elsewhere
|
8
12
|
|
9
13
|
closer_three:
|
10
14
|
closure_method: reveal_hidden
|
11
|
-
|
15
|
+
message: This should appear initially
|
16
|
+
link_text: Click here to see hidden closers
|
Binary file
|